From 25b7f4c14c1b8fc0027b4411228fe60366d32a0b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 06:29:39 +0000 Subject: [PATCH 1/3] deploy: 11f13df5a1f9fdaea04365587d682591a360477e --- .nojekyll | 0 404.html | 4 + assets/css/styles.c4a679e7.css | 1 + ...arket-69347f790ddfccf38bcd49b4df85e909.png | Bin 0 -> 242374 bytes ...cture-8c0e245dcac8e3570e5a686b9f58b9d9.png | Bin 0 -> 4326230 bytes ...ticle-1d0e86b355eba0e53d237d95afd4d3a6.png | Bin 0 -> 148682 bytes ...layer-815515eac5295f9f772e1beb97f04c11.png | Bin 0 -> 83019 bytes ...cture-5737c5a7826cff1a2874cf2b927ccd34.png | Bin 0 -> 307785 bytes ...layer-46c84fa8b5f3c12f0316fc058e9daf15.png | Bin 0 -> 502324 bytes ...nents-3fa01967e1605c21791788f2a06212eb.png | Bin 0 -> 945133 bytes ...lient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png | Bin 0 -> 472973 bytes ...lient-c6216b08439b96af51fda129de838a4e.png | Bin 0 -> 166236 bytes ...actor-c8b89cd447d9cea7894354ffea6a2fdf.png | Bin 0 -> 602971 bytes ...sitor-43a9830686ce367f536545b5691f504f.png | Bin 0 -> 388113 bytes ...\204-c7796d93ff72c04ff0bb409eba10ae82.png" | Bin 0 -> 538789 bytes assets/js/01a85c17.35e1a59a.js | 1 + assets/js/06409a0f.42c3556e.js | 1 + assets/js/0e384e19.e6f01cce.js | 1 + assets/js/1016.43603c7f.js | 1 + assets/js/1134.796da08e.js | 256 +++++++++++++++ assets/js/13e6baf5.1ded3d92.js | 1 + assets/js/1447.ce362a6b.js | 86 +++++ assets/js/1491.920b1332.js | 27 ++ assets/js/1567.9f44ced9.js | 8 + assets/js/17896441.06353295.js | 1 + assets/js/181.90e2d56b.js | 115 +++++++ assets/js/1862.1a43044f.js | 32 ++ assets/js/190.c766b1ae.js | 1 + assets/js/1f1ca1a6.fa355d16.js | 1 + assets/js/1f362aa0.338a31a7.js | 1 + assets/js/1f434cef.c3e3258e.js | 1 + assets/js/207a8b88.8040e10c.js | 1 + assets/js/2107.f3b80883.js | 1 + assets/js/2240.925a2a48.js | 1 + assets/js/2268.485f02c6.js | 286 ++++++++++++++++ assets/js/2358.f2f121b1.js | 148 +++++++++ assets/js/2395.66d8d46d.js | 1 + assets/js/255.9c291378.js | 1 + assets/js/2853.1bd4804e.js | 1 + assets/js/2881.c311ece9.js | 77 +++++ assets/js/2951.165aea2c.js | 38 +++ assets/js/3009.12978314.js | 1 + assets/js/3017.e8b74ccb.js | 1 + assets/js/3312.b999d1ad.js | 1 + assets/js/33fc5bb8.3fe0f57b.js | 1 + assets/js/3535.18db5811.js | 1 + assets/js/3636.d70391ac.js | 94 ++++++ assets/js/3693.178dfbe0.js | 1 + assets/js/36994c47.a19db22c.js | 1 + assets/js/3788.070794c2.js | 23 ++ assets/js/37f774df.850a2a17.js | 1 + assets/js/3851.7f972b73.js | 149 +++++++++ assets/js/4137.67bb73ee.js | 104 ++++++ assets/js/4277cc0d.d21522b6.js | 1 + assets/js/4551.88d2b179.js | 1 + assets/js/4617.6e66f439.js | 160 +++++++++ assets/js/4709.1ea5418e.js | 1 + assets/js/4788.724c0856.js | 41 +++ assets/js/480.40dd37ae.js | 62 ++++ assets/js/4875.484cb0fc.js | 1 + assets/js/4892.beb61f34.js | 34 ++ assets/js/4950.3fa51f56.js | 1 + assets/js/4a65a190.7c84169b.js | 1 + assets/js/4b0ae1c1.57c4e4c6.js | 1 + assets/js/4d54d076.77810809.js | 1 + assets/js/5062.689c71ca.js | 1 + assets/js/5082.46e3206e.js | 1 + assets/js/51515e66.872b3c9b.js | 1 + assets/js/5250.ce6f0efa.js | 1 + assets/js/53a1f56d.5f6ee735.js | 1 + assets/js/5428.8c0b8a2a.js | 1 + assets/js/5493.5c969992.js | 1 + assets/js/5505.ad92f9fd.js | 217 ++++++++++++ assets/js/5576.62e087a6.js | 1 + assets/js/5651.49615f32.js | 1 + assets/js/5783.7e9699db.js | 193 +++++++++++ assets/js/5e95c892.a44b09d4.js | 1 + assets/js/6073.99acb2b6.js | 1 + assets/js/612.7ca96f70.js | 1 + assets/js/6184.b444265b.js | 1 + assets/js/621db11d.cd6afb65.js | 1 + assets/js/6326.27d6a633.js | 93 ++++++ assets/js/6374.05518a82.js | 287 ++++++++++++++++ assets/js/6520.c5a12252.js | 1 + assets/js/6726.ac90325c.js | 4 + assets/js/672ba3d6.6f76c648.js | 1 + assets/js/6762.affd9a83.js | 1 + assets/js/6771.da21afb4.js | 1 + assets/js/6832.2c2e961f.js | 36 ++ assets/js/6856.9f4ebf6f.js | 79 +++++ assets/js/6875c492.0883a958.js | 1 + assets/js/6db0e023.dfe3ef48.js | 1 + assets/js/718.659975ba.js | 1 + assets/js/7256.b8012a00.js | 24 ++ assets/js/7472.e543edd6.js | 1 + assets/js/7693.12c8b0db.js | 1 + assets/js/7874.d706704a.js | 1 + assets/js/78900b38.df0832a6.js | 1 + assets/js/7bd8db71.a7dc2951.js | 1 + assets/js/80dcd7a6.cfd97088.js | 1 + assets/js/814f3328.2ff0395c.js | 1 + assets/js/8272.20c4caca.js | 90 +++++ assets/js/8645.4532c47b.js | 1 + assets/js/8665.cdad3879.js | 1 + assets/js/8683.9ee3384f.js | 226 +++++++++++++ assets/js/8927.7a51b0fb.js | 24 ++ assets/js/896.d7dfba44.js | 1 + assets/js/9010.278a1aa9.js | 1 + assets/js/9156.a3122fd7.js | 1 + assets/js/925626eb.2bb062ae.js | 1 + assets/js/9729.c0276c29.js | 64 ++++ assets/js/9948.5ccdc219.js | 1 + assets/js/9956.a105c9b8.js | 309 ++++++++++++++++++ assets/js/9e4087bc.294903d8.js | 1 + assets/js/a6aa9e1f.5f4ef81b.js | 1 + assets/js/a7456010.5acfbe30.js | 1 + assets/js/a7bd4aaa.f3b25130.js | 1 + assets/js/a94703ab.0bcffcab.js | 1 + assets/js/a9c167f1.f824f0f1.js | 1 + assets/js/aba21aa0.33b48647.js | 1 + assets/js/acecf23e.319d1801.js | 1 + assets/js/ae60c7b8.70d5d1e0.js | 1 + assets/js/b5ed4930.e99a4908.js | 1 + assets/js/bec69a53.55ad773a.js | 1 + assets/js/bf45ab0e.b6431a77.js | 1 + assets/js/c4f5d8e4.f9b899ea.js | 1 + assets/js/ccc49370.0fff0dec.js | 1 + assets/js/common.b2db8efe.js | 82 +++++ assets/js/dbbf4deb.446d5d75.js | 1 + assets/js/e0e79246.271b17de.js | 1 + assets/js/ece1c32f.aa2ebd53.js | 1 + assets/js/efe00fe9.68c2e796.js | 1 + assets/js/main.0c7b46ea.js | 38 +++ assets/js/runtime~main.665078bd.js | 1 + blog.html | 8 + blog/archive.html | 4 + blog/atom.css | 75 +++++ blog/atom.xml | 209 ++++++++++++ blog/atom.xsl | 92 ++++++ blog/authors.html | 4 + blog/authors/changlu.html | 8 + blog/origin-of-sqlparserx.html | 190 +++++++++++ blog/rss.css | 75 +++++ blog/rss.xml | 207 ++++++++++++ blog/rss.xsl | 86 +++++ blog/tags.html | 4 + blog/tags/origin.html | 8 + community.html | 4 + docs/about/architecture.html | 18 + docs/about/introduction.html | 17 + docs/contributing.html | 31 ++ docs/core/field-lineage.html | 26 ++ docs/core/function-parse.html | 24 ++ docs/core/table-lineage.html | 24 ++ docs/core/table-parse.html | 24 ++ docs/intro.html | 22 ++ docs/next/about/architecture.html | 18 + docs/next/about/introduction.html | 17 + docs/next/contributing.html | 31 ++ docs/next/core/field-lineage.html | 26 ++ docs/next/core/function-parse.html | 24 ++ docs/next/core/table-lineage.html | 24 ++ docs/next/core/table-parse.html | 24 ++ docs/next/intro.html | 22 ++ docs/next/quickstart/setup.html | 31 ++ docs/quickstart/setup.html | 31 ++ en/.nojekyll | 0 en/404.html | 4 + en/assets/css/styles.c4a679e7.css | 1 + ...arket-69347f790ddfccf38bcd49b4df85e909.png | Bin 0 -> 242374 bytes ...cture-8c0e245dcac8e3570e5a686b9f58b9d9.png | Bin 0 -> 4326230 bytes ...ticle-1d0e86b355eba0e53d237d95afd4d3a6.png | Bin 0 -> 148682 bytes ...layer-815515eac5295f9f772e1beb97f04c11.png | Bin 0 -> 83019 bytes ...cture-5737c5a7826cff1a2874cf2b927ccd34.png | Bin 0 -> 307785 bytes ...layer-46c84fa8b5f3c12f0316fc058e9daf15.png | Bin 0 -> 502324 bytes ...nents-3fa01967e1605c21791788f2a06212eb.png | Bin 0 -> 945133 bytes ...lient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png | Bin 0 -> 472973 bytes ...lient-c6216b08439b96af51fda129de838a4e.png | Bin 0 -> 166236 bytes ...actor-c8b89cd447d9cea7894354ffea6a2fdf.png | Bin 0 -> 602971 bytes ...sitor-43a9830686ce367f536545b5691f504f.png | Bin 0 -> 388113 bytes ...4-en-710c1c16b39bd3885dfe50d51143759f.png" | Bin 0 -> 1348462 bytes en/assets/js/01a85c17.35e1a59a.js | 1 + en/assets/js/02854a60.7e7e9bd4.js | 1 + en/assets/js/1016.43603c7f.js | 1 + en/assets/js/1078a278.964015e8.js | 1 + en/assets/js/1134.56885915.js | 256 +++++++++++++++ en/assets/js/136d9fb6.e7c4760d.js | 1 + en/assets/js/1447.ce362a6b.js | 86 +++++ en/assets/js/1491.920b1332.js | 27 ++ en/assets/js/1567.9f44ced9.js | 8 + en/assets/js/17896441.06353295.js | 1 + en/assets/js/181.90e2d56b.js | 115 +++++++ en/assets/js/1862.1a43044f.js | 32 ++ en/assets/js/190.c766b1ae.js | 1 + en/assets/js/2107.f3b80883.js | 1 + en/assets/js/2240.925a2a48.js | 1 + en/assets/js/2268.485f02c6.js | 286 ++++++++++++++++ en/assets/js/22e0017f.f9dfb251.js | 1 + en/assets/js/2358.f2f121b1.js | 148 +++++++++ en/assets/js/2395.66d8d46d.js | 1 + en/assets/js/255.9c291378.js | 1 + en/assets/js/2853.1bd4804e.js | 1 + en/assets/js/2881.c311ece9.js | 77 +++++ en/assets/js/2951.165aea2c.js | 38 +++ en/assets/js/2cb18a50.16d7aca5.js | 1 + en/assets/js/3009.12978314.js | 1 + en/assets/js/3017.e8b74ccb.js | 1 + en/assets/js/3312.b999d1ad.js | 1 + en/assets/js/33fc5bb8.3fe0f57b.js | 1 + en/assets/js/3535.18db5811.js | 1 + en/assets/js/3636.d70391ac.js | 94 ++++++ en/assets/js/3693.178dfbe0.js | 1 + en/assets/js/36994c47.a19db22c.js | 1 + en/assets/js/3788.070794c2.js | 23 ++ en/assets/js/3851.7f972b73.js | 149 +++++++++ en/assets/js/4137.67bb73ee.js | 104 ++++++ en/assets/js/4551.88d2b179.js | 1 + en/assets/js/4617.6e66f439.js | 160 +++++++++ en/assets/js/4709.1ea5418e.js | 1 + en/assets/js/4788.724c0856.js | 41 +++ en/assets/js/480.40dd37ae.js | 62 ++++ en/assets/js/4875.484cb0fc.js | 1 + en/assets/js/4892.beb61f34.js | 34 ++ en/assets/js/4950.3fa51f56.js | 1 + en/assets/js/4a65a190.cd87306b.js | 1 + en/assets/js/4b0ae1c1.c494aa8e.js | 1 + en/assets/js/5062.689c71ca.js | 1 + en/assets/js/5082.46e3206e.js | 1 + en/assets/js/5250.ce6f0efa.js | 1 + en/assets/js/533336a0.5348230d.js | 1 + en/assets/js/5428.8c0b8a2a.js | 1 + en/assets/js/5493.5c969992.js | 1 + en/assets/js/5505.ad92f9fd.js | 217 ++++++++++++ en/assets/js/5576.62e087a6.js | 1 + en/assets/js/5651.49615f32.js | 1 + en/assets/js/5783.7e9699db.js | 193 +++++++++++ en/assets/js/5abf25f6.9830132d.js | 1 + en/assets/js/5b44acae.eb2b091e.js | 1 + en/assets/js/5e95c892.a44b09d4.js | 1 + en/assets/js/6073.99acb2b6.js | 1 + en/assets/js/612.7ca96f70.js | 1 + en/assets/js/6184.b444265b.js | 1 + en/assets/js/621db11d.cd6afb65.js | 1 + en/assets/js/6326.27d6a633.js | 93 ++++++ en/assets/js/6374.05518a82.js | 287 ++++++++++++++++ en/assets/js/6520.c5a12252.js | 1 + en/assets/js/6726.ac90325c.js | 4 + en/assets/js/672ba3d6.6f76c648.js | 1 + en/assets/js/6762.affd9a83.js | 1 + en/assets/js/6771.da21afb4.js | 1 + en/assets/js/6832.2c2e961f.js | 36 ++ en/assets/js/6856.9f4ebf6f.js | 79 +++++ en/assets/js/6875c492.0883a958.js | 1 + en/assets/js/718.659975ba.js | 1 + en/assets/js/7256.b8012a00.js | 24 ++ en/assets/js/7472.ede4e6b6.js | 1 + en/assets/js/7693.c2b73a77.js | 1 + en/assets/js/773100d1.d64ce887.js | 1 + en/assets/js/7874.d706704a.js | 1 + en/assets/js/7ba64a19.5461fd25.js | 1 + en/assets/js/814f3328.a11b30f2.js | 1 + en/assets/js/8272.20c4caca.js | 90 +++++ en/assets/js/8645.4532c47b.js | 1 + en/assets/js/8665.cdad3879.js | 1 + en/assets/js/8683.9ee3384f.js | 226 +++++++++++++ en/assets/js/8927.7a51b0fb.js | 24 ++ en/assets/js/896.d7dfba44.js | 1 + en/assets/js/9010.278a1aa9.js | 1 + en/assets/js/9156.a3122fd7.js | 1 + en/assets/js/92d5f697.98e740c5.js | 1 + en/assets/js/9729.f747c8de.js | 64 ++++ en/assets/js/9948.5ccdc219.js | 1 + en/assets/js/9956.43a95bde.js | 309 ++++++++++++++++++ en/assets/js/9aae347e.74700eb1.js | 1 + en/assets/js/9c37e8a9.7fe8a96d.js | 1 + en/assets/js/9e4087bc.294903d8.js | 1 + en/assets/js/a02bd756.f50fe793.js | 1 + en/assets/js/a16ef744.39fbe70d.js | 1 + en/assets/js/a6aa9e1f.5f4ef81b.js | 1 + en/assets/js/a7456010.5acfbe30.js | 1 + en/assets/js/a7bd4aaa.f3b25130.js | 1 + en/assets/js/a84fc31f.1e52c8d8.js | 1 + en/assets/js/a94703ab.0bcffcab.js | 1 + en/assets/js/aa9e3246.260a5858.js | 1 + en/assets/js/aba21aa0.33b48647.js | 1 + en/assets/js/ac311984.d9c3b59b.js | 1 + en/assets/js/ac4ff279.f1c344ee.js | 1 + en/assets/js/acecf23e.98c2f734.js | 1 + en/assets/js/bd32d0d5.4cd1db7b.js | 1 + en/assets/js/c4f5d8e4.f9b899ea.js | 1 + en/assets/js/c61d1296.dae5d868.js | 1 + en/assets/js/ccc49370.0fff0dec.js | 1 + en/assets/js/common.b2db8efe.js | 82 +++++ en/assets/js/d611a6ba.65339341.js | 1 + en/assets/js/db80618e.29a55518.js | 1 + en/assets/js/e539d78b.f200a967.js | 1 + en/assets/js/e9caf4bd.6e761e5e.js | 1 + en/assets/js/f798a39c.092b30b6.js | 1 + en/assets/js/main.44f4b7b8.js | 38 +++ en/assets/js/runtime~main.f734647b.js | 1 + en/blog.html | 8 + en/blog/archive.html | 4 + en/blog/atom.css | 75 +++++ en/blog/atom.xml | 209 ++++++++++++ en/blog/atom.xsl | 92 ++++++ en/blog/authors.html | 4 + en/blog/authors/changlu.html | 8 + en/blog/origin-of-sqlparserx.html | 190 +++++++++++ en/blog/rss.css | 75 +++++ en/blog/rss.xml | 207 ++++++++++++ en/blog/rss.xsl | 86 +++++ en/blog/tags.html | 4 + en/blog/tags/origin.html | 8 + en/community.html | 4 + en/docs/about/architecture.html | 16 + en/docs/about/introduction.html | 16 + en/docs/contributing.html | 30 ++ en/docs/core/field-lineage.html | 22 ++ en/docs/core/function-parse.html | 21 ++ en/docs/core/table-lineage.html | 21 ++ en/docs/core/table-parse.html | 21 ++ en/docs/intro.html | 22 ++ en/docs/next/about/architecture.html | 16 + en/docs/next/about/introduction.html | 16 + en/docs/next/contributing.html | 30 ++ en/docs/next/core/field-lineage.html | 22 ++ en/docs/next/core/function-parse.html | 21 ++ en/docs/next/core/table-lineage.html | 21 ++ en/docs/next/core/table-parse.html | 21 ++ en/docs/next/intro.html | 22 ++ en/docs/next/quickstart/setup.html | 29 ++ en/docs/quickstart/setup.html | 29 ++ ...45\261\202\346\236\266\346\236\204-en.png" | Bin 0 -> 1348462 bytes ...4\345\261\202\346\236\266\346\236\204.png" | Bin 0 -> 538789 bytes en/img/case/navigation.svg | 22 ++ en/img/case/version.svg | 17 + en/img/datasource/clickhouse.png | Bin 0 -> 6321 bytes en/img/datasource/doris.png | Bin 0 -> 11331 bytes en/img/datasource/greenplum.png | Bin 0 -> 12146 bytes en/img/datasource/hive.png | Bin 0 -> 8862 bytes en/img/datasource/mysql.png | Bin 0 -> 6707 bytes en/img/datasource/oceanbase.png | Bin 0 -> 9757 bytes en/img/datasource/postgresql.png | Bin 0 -> 8841 bytes en/img/datasource/spark.png | Bin 0 -> 6912 bytes en/img/datasource/sqlserver.png | Bin 0 -> 10617 bytes en/img/datasource/tidb.png | Bin 0 -> 13566 bytes en/img/favicon.svg | 6 + en/img/logo.svg | 6 + en/img/social-card.svg | 11 + en/index.html | 4 + en/sitemap.xml | 1 + ...45\261\202\346\236\266\346\236\204-en.png" | Bin 0 -> 1348462 bytes ...4\345\261\202\346\236\266\346\236\204.png" | Bin 0 -> 538789 bytes img/case/navigation.svg | 22 ++ img/case/version.svg | 17 + img/datasource/clickhouse.png | Bin 0 -> 6321 bytes img/datasource/doris.png | Bin 0 -> 11331 bytes img/datasource/greenplum.png | Bin 0 -> 12146 bytes img/datasource/hive.png | Bin 0 -> 8862 bytes img/datasource/mysql.png | Bin 0 -> 6707 bytes img/datasource/oceanbase.png | Bin 0 -> 9757 bytes img/datasource/postgresql.png | Bin 0 -> 8841 bytes img/datasource/spark.png | Bin 0 -> 6912 bytes img/datasource/sqlserver.png | Bin 0 -> 10617 bytes img/datasource/tidb.png | Bin 0 -> 13566 bytes img/favicon.svg | 6 + img/logo.svg | 6 + img/social-card.svg | 11 + index.html | 4 + sitemap.xml | 1 + 370 files changed, 10106 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 assets/css/styles.c4a679e7.css create mode 100644 assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png create mode 100644 assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png create mode 100644 assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png create mode 100644 assets/images/04-druid-syntax-layer-815515eac5295f9f772e1beb97f04c11.png create mode 100644 assets/images/05-druid-layer-structure-5737c5a7826cff1a2874cf2b927ccd34.png create mode 100644 assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png create mode 100644 assets/images/07-application-components-3fa01967e1605c21791788f2a06212eb.png create mode 100644 assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png create mode 100644 assets/images/09-register-client-c6216b08439b96af51fda129de838a4e.png create mode 100644 assets/images/10-after-refactor-c8b89cd447d9cea7894354ffea6a2fdf.png create mode 100644 assets/images/11-function-visitor-43a9830686ce367f536545b5691f504f.png create mode 100644 "assets/images/SqlParserX\344\270\244\345\261\202\346\236\266\346\236\204-c7796d93ff72c04ff0bb409eba10ae82.png" create mode 100644 assets/js/01a85c17.35e1a59a.js create mode 100644 assets/js/06409a0f.42c3556e.js create mode 100644 assets/js/0e384e19.e6f01cce.js create mode 100644 assets/js/1016.43603c7f.js create mode 100644 assets/js/1134.796da08e.js create mode 100644 assets/js/13e6baf5.1ded3d92.js create mode 100644 assets/js/1447.ce362a6b.js create mode 100644 assets/js/1491.920b1332.js create mode 100644 assets/js/1567.9f44ced9.js create mode 100644 assets/js/17896441.06353295.js create mode 100644 assets/js/181.90e2d56b.js create mode 100644 assets/js/1862.1a43044f.js create mode 100644 assets/js/190.c766b1ae.js create mode 100644 assets/js/1f1ca1a6.fa355d16.js create mode 100644 assets/js/1f362aa0.338a31a7.js create mode 100644 assets/js/1f434cef.c3e3258e.js create mode 100644 assets/js/207a8b88.8040e10c.js create mode 100644 assets/js/2107.f3b80883.js create mode 100644 assets/js/2240.925a2a48.js create mode 100644 assets/js/2268.485f02c6.js create mode 100644 assets/js/2358.f2f121b1.js create mode 100644 assets/js/2395.66d8d46d.js create mode 100644 assets/js/255.9c291378.js create mode 100644 assets/js/2853.1bd4804e.js create mode 100644 assets/js/2881.c311ece9.js create mode 100644 assets/js/2951.165aea2c.js create mode 100644 assets/js/3009.12978314.js create mode 100644 assets/js/3017.e8b74ccb.js create mode 100644 assets/js/3312.b999d1ad.js create mode 100644 assets/js/33fc5bb8.3fe0f57b.js create mode 100644 assets/js/3535.18db5811.js create mode 100644 assets/js/3636.d70391ac.js create mode 100644 assets/js/3693.178dfbe0.js create mode 100644 assets/js/36994c47.a19db22c.js create mode 100644 assets/js/3788.070794c2.js create mode 100644 assets/js/37f774df.850a2a17.js create mode 100644 assets/js/3851.7f972b73.js create mode 100644 assets/js/4137.67bb73ee.js create mode 100644 assets/js/4277cc0d.d21522b6.js create mode 100644 assets/js/4551.88d2b179.js create mode 100644 assets/js/4617.6e66f439.js create mode 100644 assets/js/4709.1ea5418e.js create mode 100644 assets/js/4788.724c0856.js create mode 100644 assets/js/480.40dd37ae.js create mode 100644 assets/js/4875.484cb0fc.js create mode 100644 assets/js/4892.beb61f34.js create mode 100644 assets/js/4950.3fa51f56.js create mode 100644 assets/js/4a65a190.7c84169b.js create mode 100644 assets/js/4b0ae1c1.57c4e4c6.js create mode 100644 assets/js/4d54d076.77810809.js create mode 100644 assets/js/5062.689c71ca.js create mode 100644 assets/js/5082.46e3206e.js create mode 100644 assets/js/51515e66.872b3c9b.js create mode 100644 assets/js/5250.ce6f0efa.js create mode 100644 assets/js/53a1f56d.5f6ee735.js create mode 100644 assets/js/5428.8c0b8a2a.js create mode 100644 assets/js/5493.5c969992.js create mode 100644 assets/js/5505.ad92f9fd.js create mode 100644 assets/js/5576.62e087a6.js create mode 100644 assets/js/5651.49615f32.js create mode 100644 assets/js/5783.7e9699db.js create mode 100644 assets/js/5e95c892.a44b09d4.js create mode 100644 assets/js/6073.99acb2b6.js create mode 100644 assets/js/612.7ca96f70.js create mode 100644 assets/js/6184.b444265b.js create mode 100644 assets/js/621db11d.cd6afb65.js create mode 100644 assets/js/6326.27d6a633.js create mode 100644 assets/js/6374.05518a82.js create mode 100644 assets/js/6520.c5a12252.js create mode 100644 assets/js/6726.ac90325c.js create mode 100644 assets/js/672ba3d6.6f76c648.js create mode 100644 assets/js/6762.affd9a83.js create mode 100644 assets/js/6771.da21afb4.js create mode 100644 assets/js/6832.2c2e961f.js create mode 100644 assets/js/6856.9f4ebf6f.js create mode 100644 assets/js/6875c492.0883a958.js create mode 100644 assets/js/6db0e023.dfe3ef48.js create mode 100644 assets/js/718.659975ba.js create mode 100644 assets/js/7256.b8012a00.js create mode 100644 assets/js/7472.e543edd6.js create mode 100644 assets/js/7693.12c8b0db.js create mode 100644 assets/js/7874.d706704a.js create mode 100644 assets/js/78900b38.df0832a6.js create mode 100644 assets/js/7bd8db71.a7dc2951.js create mode 100644 assets/js/80dcd7a6.cfd97088.js create mode 100644 assets/js/814f3328.2ff0395c.js create mode 100644 assets/js/8272.20c4caca.js create mode 100644 assets/js/8645.4532c47b.js create mode 100644 assets/js/8665.cdad3879.js create mode 100644 assets/js/8683.9ee3384f.js create mode 100644 assets/js/8927.7a51b0fb.js create mode 100644 assets/js/896.d7dfba44.js create mode 100644 assets/js/9010.278a1aa9.js create mode 100644 assets/js/9156.a3122fd7.js create mode 100644 assets/js/925626eb.2bb062ae.js create mode 100644 assets/js/9729.c0276c29.js create mode 100644 assets/js/9948.5ccdc219.js create mode 100644 assets/js/9956.a105c9b8.js create mode 100644 assets/js/9e4087bc.294903d8.js create mode 100644 assets/js/a6aa9e1f.5f4ef81b.js create mode 100644 assets/js/a7456010.5acfbe30.js create mode 100644 assets/js/a7bd4aaa.f3b25130.js create mode 100644 assets/js/a94703ab.0bcffcab.js create mode 100644 assets/js/a9c167f1.f824f0f1.js create mode 100644 assets/js/aba21aa0.33b48647.js create mode 100644 assets/js/acecf23e.319d1801.js create mode 100644 assets/js/ae60c7b8.70d5d1e0.js create mode 100644 assets/js/b5ed4930.e99a4908.js create mode 100644 assets/js/bec69a53.55ad773a.js create mode 100644 assets/js/bf45ab0e.b6431a77.js create mode 100644 assets/js/c4f5d8e4.f9b899ea.js create mode 100644 assets/js/ccc49370.0fff0dec.js create mode 100644 assets/js/common.b2db8efe.js create mode 100644 assets/js/dbbf4deb.446d5d75.js create mode 100644 assets/js/e0e79246.271b17de.js create mode 100644 assets/js/ece1c32f.aa2ebd53.js create mode 100644 assets/js/efe00fe9.68c2e796.js create mode 100644 assets/js/main.0c7b46ea.js create mode 100644 assets/js/runtime~main.665078bd.js create mode 100644 blog.html create mode 100644 blog/archive.html create mode 100644 blog/atom.css create mode 100644 blog/atom.xml create mode 100644 blog/atom.xsl create mode 100644 blog/authors.html create mode 100644 blog/authors/changlu.html create mode 100644 blog/origin-of-sqlparserx.html create mode 100644 blog/rss.css create mode 100644 blog/rss.xml create mode 100644 blog/rss.xsl create mode 100644 blog/tags.html create mode 100644 blog/tags/origin.html create mode 100644 community.html create mode 100644 docs/about/architecture.html create mode 100644 docs/about/introduction.html create mode 100644 docs/contributing.html create mode 100644 docs/core/field-lineage.html create mode 100644 docs/core/function-parse.html create mode 100644 docs/core/table-lineage.html create mode 100644 docs/core/table-parse.html create mode 100644 docs/intro.html create mode 100644 docs/next/about/architecture.html create mode 100644 docs/next/about/introduction.html create mode 100644 docs/next/contributing.html create mode 100644 docs/next/core/field-lineage.html create mode 100644 docs/next/core/function-parse.html create mode 100644 docs/next/core/table-lineage.html create mode 100644 docs/next/core/table-parse.html create mode 100644 docs/next/intro.html create mode 100644 docs/next/quickstart/setup.html create mode 100644 docs/quickstart/setup.html create mode 100644 en/.nojekyll create mode 100644 en/404.html create mode 100644 en/assets/css/styles.c4a679e7.css create mode 100644 en/assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png create mode 100644 en/assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png create mode 100644 en/assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png create mode 100644 en/assets/images/04-druid-syntax-layer-815515eac5295f9f772e1beb97f04c11.png create mode 100644 en/assets/images/05-druid-layer-structure-5737c5a7826cff1a2874cf2b927ccd34.png create mode 100644 en/assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png create mode 100644 en/assets/images/07-application-components-3fa01967e1605c21791788f2a06212eb.png create mode 100644 en/assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png create mode 100644 en/assets/images/09-register-client-c6216b08439b96af51fda129de838a4e.png create mode 100644 en/assets/images/10-after-refactor-c8b89cd447d9cea7894354ffea6a2fdf.png create mode 100644 en/assets/images/11-function-visitor-43a9830686ce367f536545b5691f504f.png create mode 100644 "en/assets/images/SqlParserX\344\270\244\345\261\202\346\236\266\346\236\204-en-710c1c16b39bd3885dfe50d51143759f.png" create mode 100644 en/assets/js/01a85c17.35e1a59a.js create mode 100644 en/assets/js/02854a60.7e7e9bd4.js create mode 100644 en/assets/js/1016.43603c7f.js create mode 100644 en/assets/js/1078a278.964015e8.js create mode 100644 en/assets/js/1134.56885915.js create mode 100644 en/assets/js/136d9fb6.e7c4760d.js create mode 100644 en/assets/js/1447.ce362a6b.js create mode 100644 en/assets/js/1491.920b1332.js create mode 100644 en/assets/js/1567.9f44ced9.js create mode 100644 en/assets/js/17896441.06353295.js create mode 100644 en/assets/js/181.90e2d56b.js create mode 100644 en/assets/js/1862.1a43044f.js create mode 100644 en/assets/js/190.c766b1ae.js create mode 100644 en/assets/js/2107.f3b80883.js create mode 100644 en/assets/js/2240.925a2a48.js create mode 100644 en/assets/js/2268.485f02c6.js create mode 100644 en/assets/js/22e0017f.f9dfb251.js create mode 100644 en/assets/js/2358.f2f121b1.js create mode 100644 en/assets/js/2395.66d8d46d.js create mode 100644 en/assets/js/255.9c291378.js create mode 100644 en/assets/js/2853.1bd4804e.js create mode 100644 en/assets/js/2881.c311ece9.js create mode 100644 en/assets/js/2951.165aea2c.js create mode 100644 en/assets/js/2cb18a50.16d7aca5.js create mode 100644 en/assets/js/3009.12978314.js create mode 100644 en/assets/js/3017.e8b74ccb.js create mode 100644 en/assets/js/3312.b999d1ad.js create mode 100644 en/assets/js/33fc5bb8.3fe0f57b.js create mode 100644 en/assets/js/3535.18db5811.js create mode 100644 en/assets/js/3636.d70391ac.js create mode 100644 en/assets/js/3693.178dfbe0.js create mode 100644 en/assets/js/36994c47.a19db22c.js create mode 100644 en/assets/js/3788.070794c2.js create mode 100644 en/assets/js/3851.7f972b73.js create mode 100644 en/assets/js/4137.67bb73ee.js create mode 100644 en/assets/js/4551.88d2b179.js create mode 100644 en/assets/js/4617.6e66f439.js create mode 100644 en/assets/js/4709.1ea5418e.js create mode 100644 en/assets/js/4788.724c0856.js create mode 100644 en/assets/js/480.40dd37ae.js create mode 100644 en/assets/js/4875.484cb0fc.js create mode 100644 en/assets/js/4892.beb61f34.js create mode 100644 en/assets/js/4950.3fa51f56.js create mode 100644 en/assets/js/4a65a190.cd87306b.js create mode 100644 en/assets/js/4b0ae1c1.c494aa8e.js create mode 100644 en/assets/js/5062.689c71ca.js create mode 100644 en/assets/js/5082.46e3206e.js create mode 100644 en/assets/js/5250.ce6f0efa.js create mode 100644 en/assets/js/533336a0.5348230d.js create mode 100644 en/assets/js/5428.8c0b8a2a.js create mode 100644 en/assets/js/5493.5c969992.js create mode 100644 en/assets/js/5505.ad92f9fd.js create mode 100644 en/assets/js/5576.62e087a6.js create mode 100644 en/assets/js/5651.49615f32.js create mode 100644 en/assets/js/5783.7e9699db.js create mode 100644 en/assets/js/5abf25f6.9830132d.js create mode 100644 en/assets/js/5b44acae.eb2b091e.js create mode 100644 en/assets/js/5e95c892.a44b09d4.js create mode 100644 en/assets/js/6073.99acb2b6.js create mode 100644 en/assets/js/612.7ca96f70.js create mode 100644 en/assets/js/6184.b444265b.js create mode 100644 en/assets/js/621db11d.cd6afb65.js create mode 100644 en/assets/js/6326.27d6a633.js create mode 100644 en/assets/js/6374.05518a82.js create mode 100644 en/assets/js/6520.c5a12252.js create mode 100644 en/assets/js/6726.ac90325c.js create mode 100644 en/assets/js/672ba3d6.6f76c648.js create mode 100644 en/assets/js/6762.affd9a83.js create mode 100644 en/assets/js/6771.da21afb4.js create mode 100644 en/assets/js/6832.2c2e961f.js create mode 100644 en/assets/js/6856.9f4ebf6f.js create mode 100644 en/assets/js/6875c492.0883a958.js create mode 100644 en/assets/js/718.659975ba.js create mode 100644 en/assets/js/7256.b8012a00.js create mode 100644 en/assets/js/7472.ede4e6b6.js create mode 100644 en/assets/js/7693.c2b73a77.js create mode 100644 en/assets/js/773100d1.d64ce887.js create mode 100644 en/assets/js/7874.d706704a.js create mode 100644 en/assets/js/7ba64a19.5461fd25.js create mode 100644 en/assets/js/814f3328.a11b30f2.js create mode 100644 en/assets/js/8272.20c4caca.js create mode 100644 en/assets/js/8645.4532c47b.js create mode 100644 en/assets/js/8665.cdad3879.js create mode 100644 en/assets/js/8683.9ee3384f.js create mode 100644 en/assets/js/8927.7a51b0fb.js create mode 100644 en/assets/js/896.d7dfba44.js create mode 100644 en/assets/js/9010.278a1aa9.js create mode 100644 en/assets/js/9156.a3122fd7.js create mode 100644 en/assets/js/92d5f697.98e740c5.js create mode 100644 en/assets/js/9729.f747c8de.js create mode 100644 en/assets/js/9948.5ccdc219.js create mode 100644 en/assets/js/9956.43a95bde.js create mode 100644 en/assets/js/9aae347e.74700eb1.js create mode 100644 en/assets/js/9c37e8a9.7fe8a96d.js create mode 100644 en/assets/js/9e4087bc.294903d8.js create mode 100644 en/assets/js/a02bd756.f50fe793.js create mode 100644 en/assets/js/a16ef744.39fbe70d.js create mode 100644 en/assets/js/a6aa9e1f.5f4ef81b.js create mode 100644 en/assets/js/a7456010.5acfbe30.js create mode 100644 en/assets/js/a7bd4aaa.f3b25130.js create mode 100644 en/assets/js/a84fc31f.1e52c8d8.js create mode 100644 en/assets/js/a94703ab.0bcffcab.js create mode 100644 en/assets/js/aa9e3246.260a5858.js create mode 100644 en/assets/js/aba21aa0.33b48647.js create mode 100644 en/assets/js/ac311984.d9c3b59b.js create mode 100644 en/assets/js/ac4ff279.f1c344ee.js create mode 100644 en/assets/js/acecf23e.98c2f734.js create mode 100644 en/assets/js/bd32d0d5.4cd1db7b.js create mode 100644 en/assets/js/c4f5d8e4.f9b899ea.js create mode 100644 en/assets/js/c61d1296.dae5d868.js create mode 100644 en/assets/js/ccc49370.0fff0dec.js create mode 100644 en/assets/js/common.b2db8efe.js create mode 100644 en/assets/js/d611a6ba.65339341.js create mode 100644 en/assets/js/db80618e.29a55518.js create mode 100644 en/assets/js/e539d78b.f200a967.js create mode 100644 en/assets/js/e9caf4bd.6e761e5e.js create mode 100644 en/assets/js/f798a39c.092b30b6.js create mode 100644 en/assets/js/main.44f4b7b8.js create mode 100644 en/assets/js/runtime~main.f734647b.js create mode 100644 en/blog.html create mode 100644 en/blog/archive.html create mode 100644 en/blog/atom.css create mode 100644 en/blog/atom.xml create mode 100644 en/blog/atom.xsl create mode 100644 en/blog/authors.html create mode 100644 en/blog/authors/changlu.html create mode 100644 en/blog/origin-of-sqlparserx.html create mode 100644 en/blog/rss.css create mode 100644 en/blog/rss.xml create mode 100644 en/blog/rss.xsl create mode 100644 en/blog/tags.html create mode 100644 en/blog/tags/origin.html create mode 100644 en/community.html create mode 100644 en/docs/about/architecture.html create mode 100644 en/docs/about/introduction.html create mode 100644 en/docs/contributing.html create mode 100644 en/docs/core/field-lineage.html create mode 100644 en/docs/core/function-parse.html create mode 100644 en/docs/core/table-lineage.html create mode 100644 en/docs/core/table-parse.html create mode 100644 en/docs/intro.html create mode 100644 en/docs/next/about/architecture.html create mode 100644 en/docs/next/about/introduction.html create mode 100644 en/docs/next/contributing.html create mode 100644 en/docs/next/core/field-lineage.html create mode 100644 en/docs/next/core/function-parse.html create mode 100644 en/docs/next/core/table-lineage.html create mode 100644 en/docs/next/core/table-parse.html create mode 100644 en/docs/next/intro.html create mode 100644 en/docs/next/quickstart/setup.html create mode 100644 en/docs/quickstart/setup.html create mode 100644 "en/img/architecture/SqlParserX\344\270\244\345\261\202\346\236\266\346\236\204-en.png" create mode 100644 "en/img/architecture/SqlParserX\344\270\244\345\261\202\346\236\266\346\236\204.png" create mode 100644 en/img/case/navigation.svg create mode 100644 en/img/case/version.svg create mode 100644 en/img/datasource/clickhouse.png create mode 100644 en/img/datasource/doris.png create mode 100644 en/img/datasource/greenplum.png create mode 100644 en/img/datasource/hive.png create mode 100644 en/img/datasource/mysql.png create mode 100644 en/img/datasource/oceanbase.png create mode 100644 en/img/datasource/postgresql.png create mode 100644 en/img/datasource/spark.png create mode 100644 en/img/datasource/sqlserver.png create mode 100644 en/img/datasource/tidb.png create mode 100644 en/img/favicon.svg create mode 100644 en/img/logo.svg create mode 100644 en/img/social-card.svg create mode 100644 en/index.html create mode 100644 en/sitemap.xml create mode 100644 "img/architecture/SqlParserX\344\270\244\345\261\202\346\236\266\346\236\204-en.png" create mode 100644 "img/architecture/SqlParserX\344\270\244\345\261\202\346\236\266\346\236\204.png" create mode 100644 img/case/navigation.svg create mode 100644 img/case/version.svg create mode 100644 img/datasource/clickhouse.png create mode 100644 img/datasource/doris.png create mode 100644 img/datasource/greenplum.png create mode 100644 img/datasource/hive.png create mode 100644 img/datasource/mysql.png create mode 100644 img/datasource/oceanbase.png create mode 100644 img/datasource/postgresql.png create mode 100644 img/datasource/spark.png create mode 100644 img/datasource/sqlserver.png create mode 100644 img/datasource/tidb.png create mode 100644 img/favicon.svg create mode 100644 img/logo.svg create mode 100644 img/social-card.svg create mode 100644 index.html create mode 100644 sitemap.xml diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..ecde34a --- /dev/null +++ b/404.html @@ -0,0 +1,4 @@ +找不到页面 | SqlParserX + + +
跳到主要内容

找不到页面

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

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

\ No newline at end of file diff --git a/assets/css/styles.c4a679e7.css b/assets/css/styles.c4a679e7.css new file mode 100644 index 0000000..bf1749c --- /dev/null +++ b/assets/css/styles.c4a679e7.css @@ -0,0 +1 @@ +@layer docusaurus.infima{:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:.2s;--ifm-transition-slow:.4s;--ifm-transition-timing-default:cubic-bezier(.08,.52,.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:.1rem;--ifm-code-padding-vertical:.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:.875rem;--ifm-h6-font-size:.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:.8rem;--ifm-breadcrumb-padding-vertical:.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url("data:image/svg+xml;utf8,");--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-color:var(--ifm-font-color-base-inverse);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:.5rem;--ifm-toc-padding-horizontal:.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:.75rem;--ifm-menu-link-padding-vertical:.375rem;--ifm-menu-link-sublist-icon:url("data:image/svg+xml;utf8,");--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:.75rem;--ifm-navbar-item-padding-vertical:.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url("data:image/svg+xml;utf8,");--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base)var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{word-wrap:break-word;margin:0}iframe{color-scheme:normal;border:0}.container{max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%;margin:0 auto}.container--fluid{max-width:inherit}.row{margin:0 calc(var(--ifm-spacing-horizontal)*-1);flex-wrap:wrap;display:flex}.row--no-gutters{margin-left:0;margin-right:0}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);flex:1 0;width:100%;margin-left:0}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:calc(1/12*100%)}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:calc(2/12*100%)}.col--offset-2{margin-left:16.6667%}.col--3{--ifm-col-width:calc(3/12*100%)}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:calc(4/12*100%)}.col--offset-4{margin-left:33.3333%}.col--5{--ifm-col-width:calc(5/12*100%)}.col--offset-5{margin-left:41.6667%}.col--6{--ifm-col-width:calc(6/12*100%)}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:calc(7/12*100%)}.col--offset-7{margin-left:58.3333%}.col--8{--ifm-col-width:calc(8/12*100%)}.col--offset-8{margin-left:66.6667%}.col--9{--ifm-col-width:calc(9/12*100%)}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:calc(10/12*100%)}.col--offset-10{margin-left:83.3333%}.col--11{--ifm-col-width:calc(11/12*100%)}.col--offset-11{margin-left:91.6667%}.col--12{--ifm-col-width:calc(12/12*100%)}.col--offset-12{margin-left:100%}.margin--none{margin:0!important}.margin-top--none{margin-top:0!important}.margin-left--none{margin-left:0!important}.margin-bottom--none{margin-bottom:0!important}.margin-right--none{margin-right:0!important}.margin-vert--none{margin-top:0!important;margin-bottom:0!important}.margin-horiz--none{margin-left:0!important;margin-right:0!important}.margin--xs{margin:.25rem!important}.margin-top--xs{margin-top:.25rem!important}.margin-left--xs{margin-left:.25rem!important}.margin-bottom--xs{margin-bottom:.25rem!important}.margin-right--xs{margin-right:.25rem!important}.margin-vert--xs{margin-top:.25rem!important;margin-bottom:.25rem!important}.margin-horiz--xs{margin-left:.25rem!important;margin-right:.25rem!important}.margin--sm{margin:.5rem!important}.margin-top--sm{margin-top:.5rem!important}.margin-left--sm{margin-left:.5rem!important}.margin-bottom--sm{margin-bottom:.5rem!important}.margin-right--sm{margin-right:.5rem!important}.margin-vert--sm{margin-top:.5rem!important;margin-bottom:.5rem!important}.margin-horiz--sm{margin-left:.5rem!important;margin-right:.5rem!important}.margin--md{margin:1rem!important}.margin-top--md{margin-top:1rem!important}.margin-left--md{margin-left:1rem!important}.margin-bottom--md{margin-bottom:1rem!important}.margin-right--md{margin-right:1rem!important}.margin-vert--md{margin-top:1rem!important;margin-bottom:1rem!important}.margin-horiz--md{margin-left:1rem!important;margin-right:1rem!important}.margin--lg{margin:2rem!important}.margin-top--lg{margin-top:2rem!important}.margin-left--lg{margin-left:2rem!important}.margin-bottom--lg{margin-bottom:2rem!important}.margin-right--lg{margin-right:2rem!important}.margin-vert--lg{margin-top:2rem!important;margin-bottom:2rem!important}.margin-horiz--lg{margin-left:2rem!important;margin-right:2rem!important}.margin--xl{margin:5rem!important}.margin-top--xl{margin-top:5rem!important}.margin-left--xl{margin-left:5rem!important}.margin-bottom--xl{margin-bottom:5rem!important}.margin-right--xl{margin-right:5rem!important}.margin-vert--xl{margin-top:5rem!important;margin-bottom:5rem!important}.margin-horiz--xl{margin-left:5rem!important;margin-right:5rem!important}.padding--none{padding:0!important}.padding-top--none{padding-top:0!important}.padding-left--none{padding-left:0!important}.padding-bottom--none{padding-bottom:0!important}.padding-right--none{padding-right:0!important}.padding-vert--none{padding-top:0!important;padding-bottom:0!important}.padding-horiz--none{padding-left:0!important;padding-right:0!important}.padding--xs{padding:.25rem!important}.padding-top--xs{padding-top:.25rem!important}.padding-left--xs{padding-left:.25rem!important}.padding-bottom--xs{padding-bottom:.25rem!important}.padding-right--xs{padding-right:.25rem!important}.padding-vert--xs{padding-top:.25rem!important;padding-bottom:.25rem!important}.padding-horiz--xs{padding-left:.25rem!important;padding-right:.25rem!important}.padding--sm{padding:.5rem!important}.padding-top--sm{padding-top:.5rem!important}.padding-left--sm{padding-left:.5rem!important}.padding-bottom--sm{padding-bottom:.5rem!important}.padding-right--sm{padding-right:.5rem!important}.padding-vert--sm{padding-top:.5rem!important;padding-bottom:.5rem!important}.padding-horiz--sm{padding-left:.5rem!important;padding-right:.5rem!important}.padding--md{padding:1rem!important}.padding-top--md{padding-top:1rem!important}.padding-left--md{padding-left:1rem!important}.padding-bottom--md{padding-bottom:1rem!important}.padding-right--md{padding-right:1rem!important}.padding-vert--md{padding-top:1rem!important;padding-bottom:1rem!important}.padding-horiz--md{padding-left:1rem!important;padding-right:1rem!important}.padding--lg{padding:2rem!important}.padding-top--lg{padding-top:2rem!important}.padding-left--lg{padding-left:2rem!important}.padding-bottom--lg{padding-bottom:2rem!important}.padding-right--lg{padding-right:2rem!important}.padding-vert--lg{padding-top:2rem!important;padding-bottom:2rem!important}.padding-horiz--lg{padding-left:2rem!important;padding-right:2rem!important}.padding--xl{padding:5rem!important}.padding-top--xl{padding-top:5rem!important}.padding-left--xl{padding-left:5rem!important}.padding-bottom--xl{padding-bottom:5rem!important}.padding-right--xl{padding-right:5rem!important}.padding-vert--xl{padding-top:5rem!important;padding-bottom:5rem!important}.padding-horiz--xl{padding-left:5rem!important;padding-right:5rem!important}code{background-color:var(--ifm-code-background);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical)var(--ifm-code-padding-horizontal);vertical-align:middle;border:.1rem solid rgba(0,0,0,.1)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height)var(--ifm-font-family-monospace);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-pre-padding);overflow:auto}pre code{font-size:100%;line-height:inherit;background-color:transparent;border:none;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);border-radius:.2rem;padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top)0 var(--ifm-heading-margin-bottom)0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:before{content:"";display:table}.markdown:after{clear:both;content:"";display:table}.markdown>:last-child{margin-bottom:0!important}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>pre,.markdown>ul,.markdown>p{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ul,ol{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ul ul,ul ol,ol ol,ol ul{margin:0}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:block;overflow:auto}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead{background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width)solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table th,table td{border:var(--ifm-table-border-width)solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width)solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-blockquote-padding-vertical)var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical)0;border:0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text--break{word-wrap:break-word!important;word-break:break-word!important}.text--no-decoration,.text--no-decoration:hover{-webkit-text-decoration:none;text-decoration:none}.clean-btn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.clean-list{padding-left:0;list-style:none}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width)solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);color:var(--ifm-alert-foreground-color);padding:var(--ifm-alert-padding-vertical)var(--ifm-alert-padding-horizontal)}.alert__heading{font:bold var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase;align-items:center;margin-bottom:.5rem;display:flex}.alert__icon{margin-right:.4em;display:inline-flex}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{color:var(--ifm-alert-foreground-color);margin:calc(var(--ifm-alert-padding-vertical)*-1)calc(var(--ifm-alert-padding-horizontal)*-1)0 0;opacity:.75}.alert .close:hover,.alert .close:focus{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size);border-radius:50%;display:block;overflow:hidden}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{text-align:var(--ifm-avatar-intro-alignment);flex-direction:column;flex:1;justify-content:center;display:flex}.avatar__name{font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:.5rem;flex-direction:column;align-items:center}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width)solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);padding:var(--ifm-badge-padding-vertical)var(--ifm-badge-padding-horizontal);line-height:1;display:inline-block}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);--ifm-badge-border-color:var(--ifm-badge-background-color);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger);--ifm-badge-border-color:var(--ifm-badge-background-color)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item{display:inline-block}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator)center;content:" ";filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));display:inline-block}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier))calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-property:background,color;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);display:inline-block}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width)solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);color:var(--ifm-button-color);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier))calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;transition-property:color,background,border-color;transition-duration:var(--ifm-button-transition-duration);transition-timing-function:var(--ifm-transition-timing-default);line-height:1.5;display:inline-block}.button:hover{color:var(--ifm-button-color);-webkit-text-decoration:none;text-decoration:none}.button--outline{--ifm-button-background-color:transparent;--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--outline:hover,.button--outline:active,.button--outline.button--active{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button--link{--ifm-button-background-color:transparent;--ifm-button-border-color:transparent;color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration)}.button--link:hover,.button--link:active,.button--link.button--active{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{width:100%;display:block}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary:active,.button--primary.button--active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary:active,.button--secondary.button--active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success:active,.button--success.button--active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info:active,.button--info.button--active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning:active,.button--warning.button--active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger:active,.button--danger.button--active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{gap:var(--ifm-button-group-spacing);display:inline-flex}.button-group>.button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.button-group>.button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.button-group--block{justify-content:stretch;display:flex}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);flex-direction:column;display:flex;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__header,.card__body,.card__footer{padding:var(--ifm-card-vertical-spacing)var(--ifm-card-horizontal-spacing)}.card__header:not(:last-child),.card__body:not(:last-child),.card__footer:not(:last-child){padding-bottom:0}.card__header>:last-child,.card__body>:last-child,.card__footer>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{padding:var(--ifm-toc-padding-vertical)0;margin-bottom:0;font-size:.8rem}.table-of-contents,.table-of-contents ul{padding-left:var(--ifm-toc-padding-horizontal);list-style:none}.table-of-contents li{margin:var(--ifm-toc-padding-vertical)var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link:hover,.table-of-contents__link:hover code,.table-of-contents__link--active,.table-of-contents__link--active code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default);padding:1rem;line-height:1}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{font-weight:var(--ifm-dropdown-font-weight);vertical-align:top;display:inline-flex;position:relative}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;visibility:visible;transform:translateY(-1px)}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);opacity:0;pointer-events:none;min-width:10rem;max-height:80vh;left:0;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);visibility:hidden;z-index:var(--ifm-z-index-dropdown);transition-property:opacity,transform,visibility;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);padding:.5rem;list-style:none;position:absolute;overflow-y:auto;transform:translateY(-.625rem)}.dropdown__link{color:var(--ifm-dropdown-link-color);white-space:nowrap;border-radius:.25rem;margin-top:.2rem;padding:.25rem .5rem;font-size:.875rem;display:block}.dropdown__link:hover,.dropdown__link--active{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);-webkit-text-decoration:none;text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{content:"";border:.4em solid transparent;border-top-color:currentColor;border-bottom:0 solid;margin-left:.3em;display:inline-block;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical)var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin-top:1rem}.footer__title{color:var(--ifm-footer-title-color);font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);align-items:center;padding:4rem 2rem;display:flex}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0;list-style:none}.menu__list .menu__list{padding-left:var(--ifm-menu-link-padding-horizontal);flex:0 0 100%;margin-top:.25rem}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item--collapsed .menu__caret:before{transform:rotate(90deg)}.menu__list-item-collapsible{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;flex-wrap:wrap;display:flex;position:relative}.menu__list-item-collapsible:hover,.menu__list-item-collapsible--active{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link:hover,.menu__list-item-collapsible .menu__link--active{background:0 0!important}.menu__link,.menu__caret{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;align-items:center;display:flex}.menu__link:hover,.menu__caret:hover{background:var(--ifm-menu-color-background-hover)}.menu__link{color:var(--ifm-menu-color);padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default);-webkit-text-decoration:none;text-decoration:none}.menu__link--sublist-caret:after{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;min-width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;margin-left:auto;transform:rotate(180deg)}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu__caret:before{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;transform:rotate(180deg)}html[data-theme=dark],.navbar--dark{--ifm-menu-link-sublist-icon-filter:invert(100%)sepia(94%)saturate(17%)hue-rotate(223deg)brightness(104%)contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);display:flex}.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{z-index:var(--ifm-z-index-fixed);position:sticky;top:0}.navbar__inner{flex-wrap:wrap;justify-content:space-between;width:100%;display:flex}.navbar__brand{color:var(--ifm-navbar-link-color);align-items:center;min-width:0;margin-right:1rem;display:flex}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar__title{flex:auto}.navbar__toggle{margin-right:.5rem;display:none}.navbar__logo{flex:none;height:2rem;margin-right:.5rem}.navbar__logo img{height:100%}.navbar__items{flex:1;align-items:center;min-width:0;display:flex}.navbar__items--center{flex:none}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:none;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal);display:inline-block}.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{color:var(--ifm-navbar-link-color);font-weight:var(--ifm-font-weight-semibold)}.navbar__link:hover,.navbar__link--active{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:rgba(255,255,255,.1);--ifm-navbar-search-input-placeholder-color:rgba(255,255,255,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-menu-color-background-active:rgba(255,255,255,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color)var(--ifm-navbar-search-input-icon)no-repeat .75rem center/1rem 1rem;color:var(--ifm-navbar-search-input-color);cursor:text;border:none;border-radius:2rem;width:12.5rem;height:2rem;padding:0 .5rem 0 2.25rem;font-size:1rem;display:inline-block}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);opacity:0;visibility:hidden;width:var(--ifm-navbar-sidebar-width);transition-property:opacity,visibility,transform;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;transform:translate(-100%)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translate(0,0)}.navbar-sidebar__backdrop{opacity:0;visibility:hidden;transition-property:opacity,visibility;transition-duration:var(--ifm-transition-fast);background-color:rgba(0,0,0,.6);transition-timing-function:ease-in-out;position:fixed;inset:0}.navbar-sidebar__brand{box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);flex:1;align-items:center;display:flex}.navbar-sidebar__items{height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast)ease-in-out;display:flex;transform:translateZ(0)}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{width:calc(var(--ifm-navbar-sidebar-width));flex-shrink:0;padding:.5rem}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);text-align:left;width:calc(100% + 1rem);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;top:-.5rem}.navbar-sidebar__close{margin-left:auto;display:flex}.pagination{column-gap:var(--ifm-pagination-page-spacing);font-size:var(--ifm-pagination-font-size);padding-left:0;display:flex}.pagination--sm{--ifm-pagination-font-size:.8rem;--ifm-pagination-padding-horizontal:.8rem;--ifm-pagination-padding-vertical:.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{background:var(--ifm-pagination-item-active-background);color:var(--ifm-pagination-color-active)}.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical)var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:inline-block}.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr);display:grid}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:block}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);-webkit-text-decoration:none;text-decoration:none}.pagination-nav__link--next{text-align:right;grid-column:2/3}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills{gap:var(--ifm-pills-spacing);padding-left:0;display:flex}.pills__item{cursor:pointer;font-weight:var(--ifm-font-weight-bold);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.5rem;padding:.25rem 1rem;display:inline-block}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{text-align:center;flex-grow:1}.tabs{color:var(--ifm-tabs-color);font-weight:var(--ifm-font-weight-bold);margin-bottom:0;padding-left:0;display:flex;overflow-x:auto}.tabs__item{border-radius:var(--ifm-global-radius);cursor:pointer;padding:var(--ifm-tabs-padding-vertical)var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-bottom:3px solid transparent;display:inline-flex}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);color:var(--ifm-tabs-color-active);border-bottom-right-radius:0;border-bottom-left-radius:0}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:rgba(255,255,255,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%)sepia(11%)saturate(0%)hue-rotate(149deg)brightness(99%)contrast(95%);--ifm-code-background:rgba(255,255,255,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:rgba(255,255,255,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}@media (width>=1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (width<=996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{width:max-content;display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__item{display:none}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}}@media (width<=576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0s;--ifm-transition-slow:0s}}@media print{.table-of-contents,.footer,.menu,.navbar,.pagination-nav{display:none}.tabs{page-break-inside:avoid}}}@layer docusaurus.theme-common{.themedComponent_mlkZ{display:none}[data-theme=light] .themedComponent--light_NVdE,[data-theme=dark] .themedComponent--dark_xIcU,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.errorBoundaryError_a6uf{white-space:pre-wrap;color:red}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.anchorTargetStickyNavbar_Vzrq{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorTargetHideOnScrollNavbar_vjPI{scroll-margin-top:.5rem}.details_lb9f{--docusaurus-details-summary-arrow-size:.38rem;--docusaurus-details-transition:transform .2s ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;list-style:none;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{content:"";border-width:var(--docusaurus-details-summary-arrow-size);border-style:solid;border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);transition:var(--docusaurus-details-transition);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2)50%;position:absolute;top:.45rem;left:0;transform:rotate(0)}.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before{transform:rotate(90deg)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child{margin-bottom:0}}@layer docusaurus.theme-classic{:root{--docusaurus-progress-bar-color:var(--ifm-color-primary)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);z-index:1031;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{width:100px;height:100%;box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);opacity:1;position:absolute;right:0;transform:rotate(3deg)translateY(-4px)}.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1);padding:calc(var(--ifm-global-spacing)/2)var(--ifm-global-spacing);color:var(--ifm-color-emphasis-900);background-color:var(--ifm-background-surface-color);position:fixed;top:1rem;left:100%}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{padding:0;line-height:0}.content_knG7{text-align:center;padding:5px 0;font-size:85%}.content_knG7 a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}:root{--docusaurus-announcement-bar-height:auto}.announcementBar_mb4j{height:var(--docusaurus-announcement-bar-height);background-color:var(--ifm-color-white);color:var(--ifm-color-black);border-bottom:1px solid var(--ifm-color-emphasis-100);align-items:center;display:flex}html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{flex:0 0 30px;align-self:stretch}.announcementBarContent_xLdY{flex:auto}@media print{.announcementBar_mb4j{display:none}}@media (width>=997px){:root{--docusaurus-announcement-bar-height:30px}.announcementBarPlaceholder_vyr4,.announcementBarClose_gvF7{flex-basis:50px}}.toggle_vylO{width:2rem;height:2rem}.toggleButton_gllP{-webkit-tap-highlight-color:transparent;width:100%;height:100%;transition:background var(--ifm-transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleIcon_g3eP{display:none}[data-theme-choice=system] .systemToggleIcon_QzmC,[data-theme-choice=light] .lightToggleIcon_pyhR,[data-theme-choice=dark] .darkToggleIcon_wfgR{display:initial}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_J0Sd{cursor:pointer}.iconLanguage_nlXk{vertical-align:text-bottom;margin-right:5px}.navbarSearchContainer_Bca1:empty{display:none}@media (width<=996px){.navbarSearchContainer_Bca1{right:var(--ifm-navbar-padding-horizontal);position:absolute}}@media (width>=997px){.navbarSearchContainer_Bca1{padding:0 var(--ifm-navbar-item-padding-horizontal)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast)ease}.navbarHidden_jGov{transform:translateY(calc(-100% - 2px))}@media (width<=996px){.colorModeToggle_DEke{display:none}}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover{opacity:1}.hash-link{opacity:0;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none;padding-left:.5rem}.hash-link:before{content:"#"}.hash-link:focus,:hover>.hash-link{opacity:1}html,body{height:100%}.mainWrapper_z2l0{flex-direction:column;flex:1 0 auto;display:flex}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{flex-direction:column;min-height:100%;display:flex}.sidebar_re4s{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 2rem);position:sticky;overflow-y:auto}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLink_mo7H:hover{-webkit-text-decoration:none;text-decoration:none}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}@media (width<=996px){.sidebar_re4s{display:none}}.yearGroupHeading_rMGB{margin-top:1.6rem;margin-bottom:.4rem}.yearGroupHeading_QT03{margin:1rem .75rem .5rem}.title_f1Hy{font-size:3rem}@media (width<=576px){.title_f1Hy{font-size:2rem}}.container_mt6G{font-size:.9rem}[data-theme=dark] .githubSvg_Uu4N{fill:var(--light)}[data-theme=light] .githubSvg_Uu4N{fill:var(--dark)}[data-theme=dark] .xSvg_y3PF{fill:var(--light)}[data-theme=light] .xSvg_y3PF{fill:var(--dark)}[data-theme=dark] .linkedinSvg_FCgI{fill:var(--light)}[data-theme=light] .linkedinSvg_FCgI{fill:var(--dark)}[data-theme=dark] .blueskySvg_AzZw{fill:var(--light)}[data-theme=light] .blueskySvg_AzZw{fill:var(--dark)}[data-theme=dark] .instagramSvg_YC40{fill:var(--light)}[data-theme=light] .instagramSvg_YC40{fill:var(--dark)}[data-theme=dark] .threadsSvg_PTXY{fill:var(--light)}[data-theme=light] .threadsSvg_PTXY{fill:var(--dark)}:root{--docusaurus-blog-social-icon-size:1rem}.authorSocials_rSDt{height:var(--docusaurus-blog-social-icon-size);line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;flex-wrap:wrap;align-items:center;line-height:0;display:flex;overflow:hidden}.authorSocialLink_owbf{height:var(--docusaurus-blog-social-icon-size);width:var(--docusaurus-blog-social-icon-size);margin-right:.4rem;line-height:0}.authorSocialIcon_XYv3{width:var(--docusaurus-blog-social-icon-size);height:var(--docusaurus-blog-social-icon-size)}.authorImage_XqGP{--ifm-avatar-photo-size:3.6rem}.author-as-h1_n9oJ .authorImage_XqGP{--ifm-avatar-photo-size:7rem}.author-as-h2_gXvM .authorImage_XqGP{--ifm-avatar-photo-size:5.4rem}.authorDetails_lV9A{flex-direction:column;justify-content:space-around;align-items:flex-start;display:flex}.authorName_yefp{flex-direction:row;font-size:1.1rem;line-height:1.1rem;display:flex}.author-as-h1_n9oJ .authorName_yefp{font-size:2.4rem;line-height:2.4rem;display:inline}.author-as-h2_gXvM .authorName_yefp{font-size:1.4rem;line-height:1.4rem;display:inline}.authorTitle_nd0D{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.8rem;line-height:1rem;display:-webkit-box;overflow:hidden}.author-as-h1_n9oJ .authorTitle_nd0D{font-size:1.2rem;line-height:1.6rem}.author-as-h2_gXvM .authorTitle_nd0D{font-size:1rem;line-height:1.3rem}.authorBlogPostCount_iiJ5{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.8rem;line-height:1.2}.authorCol_Hf19{max-width:inherit!important}.imageOnlyAuthorRow_pa_O{flex-flow:wrap;display:flex}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.authorListItem_n3yI{margin-bottom:2rem;list-style-type:none}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);width:3rem;height:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1);box-shadow:var(--ifm-global-shadow-lw);transition:all var(--ifm-transition-fast)var(--ifm-transition-timing-default);opacity:0;visibility:hidden;border-radius:50%;position:fixed;bottom:1.3rem;right:1.3rem;transform:scale(0)}.backToTopButton_sjWU:after{content:" ";-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;background-color:var(--ifm-color-emphasis-1000);width:100%;height:100%;display:inline-block}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}.backToTopButtonShow_xfvO{opacity:1;visibility:visible;transform:scale(1)}:root{--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1)}[data-theme=dark]:root{--docusaurus-collapse-button-bg:rgba(255,255,255,.05);--docusaurus-collapse-button-bg-hover:rgba(255,255,255,.1)}@media (width>=997px){.collapseSidebarButton_PEFL{background-color:var(--docusaurus-collapse-button-bg);border:1px solid var(--ifm-toc-border-color);border-radius:0;height:40px;position:sticky;bottom:0;display:block!important}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:hover,.collapseSidebarButton_PEFL:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}}.collapseSidebarButton_PEFL{margin:0;display:none}.menuExternalLink_NmtK{align-items:center}.linkLabel_WmDU{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.categoryLink_byQd{overflow:hidden}.menu__link--sublist-caret:after{margin-left:var(--ifm-menu-link-padding-vertical)}.categoryLinkLabel_W154{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}@media (width>=997px){.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{scrollbar-gutter:stable;padding:.5rem 0 .5rem .5rem}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width);flex-direction:column;display:flex}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{margin:0 var(--ifm-navbar-padding-horizontal);min-height:var(--ifm-navbar-height);max-height:var(--ifm-navbar-height);align-items:center;color:inherit!important;-webkit-text-decoration:none!important;text-decoration:none!important;display:flex!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}}.sidebarLogo_isFc{display:none}@media (width>=997px){.expandButton_TmdG{width:100%;height:100%;transition:background-color var(--ifm-transition-fast)ease;background-color:var(--docusaurus-collapse-button-bg);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.expandButton_TmdG:hover,.expandButton_TmdG:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_i1dp{transform:rotate(0)}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}}:root{--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.docSidebarContainer_YfHR{display:none}@media (width>=997px){.docSidebarContainer_YfHR{width:var(--doc-sidebar-width);margin-top:calc(-1*var(--ifm-navbar-height));border-right:1px solid var(--ifm-toc-border-color);will-change:width;transition:width var(--ifm-transition-fast)ease;clip-path:inset(0);display:block}.docSidebarContainerHidden_DPk8{width:var(--doc-sidebar-hidden-width);cursor:pointer}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}}.docMainContainer_TBSr{width:100%;display:flex}@media (width>=997px){.docMainContainer_TBSr{max-width:calc(100% - var(--doc-sidebar-width));flex-grow:1}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}.docRoot_UBD9{width:100%;display:flex}.docsWrapper_hBAB{flex:1 0 auto;display:flex}.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color);margin-bottom:var(--ifm-leading);box-shadow:var(--ifm-global-shadow-lw);border-radius:var(--ifm-code-border-radius)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockStandalone_MEMb{padding:0}.codeBlockLines_e6Vv{font:inherit;float:left;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{padding:var(--ifm-pre-padding)0;display:table}@media print{.codeBlockLines_e6Vv{white-space:pre-wrap}}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);margin:0 calc(-1*var(--ifm-pre-padding));padding:0 var(--ifm-pre-padding);display:block}.codeLine_lJS_{counter-increment:line-count;display:table-row}.codeLineNumber_Tfdd{text-align:right;width:1%;padding:0 var(--ifm-pre-padding);background:var(--ifm-pre-background);overflow-wrap:normal;display:table-cell;position:sticky;left:0}.codeLineNumber_Tfdd:before{content:counter(line-count);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_Vdqa{opacity:1!important}.copyButtonIcons_IEyt{width:1.125rem;height:1.125rem;position:relative}.copyButtonIcon_TrPX,.copyButtonSuccessIcon_cVMy{fill:currentColor;opacity:inherit;width:inherit;height:inherit;transition:all var(--ifm-transition-fast)ease;position:absolute;top:0;left:0}.copyButtonSuccessIcon_cVMy{opacity:0;color:#00d600;top:50%;left:50%;transform:translate(-50%,-50%)scale(.33)}.copyButtonCopied_Vdqa .copyButtonIcon_TrPX{opacity:0;transform:scale(.33)}.copyButtonCopied_Vdqa .copyButtonSuccessIcon_cVMy{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.wordWrapButtonIcon_b1P5{width:1.2rem;height:1.2rem}.wordWrapButtonEnabled_uzNF .wordWrapButtonIcon_b1P5{color:var(--ifm-color-primary)}.buttonGroup_M5ko{right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);column-gap:.2rem;display:flex;position:absolute}.buttonGroup_M5ko button{background:var(--prism-background-color);color:var(--prism-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);transition:opacity var(--ifm-transition-fast)ease-in-out;opacity:0;align-items:center;padding:.4rem;line-height:0;display:flex}.buttonGroup_M5ko button:hover{opacity:1!important}.buttonGroup_M5ko button:focus-visible{opacity:1!important}.theme-code-block:hover .buttonGroup_M5ko button{opacity:.4}.codeBlockContent_QJqH{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_OeMC{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);padding:.75rem var(--ifm-pre-padding);border-top-left-radius:inherit;border-top-right-radius:inherit;font-weight:500}.codeBlockTitle_OeMC+.codeBlockContent_QJqH .codeBlock_a8dz{border-top-left-radius:0;border-top-right-radius:0}:root{--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);padding:.2rem .5rem .3rem;font-size:90%}.tagWithCount_h2kH{border-left:0;align-items:center;padding:0 .5rem 0 1rem;display:flex;position:relative}.tagWithCount_h2kH:before,.tagWithCount_h2kH:after{content:"";border:1px solid var(--docusaurus-tag-list-border);transition:inherit;position:absolute;top:50%}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;width:1.18rem;height:1.18rem;right:100%;transform:translate(50%,-50%)rotate(-45deg)}.tagWithCount_h2kH:after{border-radius:50%;width:.5rem;height:.5rem;left:0;transform:translateY(-50%)}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem;line-height:1.2}.tag_Nnez{margin:.5rem .5rem 0 1rem;display:inline-block}.tags_jXut{display:inline}.tag_QGVx{margin:0 .4rem .5rem 0;display:inline-block}.iconEdit_Z9Sw{vertical-align:sub;margin-right:.3em}.lastUpdated_JAkA{margin-top:.2rem;font-size:smaller;font-style:italic}@media (width>=997px){.lastUpdated_JAkA{text-align:right}}@media print{.noPrint_WFHX{display:none}}.tocCollapsibleButton_TO0P{font-size:inherit;justify-content:space-between;align-items:center;width:100%;padding:.4rem .8rem;display:flex}.tocCollapsibleButton_TO0P:after{content:"";background:var(--ifm-menu-link-sublist-icon)50% 50%/2rem 2rem no-repeat;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast);transform:rotate(180deg)}.tocCollapsibleButtonExpanded_MG3E:after{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);padding:.2rem 0;font-size:15px}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tocCollapsibleExpanded_sAul{transform:none}@media (width>=997px){.tocMobile_ITEo{display:none}}@media print{.tocMobile_ITEo{display:none}}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast)ease;margin:0 0 var(--ifm-spacing-vertical);border:1px solid var(--ifm-alert-border-color)}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight)var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{vertical-align:middle;margin-right:.4em;display:inline-block}.admonitionIcon_Rf37 svg{width:1.6em;height:1.6em;fill:var(--ifm-alert-foreground-color);display:inline-block}.admonitionContent_BuS1>:last-child{margin-bottom:0}.tableOfContents_bqdL{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 1rem);position:sticky;overflow-y:auto}@media (width<=996px){.tableOfContents_bqdL{display:none}.docItemContainer_F8PC{padding:0 .3rem}}.breadcrumbHomeIcon_YNFT{vertical-align:top;width:1.1rem;height:1.1rem;position:relative;top:1px}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:.8;margin-bottom:.8rem}.docItemContainer_Djhp header+*,.docItemContainer_Djhp article>:first-child{margin-top:0}@media (width>=997px){.docItemCol_VOVn{max-width:75%!important}}}@layer docusaurus.core{#__docusaurus-base-url-issue-banner-container{display:none}}@layer docusaurus.plugin-debug;@layer docusaurus.theme-mermaid{.container_lyt7,.container_lyt7>svg{max-width:100%}}@layer docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;:root{--ifm-color-primary:#4f46e5;--ifm-color-primary-dark:#4338ca;--ifm-color-primary-darker:#3f35c0;--ifm-color-primary-darkest:#342ca0;--ifm-color-primary-light:#635bec;--ifm-color-primary-lighter:#6e67ee;--ifm-color-primary-lightest:#8f89f2;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.1);--ifm-navbar-background-color:rgba(255,255,255,.85);--ifm-background-surface-color:#fff;--ifm-color-content:#1f2430;--ifm-color-content-secondary:#6b7280;--banner-gradient-from:#f8faff;--banner-gradient-to:#eef1ff;--home-border:rgba(15,23,42,.08);--home-border-strong:rgba(15,23,42,.16);--home-hero-bg:linear-gradient(180deg,#f7f9ff 0%,#fff 100%);--home-grid-image:linear-gradient(rgba(79,70,229,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(79,70,229,.06) 1px,transparent 1px);--home-glow-a:rgba(99,102,241,.32);--home-glow-b:rgba(192,38,211,.2);--home-brand-gradient:linear-gradient(120deg,#4f46e5 0%,#7c3aed 50%,#c026d3 100%);--home-primary-glow:rgba(99,102,241,.45);--home-badge-bg:rgba(79,70,229,.08);--home-badge-border:rgba(79,70,229,.18);--home-badge-text-dark:#4338ca;--home-window-bg:#fff;--home-window-bar:#f8fafc;--home-window-shadow:0 30px 60px -20px rgba(15,23,42,.25);--home-code-kw:#7c3aed;--home-code-tbl:#0284c7;--home-tag-bg:rgba(79,70,229,.1);--home-tag-warm-bg:rgba(245,158,11,.14);--home-tag-warm-text:#b45309;--home-soft-bg:#f8fafc;--home-cta-bg:linear-gradient(120deg,#4f46e5 0%,#7c3aed 55%,#c026d3 100%)}[data-theme=dark]{--ifm-color-primary:#8f89f2;--ifm-color-primary-dark:#6e67ee;--ifm-color-primary-darker:#635bec;--ifm-color-primary-darkest:#4f46e5;--ifm-color-primary-light:#a6a1f5;--ifm-color-primary-lighter:#b0acf6;--ifm-color-primary-lightest:#d2cffa;--docusaurus-highlighted-code-line-bg:rgba(255,255,255,.1);--ifm-background-color:#0f1220;--ifm-background-surface-color:#171a2b;--ifm-navbar-background-color:rgba(15,18,32,.85);--ifm-color-content:#e7e9f3;--ifm-color-content-secondary:#9aa0b5;--banner-gradient-from:#12162a;--banner-gradient-to:#0f1220;--home-border:rgba(255,255,255,.08);--home-border-strong:rgba(255,255,255,.16);--home-hero-bg:linear-gradient(180deg,#0c0f1d 0%,#0f1220 100%);--home-grid-image:linear-gradient(rgba(139,92,246,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(139,92,246,.1) 1px,transparent 1px);--home-glow-a:rgba(99,102,241,.36);--home-glow-b:rgba(192,38,211,.24);--home-brand-gradient:linear-gradient(120deg,#818cf8 0%,#a78bfa 50%,#e879f9 100%);--home-primary-glow:rgba(124,58,237,.55);--home-badge-bg:rgba(129,140,248,.12);--home-badge-border:rgba(129,140,248,.28);--home-badge-text-dark:#c7d2fe;--home-window-bg:#12162a;--home-window-bar:#0d101d;--home-window-shadow:0 30px 60px -20px rgba(0,0,0,.6);--home-code-kw:#a78bfa;--home-code-tbl:#38bdf8;--home-tag-bg:rgba(129,140,248,.16);--home-tag-warm-bg:rgba(245,158,11,.18);--home-tag-warm-text:#fbbf24;--home-soft-bg:#10131f;--home-cta-bg:linear-gradient(120deg,#4f46e5 0%,#7c3aed 55%,#c026d3 100%)}table{width:100%;display:table}table thead tr{border-bottom:none}.navbar{-webkit-backdrop-filter:saturate(180%)blur(8px);backdrop-filter:saturate(180%)blur(8px)}.header-github-link:hover{opacity:.6}.header-github-link:before{content:"";background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%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") no-repeat;width:24px;height:24px;display:flex}[data-theme=dark] .header-github-link:before{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' 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") no-repeat}.main_mXnJ{max-width:1100px;margin:0 auto;padding:3rem 1rem 5rem}.hero_Xgt0{text-align:center;margin-bottom:3rem}.title_P3Qk{margin-bottom:.75rem;font-size:2.4rem}.subtitle_E8C4{color:var(--ifm-color-content-secondary);font-size:1.1rem}.grid_N3Zu{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;display:grid}.card_SFkr{border:1px solid var(--ifm-color-emphasis-200);background:var(--ifm-background-surface-color);border-radius:12px;flex-direction:column;gap:.6rem;padding:1.75rem;display:flex}.icon_ZV17{font-size:2rem}.cardTitle_tde4{margin:0}.cardDesc_eKeg{color:var(--ifm-color-content-secondary);flex:1}.hero_reY0{border-bottom:1px solid var(--home-border);background:var(--home-hero-bg);padding:6rem 1.5rem 5rem;position:relative;overflow:hidden}.gridBg_zRbt{background-image:var(--home-grid-image);pointer-events:none;background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 0,#000 40%,transparent 100%);mask-image:radial-gradient(80% 60% at 50% 0,#000 40%,transparent 100%)}.glowA_dnBZ,.glowB_NjYj{filter:blur(90px);opacity:.55;pointer-events:none;border-radius:50%;position:absolute}.glowA_dnBZ{background:var(--home-glow-a);width:460px;height:460px;top:-180px;right:6%}.glowB_NjYj{background:var(--home-glow-b);width:380px;height:380px;bottom:-200px;left:-80px}.inner_IGGz{z-index:1;grid-template-columns:1.05fr .95fr;align-items:center;gap:3.5rem;max-width:1200px;margin:0 auto;display:grid;position:relative}.left_uKTZ{text-align:left}.badge_D9jF{letter-spacing:.01em;color:var(--ifm-color-primary-dark);background:var(--home-badge-bg);border:1px solid var(--home-badge-border);border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.35rem .85rem;font-size:.82rem;font-weight:600;display:inline-flex}[data-theme=dark] .badge_D9jF{color:var(--home-badge-text-dark)}.badgeDot_ycdE{background:var(--ifm-color-primary);width:7px;height:7px;box-shadow:0 0 0 3px var(--home-glow-a);border-radius:50%}.title_DbXn{letter-spacing:-.035em;margin:0 0 .5rem;font-size:4.25rem;font-weight:900;line-height:1.02}.titleGrad_wsmG{background:var(--home-brand-gradient);-webkit-text-fill-color:transparent;color:transparent;-webkit-background-clip:text;background-clip:text}.tagline_Omcq{color:var(--ifm-color-content);margin:0 0 .85rem;font-size:1.55rem;font-weight:700}.desc_oE5c{color:var(--ifm-color-content-secondary);max-width:34rem;margin:0 0 2rem;font-size:1.05rem;line-height:1.7}.actions_BPoi{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.ctaPrimary_nzdu{background:var(--home-brand-gradient);box-shadow:0 10px 24px -8px var(--home-primary-glow);border:none;transition:transform .18s,box-shadow .18s}.ctaPrimary_nzdu:hover{box-shadow:0 16px 32px -8px var(--home-primary-glow);background:var(--home-brand-gradient);transform:translateY(-2px)}.arrow_ohpH{margin-left:.5rem;transition:transform .18s;display:inline-block}.ctaPrimary_nzdu:hover .arrow_ohpH{transform:translate(3px)}.ctaSecondary_ioAi{border:1px solid var(--home-border-strong);color:var(--ifm-color-content);background:0 0}.ctaSecondary_ioAi:hover{border-color:var(--ifm-color-primary);color:var(--ifm-color-primary);background:0 0}.ghLink_HXFT{color:var(--ifm-color-content-secondary);font-weight:600;-webkit-text-decoration:none;text-decoration:none}.ghLink_HXFT:hover{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.stats_UghV{border-top:1px solid var(--home-border);flex-wrap:wrap;gap:2.25rem;margin:3rem 0 0;padding:1.75rem 0 0;list-style:none;display:flex}.stats_UghV li{flex-direction:column;gap:.2rem;display:flex}.stats_UghV strong{letter-spacing:-.02em;color:var(--ifm-color-content);background:var(--home-brand-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.6rem;font-weight:800}.stats_UghV span{color:var(--ifm-color-content-secondary);font-size:.85rem}.right_YUha{perspective:1200px}.window_mZAp{border:1px solid var(--home-border);background:var(--home-window-bg);box-shadow:var(--home-window-shadow);border-radius:16px;transition:transform .4s;overflow:hidden;transform:rotateY(-2deg)rotateX(1deg)}.window_mZAp:hover{transform:rotateY(0)rotateX(0)}.windowBar_IG7S{border-bottom:1px solid var(--home-border);background:var(--home-window-bar);align-items:center;gap:.75rem;padding:.7rem 1rem;display:flex}.dots_dSgu{gap:6px;display:inline-flex}.dots_dSgu i{border-radius:50%;width:11px;height:11px;display:block}.dots_dSgu i:first-child{background:#ff5f57}.dots_dSgu i:nth-child(2){background:#febc2e}.dots_dSgu i:nth-child(3){background:#28c840}.windowTitle_C7Wi{font-size:.82rem;font-family:var(--ifm-font-family-monospace);color:var(--ifm-color-content-secondary)}.pane_IGTq{padding:1.1rem 1.25rem}.paneLabel_AJ3a{text-transform:uppercase;letter-spacing:.08em;color:var(--ifm-color-content-secondary);margin-bottom:.6rem;font-size:.72rem;font-weight:700}.code_ciTM{font-family:var(--ifm-font-family-monospace);white-space:pre;color:var(--ifm-color-content);font-size:.88rem;line-height:1.85;overflow-x:auto}.kw_CYEt{color:var(--home-code-kw);font-weight:700}.tbl_ICwn{color:var(--home-code-tbl)}.divider_ybTj{text-transform:uppercase;letter-spacing:.08em;color:var(--ifm-color-content-secondary);background:var(--home-window-bar);border-top:1px solid var(--home-border);border-bottom:1px solid var(--home-border);align-items:center;gap:.5rem;margin:0;padding:.55rem 1.25rem;font-size:.72rem;font-weight:700;display:flex}.dividerDot_PbM6{background:#28c840;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px rgba(40,200,64,.18)}.result_UYmE{flex-direction:column;gap:.55rem;display:flex}.resLine_Yxvh{font-family:var(--ifm-font-family-monospace);color:var(--ifm-color-content);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.check_W2bt{color:#22c55e;font-weight:800}.tag_bkpi{color:var(--ifm-color-primary-dark);background:var(--home-tag-bg);border-radius:6px;padding:.1rem .45rem;font-size:.68rem;font-weight:700}.tagWarm_CVvE{color:var(--home-tag-warm-text);background:var(--home-tag-warm-bg);border-radius:6px;padding:.1rem .45rem;font-size:.68rem;font-weight:700}.arrowSm_NRI0{color:var(--ifm-color-content-secondary)}@media (width<=996px){.hero_reY0{padding:4.5rem 1.25rem 3.5rem}.inner_IGGz{grid-template-columns:1fr;gap:2.5rem}.title_DbXn{font-size:3.25rem}.tagline_Omcq{font-size:1.3rem}.stats_UghV{gap:1.75rem}.window_mZAp{transform:none}}@media (width<=600px){.title_DbXn{font-size:2.6rem}.stats_UghV li{min-width:40%}}.section_eBTT{text-align:center;max-width:1160px;margin:0 auto;padding:0 1.5rem 1rem}.lead_wHuz{letter-spacing:.06em;text-transform:uppercase;color:var(--ifm-color-content-secondary);margin-bottom:1.75rem;font-size:.85rem;font-weight:600}.row_w6Q8{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.item_Mtdw{border:1px solid var(--home-border);background:var(--ifm-background-surface-color);color:var(--ifm-color-content-secondary);border-radius:10px;align-items:center;gap:.5rem;padding:.5rem .85rem;font-size:.85rem;font-weight:600;transition:transform .18s,border-color .18s,color .18s;display:flex}.item_Mtdw:hover{border-color:var(--home-border-strong);color:var(--ifm-color-content);transform:translateY(-3px)}.item_Mtdw img{object-fit:contain;filter:grayscale();opacity:.75;width:20px;height:20px;transition:filter .18s,opacity .18s}.item_Mtdw:hover img{filter:grayscale(0%);opacity:1}@media (width<=600px){.item_Mtdw span{display:none}.item_Mtdw{padding:.55rem}}.section_R2J0{max-width:1160px;margin:0 auto;padding:5.5rem 1.5rem 4.5rem}.header_nMSq{text-align:center;max-width:640px;margin:0 auto 3rem}.eyebrow_KQpq{letter-spacing:.1em;text-transform:uppercase;color:var(--ifm-color-primary);margin-bottom:.75rem;font-size:.8rem;font-weight:700;display:inline-block}.heading_fnW7{letter-spacing:-.02em;margin:0 0 .75rem;font-size:2.15rem;font-weight:800}.subheading_cJ8g{color:var(--ifm-color-content-secondary);margin:0;font-size:1.05rem}.grid_vg4X{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.card_ooQ2{border:1px solid var(--home-border);background:var(--ifm-background-surface-color);border-radius:16px;padding:1.85rem 1.6rem;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.card_ooQ2:before{content:"";background:var(--home-brand-gradient);opacity:0;height:3px;transition:opacity .2s;position:absolute;inset:0 0 auto}.card_ooQ2:hover{box-shadow:0 18px 40px -18px var(--home-primary-glow);border-color:transparent;transform:translateY(-5px)}.card_ooQ2:hover:before{opacity:1}.iconWrap_ISBW{background:var(--home-badge-bg);border:1px solid var(--home-badge-border);border-radius:13px;place-items:center;width:48px;height:48px;margin-bottom:1.1rem;display:grid}.icon_R0VM{font-size:1.5rem;line-height:1}.cardTitle_FpVF{margin:0 0 .5rem;font-size:1.15rem;font-weight:700}.cardDesc_Hcpx{color:var(--ifm-color-content-secondary);margin:0;font-size:.95rem;line-height:1.65}@media (width<=996px){.grid_vg4X{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.section_R2J0{padding:3.5rem 1.25rem 3rem}.heading_fnW7{font-size:1.7rem}.grid_vg4X{grid-template-columns:1fr}}.section_XM3Q{max-width:1160px;margin:0 auto;padding:1rem 1.5rem 5rem}.row_mLVB{align-items:center;gap:3.5rem;margin:4rem 0;display:flex}.reverse_tY76{flex-direction:row-reverse}.info_rZXn{flex:1}.eyebrow_cIXQ{letter-spacing:.1em;text-transform:uppercase;color:var(--ifm-color-primary);margin-bottom:.6rem;font-size:.78rem;font-weight:700;display:inline-block}.title_ULaK{letter-spacing:-.02em;margin-bottom:1rem;font-size:1.75rem;font-weight:800}.desc_yXFq{color:var(--ifm-color-content-secondary);margin-bottom:1.5rem;font-size:1rem;line-height:1.75}.steps_EEbF{counter-reset:step;flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.step_eGvK{color:var(--ifm-color-content);align-items:center;gap:.7rem;font-size:.95rem;display:flex}.stepNo_MhRk{color:#fff;background:var(--home-brand-gradient);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.78rem;font-weight:700;display:grid}.showcase_mNzI{flex:1.15}.showcase_mNzI img{border:1px solid var(--home-border);background:var(--ifm-background-surface-color);width:100%;box-shadow:0 24px 50px -28px var(--home-primary-glow);border-radius:16px}@media (width<=996px){.row_mLVB,.reverse_tY76{flex-direction:column;gap:2rem;margin:3rem 0}.showcase_mNzI{width:100%}}.band_iMg9{max-width:1160px;margin:0 auto 5rem;padding:0 1.5rem}.inner_s1W7{text-align:center;background:var(--home-cta-bg);color:#fff;border-radius:24px;padding:4rem 2rem;position:relative;overflow:hidden}.inner_s1W7:before{content:"";pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 70% at 50% 0,#000 20%,transparent 80%);mask-image:radial-gradient(70% 70% at 50% 0,#000 20%,transparent 80%)}.title_Xeao{letter-spacing:-.02em;color:#fff;margin:0 0 .75rem;font-size:2rem;font-weight:800;position:relative}.desc_fTY7{color:rgba(255,255,255,.85);margin:0 0 2rem;font-size:1.05rem;position:relative}.actions_AcwB{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex;position:relative}.primary_lgmO{color:#4f46e5;background:#fff;border:none;font-weight:700}.primary_lgmO:hover{color:#4f46e5;background:#f1f0ff}.secondary_m1GY{color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4);font-weight:700}.secondary_m1GY:hover{color:#fff;background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.7)}@media (width<=600px){.inner_s1W7{padding:3rem 1.25rem}.title_Xeao{font-size:1.5rem}}.main_iUjq{background:var(--ifm-background-color)} \ No newline at end of file diff --git a/assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png b/assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef995c577031f72433638042d218dcc60db472f GIT binary patch literal 242374 zcmeEuWmuJ6x3wZDiU=5>v>+lNAt{Z5qO>5LN^ZJ4-1?}1go<=4n-DhLsUo4Iq_lu^ ziFAMS_I=HB@O%WKj>gtQTtS4DWIhe2NTlrKcf7X%qOXdrCd)Ei=!g%P%vSpLDWN%?+oqbo2 z`4JMDzI~v5oMObQe~ojYAtt!EmP(DozbqiXFKy^l?wV)nrs?=;+f*8J9oy}oa$J^c7Zv$ zDX;P!R0GAvXS(f4+2sDc@W)qih}u|Bzw&qY!UdNn27Qs2O$OTd2C*X1}a!t<+`xzVy#8i05)^#Y#mtSmI;&kbThSNfcEJ&xE- z9-&k#(AL#GF!OU51#(~*8{M6-{<{rh*(-j3Oq$l)}Dgp~nimS1| zU!3dE`H!c_3}t@~-0yc0i#(*I?6lP9Yn=J!5KDsS<{%NOVr!YjGGG4tJT~K?U*9{B zB+J`%MmCJ&bVCGBs&hi#B(qtkMFAOK_b+Qe9S>K+sYB3AdzZV#S>SG$%x2dd*A=*H zKU+MNo;#5kNy^vr;}Xeeu~-q07R!>EkhAhJQT^@<4MQY56~*s+i)TIzUETP3U4a*3 z1&xL0%;%9rIY*)!IvC*xT^e@e`Y}YvuHel*4t_Ke_r^H6~=`Q zno8Hge-NOqW!J!Sox?t|kBIE-zh1mJPRxD9cTSIiq5MUa6VK0!h$Wq<-K;c7(#G5; z*)20*nKCWRNwRz$3 zGxtPaiPJPz_jcH2fcD~8oVE7q3ofYB_2{uEkVOKad@}g^i^dV+=0o5ue!53Qs>@#< zXQA7x7yJE(F#IHHaXIJT3jDrcfBbw8nwR9{4X5_Y9QO5}-X4=T5ArEI_kHAE?Ho(~ z5`Dfrr^<=%*D*nI<%DGl-Y!FeUSodj<4Fzq!q@ztL*Fk30r=J_d(~1!k#nF=Dj?

$KiTmJ$yy19r{N4CRmwqhmZZ%r! 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

v^|;(=|CIr1Hza>pv(TT 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

mG5K!|R)XIM5@z$zC_H*6Q>=#ZLWUXWWu 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 literal 0 HcmV?d00001 diff --git a/assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png b/assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png new file mode 100644 index 0000000000000000000000000000000000000000..f322065ceede41b9030906988a92f9d0ccbe25df GIT binary patch literal 4326230 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ʔaFmJ-P7Gem*x?u77w{A5qgJb_;96C@Uv$Tk@>{|3vhEB zC3YDMwb7lvW0fMkH0UY2A5e+BV@58J5Z6}OOkSdN*^$lCi1v3Rr1eeHijf}0uO;z?y;_NLf=FP9eNv-C@J1X}aA5W7}4ZLseRsl00oqDEN z(GvCtYK&LcziYmGm57oTYgkeghuw67=>G4O3N)#J^Y5Dqi0ZcY|H}pN?@5er z?d_r^_4$F6#|;DX`~?8-R!U}O=FGH+>ozr{_V6QPG}SuA@8A5l8$Ja4&RaC{il%W< zV&lQk_vZ%V>-Bg)fX}P19j;W@0g_=o!AZqefZ)iyh}yHFgL;BdQ^gfD^uk$s*p5yiLE7JLVz3TENzCgHc_0elOx7Zk)PQ)`u8^En^!&Zm0>>j zGlg`;lZf4+#)($I&H%dd#@f2O8qIb3neu7^jW%nc_||rAZ4r<4-%3M&lYq7Rk4~B~ zdIr`{#wvp+%qL1bl>X_FvQ>b#LoTnYD1QV~FRyRNJcfoiz@6(r{m$rw@%Wjh``)8% zL9gp}9gDj{(#FXBjGt5=&nBDtv^gN>@+uA(nHd7z@63e*Mq@g(XeheAk2n*ofsxQn z(IEBhzH)8Y@D$|Hq~P2nUhKKIRe~7T8RYHMYUv#@3;X<*PAQ9Sn?w$9jmbhNdj$Hy zTDM4LYk8@ymv}0-1ml>I=V!R3s56)~L>hsuyGCQDym~`h6z3BvH$=G6??ckQ>;``F2q9fd4s01Y ze-a-$w%k`(~3K+N3Q<;izS65nkgM?u2omG4YYQ>U1mTu@Kiwy?#7kazRW z)db);ig)qaB{RlurORvF{=-^EIs%C-oFF5Rhr+ViP+JLK5@Sx@va9k-`z^8jvRB(-Z33CVVk|~I@6@|DctA4Tn zmfigOw*G(lrA#xWIOJ&jkJK~&=u4zfpU*2rIRKS`FRMAmj)oOgnS*7{Hp;kTxAui2 zDYquwXbz6ilOp9e1tJAW1bRau{0!aJjS}z;u~?V_E6ng@)q)2#?hf#?IMRTNlWKfatXzgoER8vAV)dupd<1IZN3LQ?nE8y2(G=Hc zRm7_5OG-S4J&6y>fEupWESXabq{qQSp(Aa6jwi_3c(*bVCWH+WVVNrnOr3D(b650T zY5+r@DjszvFjxXU5yJu)hiQzR5$QKy`aA3KKk_GEp|b+;5Blss^8qpDzPj+e2fqas z+txWbIo4m4mxa@VtTsihr_K!&94~!N{|yWAEqNHf%fqHFQku`YioW6t93sa$IIA4l zEK+&KVr2d@V~~<518>Fbg2S8ILdx|GHT#*6rr=hxU5xp)sH z(5~4vLuWe#oQSURIYsUT54%VsJtN+^iiD(^ZJItF=|Uys+xnIJrW=k%H`R}H8~21R zZ0)Zg3uFj!eLEWowd?$N?Ej?_kP=uANn1T+3hCPkdjT6iF&`;Gr~UIK#X`jQdNE%k zqq7ho7}hUWNYKk-DJfzkk!Ry$4&$wj?*>^9Wp3aRH`QN@6vz}(5lP-lxyj;T*SKmQ zvkvaVw*^+(i)0CxFw zf}v)eIaZ4qq?l(nAF})U@;(gjSpcV@%ijfUUcuYGzaBl&wHZ zo4IsML*#uBmE(A>YO~$xj!m+u%KU58jQWp=EJ!hB<(5xA*;>uR7e#GQ5_hqTjISo{ zQUVkTT`}{wB_AbaK1hio+C-HP3Q+w_<@~8(h%YUvz_7bS!*@6DTRQ$pG28L3ZwC$N2;oC*LGWXJ}GS4m-t)jW2gIvEtQ=mCAgmS?D~+M|+P# z9QFLdI?VV9UEBc1VK68(l3&O4J$~pDN8H+@OBvek>6rTC`@ZXvlTjO~&!lQ+&qbti z2iZ(Sr|#*M`*USe##&ja&A+`S5(J%M2ziZN@SKmwp0_m`PIZ_YX9tG7-w2FXv3+?_GLq#ydKlcORgF%3P&hh*+pFv@}lHiC>P`Fj;mV+0l}GcrgA-bD15ry3>yqpRFuTS> zBCr7q)H`YbqA|z~9c)+!ct{{FTO zF=DGRrd)Lgo&7Ih|5Swdm(&IJ;8CRkY6|uY8KpcMaE~YR;sp&k^d)lcGBK+s*9q45 zHUTrnITsa}NnAPol}CgsT)vN!-x{sAI{C%&j9uX5EAsh{L8Gj0`@}ooNp9ze6W^i{ z$uP>=+eO4mU31J%j4#7-`PwAQqN5DgGQ;UKSwL}BH!rm(8jnXHr0eRhol3K^>y{a_ zvR7Pw2Y$`PW|gb~7?J+sKCpss?NZb_{=xLl{{Bi^5*eNE^c@~?Dr|?k(WpP~rjV$G zM%clQsN@D)o$i-(XPhh!d)^>1!3~6d@~Gjvg}Fa&djCBw{q9vOfif0~>TX=$wj6)n zq+z^$7e{7paPqp0VOk^g(|wSFo?l+zGyM6Vs!zcZ&qZrUyFc##e$olV<$Au=7LTi` zOeRnDA+#IWEf0F`v~66&pWq#=$@S$sLsnKNEQ)`HF(2oKQkAH7E+zyXo$s_Z!W;^k zCkNIk*63}=9L>oP07#mm;yRV4y=RG$W{3>+`QQ*+7@V|l#F*Rl0S8Al_tmjs?*2hP z&+Sbgesg=mN-EagU{;J!D5IhAtWt<&-=-1rQFZra_K}!*#$CybjE%Y3qJFv9qg-a3 zvs@o?}@RDDd`0oQ9gU;UaNsLeNdzs0mXkCY=1D> znG-Q$A2Y&Zxx6}H6?t|22g@R(;!D=_ShhnaD2=S855~zC#ISxfrU#7~gWf z+$g;;?4CL&PcLJt)pFoS2WInfC9Hj+MZv+Sae#bG(3^%=IF;40?sXebNI2(O6nKs| zpwmUpxAIBPr^nH_F5OBdMbyq zm$`ME=2|kel`T@s!&I6u@o|`ftd1grfr2+9o<;grfu};_C;N)yg_R@E#wj3Y(L&j4 z-r275Vm&CqJ)9O|D!jQS-@JOUFrVnEkuo4EdqTHc?8i){g7zFjK z=2%vOx*usMNa8yS%V3=6X9^$M8NHq1W?&4wvpx3k@tsvOjv~9fjhaA8Xe%x5jYn<2 z?9zCWb*t9l^e8eDlC=;l}I!y4%bMjsn)+QuqnsH$CtG`Q^(=TR~7ZFE2M1{b#rk3TG|}u zMvZ-xR68N9$qc-8_m4=!8BIUv#YqWWx)f^gLBKEzKQ$t)kt-jKWf7 z@#gwi%RYN$0jY`<4?T&e=pZN3(21S5NV7L~(Q?{ULvZ_4cg1r5Y)R^Hq`v)WW#ThU zpT;s?3vF7VKQK?Yt7q(LYE~3z71Qs-g9UFj`;^j;tbEii2qZnqX>Wpuj8o~Zm8Q9Q zM;<)YoTycnWVcKP%Oj?oX-o0Tq~t@j;tLnT&nPy~dZ>}EO)O%N^w{pb>jx^q@neYT zar3c*$#oHNX~*E`wB@2ec4p|jn+7ZA$9)*aB^b0RKH(Yeh$)&CV_cpF;ScIufyVug?o+$(#dkk+7eCd6{p)T^ zK1?Yl=^lIkQ%zbtvEH^{d5oT()-TLFE41cAt0-{#epz3rSaRp=NSL- zroPiRpTjujSM*e3>02V09qc2yB~92bc^kxK7ZF?*e6Bk|8b{AdV&5}dj@Vc3emNa_ z5FB{X`9LhqOZNiQx>1Vw41kF%up5e&oS8RTe8bTFra34`h)bJYdnRE>uS5XXJ>os&?d1 zvpG_#jV&v3!q?4?vy3hb+62FLk|@r$<0N*68=lZ$Clk_bpg~{=|AZW#t>n5gg*(E+M zgU5y$({w7rO{u$VuNn0W7bSL zMJzAyEej}Y*7NNT=Y)qFWVx1*FbHGnMMqHYS(_TAK!p+fg+k{pbgp`fXPI^Qx9koFaT^{s|5ndR8p@Ke^FA&{;F~-ceiqr;mSM zO1^*bx1_drl}P0hP)?gh|BBhWIFc33=>6;qHZHE;;V8=F@KgM5f`H{=SuUfAL6Ph~ z>N@{rky3DHYp$q>GMUTJMY*_RLLFr5^oX!5UkhV;edO2awvGZF6*^yMmkG*!u_Cv) zEBJoF@y(H~awxuibH2E@Lzya`hSAj7q{>s{`up7ih8FyLq4#4x;?Bu|71HL@ za65ea9N2)sG4jRkjm;MTUj9raJI)xv6N$SHC$$rR<* zdMlDJ0o!S)YIF-Vz5>Um#kgbFMgRv4$6!DTplUw?*@ zL9lrefzk=)yU#!=iKklWFsd~v(lDMNPI{xg`zA)yc`a{rMsm(a**PClil2lq!9%Z+ z7n?Nlk)L8dqxfV3Ov;3R<-0EEWF?o6keuLoB-CSkg4(UUxNN;)N_1o)TKDFecj9ir z5VmWGBerxM0bVKMn3W;@@@v&OIgiIL zYO}z=(d-4s4nZ$Y{UDgTLwQXH`tY%j!z(ZSOf;u^@kS~-fY?(bv^D_1YS<>%cZzJF z$g>mb%E;DVz8RcZDrphhRK^o;-b7`rB;Xr$)r{!BF8%WvN+~Qz*&lasU2TJOu z;Ly7wxgBYaUZ19G;59w12=JL_tw5fn5z_ogv}?e5t=*LM>#K^vc}gx^Un?W%LsUj# z$ew28!Du$DP8s>kI_KGB_A{_J{!-Y^wiyB^*K@FOO&V|c>F8qu}Z_;a92)@1yI_ z?=NAPi@_>8_hMU=lM^kCax=RFZOVJbKeCP#iAXiKr}D#tNH0NEF^Psn!iAjG`eWlP zJa@-?Y$n(&tCNG)$H>+4Kl<3anruGLcpzn3aJe!}zco6ubY#4yU(OeX!xBA69POt= zqY_&!pZ!3Qeh}jQcN!*B?%q*sw2S=De8QD3B3Xq{Rk{s`40O&P^&5I!i>}|BKU38V zQ9M(VGoNLON06QW0Z~@3EwO)d`;uIZZpr8M8PYMax$Z!Z+xxdwcG)*-jdLC|qM6(+K6L07t&PM}eKMS!$=9xe+Gin!2$ybm zM*xz5S5ic9n*UlX>UYSORWRx8``T%3m0VvgVet4dRZ?Z=XXLiHM>1V`7573{+Tr?> zozrF^{vk|yowj)q2ez&}VdT64+#}BzqMJmx%V<%B`Jo;31=riMIw+ZEX)H-aR z=|Vt`#QjYHNNnwNQ!tm}&ovT%EY0~tzAFVxOe+p?Py3m@4H=-t>-BZE?06cVp5;)> zCW*&;QeOd>$eecK4x~lEg-Y5ihqxhO?jN9(ew6`mVWLrBokm_@NZy3HuZEscoK+s^ z97Hoagtfvy5xlbxW*{H+s_QBgRKJ7F`x|=7cdTIHceDcUzMoifFXu>a6 z@<)ZDlJsnKW8o2`N!6wpn6P;+@sa*j3GPDs2kNr=d7M_~+v%^iPRkmOR+*(tLRPIv zRhjVx-d3@-VyV^K!c|KKh-7tL=pN`X6n4a@J6R< z@XvfgXia^bc!-9|1^T#SuldgYa*o6$;Yk5-`=+95h53O;1~LBo;r7ZGBHO0Jx+_iw zuUzeD_amqVo15qD$p@H2gADk9z(Kh110Bk?x!f`6n&IVNO|ik zMg7+4u|5l!!4faI3qqAo>TSH26=zn7Jyphy)*S}svKK$)iFkdq{Ae5&n%_6X+AI<~ z^@&{VwngZjF>Zt>>{b|?{+);pGvOI703emmNV20$LAgsXy2)*-I=l7^?-e=Bnz|bu zn3#*XGZZZ&t7@gw{obr22iK9)(+xmo`aNAMcRz)DWtn_X-W<%f)U>9%@=BQfs&LRD zlG3JY^^}E`!p=Q1&(2|pa^s$Q9F9+Pp2|aQ;lc;il%DgQY^B>-C(ZO>>qLX+2@pcp zI9KSMqa?)a;72l#`Km(wMO!d{yY70T{vY&O-`~F*y+=eLQ_{rzKl2HFr#XtYS>iKq z`(IEBGxb!9+u5vUnDW6(%zu`J2TqzTsG9D(6 zP7uP_=7-4aM(+Z^M_1!WBmL;wfpgTI&4;RO6&=whl8|GfRj^51f?vp>d|Ii$z*zXu z)>h1u+Y(odTjRK7i@Fb$A-o}8+A~+zAS6J;xAW!Ws*0?%y2~>aj}jA-YE8_9thP$Q zYwf4c>QH54Bne@W8Xk2ek7Ey(!Y4ke)(T)`%S9y(cEolLBIGZ&m)adYlP zXmtg|Y{ti?1St4@c3qdju2tEO;&GD%pH}lul)FInR%lp~j9$X^0 z2bQ}wyrJmzGws6f2@k)@qv6i+f~lWb$*xzWtXP(wtScW1GMlV=-d3E?-Xn(U?zm=M z4ri>ioB~rxqCIvXB6EQQXw{YPJLyMQ@=>nn?WJ>O-TM>?(li5*wp2yc=Fh_kSAC<0 z@~YIfQF=D;JdC(2WBjKPh;ms7OuS_T9)cC~a(lM}rF3cI?AS}bLI-J!{!)0WK=pdO z`=eC->W}(b4gj@A=cd^xyaBOTQG;%Gcb>(kaR`@Lt#jlr)J$S*b>spP4x!~_5;`PheF?f>lQqxPCxDX zRdSr^_ax?zJ{8Ze^{M;f(w4tkXa4gR`zlcycqY0U#Y=m(3`4=2162#@6zt2i9xJUz z?B2ER$6Va8kWpN%uF}ehRMuZ0zt$ziUAvEkaf8yU%A5HacWQ<`-oREDTiM z6PDUYt~fFdzZi~n@hu1Yj|?YR_QZL49=xWxqdBq}{Q@^c8L~Lig<_=}hDVzw`%YcS zg0qf?QZMc$y(TFSK`?UJGd`EFI2~2CftkJTlV{)gLG z+r_j9u}$45d(FkuxIZCmkbC6W`>6f>`}Z?1J=NM`p~+8B)2qXbw%ZNL=!jQRe6!|@ z!lhn})EHjE%HU@F9YUO9#BLaySf0{jo9PIVkB{xMO2l@Y6C2z!H(fSk1>DSp@P()B z-1C1~x*(P@v5XSFNOib8n82fli>cWheWbph$e3PPNS5k0BD#r!2=dJhPniDk z&5z2-W6H-(UXy-zY~x3dKTe#)*Ke~iA+-|o&!M;~iEjuTb{}A;8*x0^%|;`P($XLf z)@6dwuf;o%>BHCnPA^=dpV)~2^Dv*LV({q>9?eqwhUN41CxWO<)v+W+x$Bw7H>TL9 zsn+0ABG`8dvN8IWxL-u~5fl^o?P?;B86r|X3%^>ci&meFU>rMDgAS95Fwa$M8h6Lk zkvbJ0_if?Z3^6N11)GuYr&pGvVY|3%(y>VUrG|c_chMC z;~jTjZvGT|>}0;+{yVPZ+)@hTNI%`l_EM!nH=B3**t;>GP4+L2iWS4mTN>f7b*DDN zFLvgSHAV{VAI`x2`?(mNNB%#|eRo*XS=RrGf@47(qS6#}1fq25NV6kdMd=;sCA82X zgQ#p2L3$?&(xij*5}F`2NJ(e`=|X@IN&=+);_UnGJMOFwD!adV9{=Dm$@kvxIp==P zIiGXxy^~(I%%3XE#%`m4F@y`5qgP?!n`S{WSmiD&XgN3Ul+^l5Jx>pFbr6Q>CudlK z_Z$%JsjjXZ>-&M|)4x&0MXhSB!QI{BSbSI%L}lk%#BFa)x0Ah}&(K=;e+KYps{OY3<#SZ|Jycn}s?TMsv`^&S#i0Y)gjar5avahJbtfUQp)ytAJ_*#_ zf;pqs?s4xmYtFJ2`hm+|?HS$olUi~8tRAGgxu#j;svJtV1bG$U3#9n|9aAPOF|5!t z;q|IXSMh3?DlQyaNmjd4-A=z8eu{+P8^2CwXrEi~mv29!?sPefwL2C5-hsJ8p&UecNo-Lk%Xf7sI*v>kRhw{^f<G6B=D1zPS5Ia`q{46{%KB8<7w@^WbY+N04ZcR&Q3c@8q zJ^Px!{cSh7M_o%g45-k|9>Y>w0d9zRn`a;3X$q6-l;U6q9DUu%8UHOx$ z;MHS;3ieA$gBOY#j-pPPES#NBim4F7g*MLtu&On3??Jw{yoQm3vPCsb(<2u{N|~O$ zVOn<~J@2RFhWVs-?F-cy!tkfB^-{0QR1EuT9XX-RV4O%9;crD(t>1oi@qf<(upAq8 zYO@uugWyH0I|8~9n?+E1qt$^41Gkm-=J|n!qJXVsL3PsAU_)XLYC;(7FVS-jbwS~tp|<|Oruc-f`kn!@wwWDf9-7AdG-Gm zh|InZP+xc<4ur)U=qM6WxR3MQa?%Xci&6=&QKtdnN3XW6pS5|MBBT*^Cb3#h}j}HO>9{1-_pUw*8ID zj|-&(wPnmQdRxR=*D?X?!Yk?=mpWW)d?#Nt>i`mYwrxQgI3$#Xm(nlk;yvP$*;IOw zQSzigLX{cNl-+Ut3 zew9NXDPt+10#_#9c_O)ddoy_&j}6C0`B-H(*oxxo7cHvKET@k?C8$TuWpD&nEH~LB zt15UE@6G#8Uz6oAPV}1m8&EJnmUauDsZ-{8#jX$9&@_O7JKskU?SNoaKOWq(<~C?R z075IDQTfI4P$o*u27Cyk&2(`c6X2`anPd!`TP<&S(A)t4FKL148CPjo89s{gCH{pQ zv~`#0t@7|XAL+h3$)4sUMTcVCrC{g-2>GVU52j$e%Cv2AffFk^ z%r0-&_P_`~OzFX%(pCTXiR`a`eSEXicw`A~=lNmr3*N=_93Aj}wD(oL?176sm?)~z z8WB1pVNVg?%47EB!RKTq!g}U}|1ITte5PDoPGglx*6Gx ztae;2KUo9aC#GBXbjh&^A6PaOJLi>HR)lY=aue=+h(p}lQa_J1*w7zF<#2+MgV2Bi zwN8!0z3pJQ$opyHd&G8Z#wHGm;PFrucPzMR2JHaM_zS`@EWkI}fH(uU*NUj=);>(A zXH|_c%F@qo(|RhIvtWEVoI^7jf%ti9zZhx2pNs{WqHDn!V<>9CBcCrw_H+FBW<1-C zpIgPzBEd3~kw58d{C)8Fr}GRP(EV^G44qLrmL!ume#%V^gXD-od#Cf?P*N=WxFrj! zYnnJ@;y?G|PqvNl3OV;S$5vQ8np#6-Zd4)#v#F+&E6v{i-RRRB*1R67B<$emj734M zF>)c=;km4+L^Y~^DbjCf+}?iS6;S5|$ z_Q6mZHkU0t$6DJI9E%DtRCGh@1w{mr+b7J!+Q z%3ofpht|t;2>7Z8CEO`CR!1{RY-!o8s`n8yoQoBv)CnRX7YQ2_h!{hyBGW|>$$yzp zr=Wn?)otZp&L95N1pa6*foy_>$dIwxuHCFL*4qJ{;p&o(j^tFdzMG`apbAP-wAW{V z#;d?8ykd=J^P`-H(08-?EvSfr4Cb@oK^P*xN%r=L%(jiWw)vJyeE0sd$-x|9 zlq{v0;^{I~KM@z-u#4H*KgT8aE$X_xUQKa~@G^~+uCSt9HkvIh&{0T34;w2-A=C@- zkBr+AMh~=s;&uDA%N<8th!d7edqWQ#)#afJ134pA+54l$+l-fx#%;DyBLVD7=_A@F zJXKlYPwS^d@1!IOsU(RZ$N36^%C3sKG&Ki8p>m0m@>EZ)O-(3%d@y6JV*?v|4l$*} z+wS((jTt>`QpFR3I+$x>@ZOGGd0G8@rM0>ddR!9HMLKJb%uAcRjBmZXfne zbNHWIss7XK>30BMeFC3|y?U)PYF7ivKAjIK1USUL!^otE#<)%*qpisc-Oobb=xcHs zRfCbK^wk1`6Fpe+boawQfh7h&gh^^NR52{`Q>T#s5qNJ+hs7660CON~|YqNlq*{es8Emqthw zXlc2rst4Rl$3_EUt)p?|y!N^13XdQ`2_ABO zvxfYFhWaw2{3Bx10dS;k<8@(6rsxHv% zlWHmZ4ygDec>HJn=c9l~&RXH^AIS#(;DQV7=#j?O$;eqmfW~h`o6+i2Bwr$%|A%)r znCa_>JjN`7ud)PGM)Z8$thu{w3cITq z?G{w(VjsLlQDg!<&Arjrw$8I`Uhb~YG>0FtR=8j>z96CyeN{?adMJ?5Zd-6GlL4S% ze=F@_eZo0sRiW+S$1KKnz}~X%=^=?jq+(vh6k{3-KeJILG^HgY7ZFJVHitR&euZ2j!c+$lq}*c-XmORWIp7U9Wa>o zB9s+n1h>9gVN`!w-S7XZ!;6hmU7Xxa(47sv8#%Wfl`%U!ohX-y5)ga2 z9>mc}QKh*%*RX^t*IIC%pEiTzoYmydK^iHO-pd%R!^`g9fhYf(T7BIge7~g~HZeu6 z#J>5VlE5G4#+p)pL(|LLzE;Lfe@^&f2AJqrj;>sx*^=rfTCL<0t+wQOWZ~%Q$iu!W(@68NQv+~lC58YSw-93W9NXJ`RI>k1*rh3LEQPNdT5B%(t zIT=7Vo!&%@zv=~HIpYE$Ifs|;%zI*%Va;iPLwxizwIgD;w)xmF)4- zGEYUs&FGmw$FHef%yFFLa3dv@6=h$nkpuF8DQ=l;u1P4pm`-T>u$0W)cYm?cg6M1l;|2ZQ@#|vz!(#t~y8eUiROCXS9w5jaHi8=5gd#z4mFW4NHcv%|cG;S)+`Y6b63@vwOgMD0q4+s=WZ_P+Z^zK{O=b_pV3ckK~ z8nX=CDT*=b)`0-(iF5n%fTr~Ece?QIvmiferyS_f4RSEJ7!;_NqlFO{CrCf1wU zFE4_7)a=PT$NQ%GU=#vv0C;=TzI2T1VfHqeoXNh@k?AZfVZf$RMe4eZ$}iw&?HDh} zaI#eokTash*to*D3WN)0*z!oVlF5n0ZTA4r#b^I5VEJ~V46LKK+K_MBx4WM0;6CKI za}zS=ka5o^N&zVWmo2CYN?w-t!RRRo589%vxqPN&1|BMW9YfiF%Dvgu$KJ1gqfLxm zz{kc;Qq$p{7V+^kftH@#F4qV%RLl-r*UBv`rSM5soS7S!anUv(Z;ohow*}rm8w-@Q z8R&3G^CplIJ~XwVnPQ{ zwYfT4&Z_El%G+Fb?&e!Y7I|GWh9$=xSSlI1k9KRhoqe9L$h(w$-bX1_&VsQddJS~( z!-FQ0!dQ~L0M?BQEzs^ZW(;-QHUxqBO=1ph&mJ@GceC#Xo2dt6q*K$anp%P5OJc(c zU?<|G5!^k;R`d}_kKlWY8d9xTbQg^d7|xmUuO0Q|?M(=<=5;;d_9Mj4*9H8e5m&Bj zpk9vOe#zZMH}-?0j`&4nT8bhZ{5~vT@Dn?F&+3_+`OY`RglNVv8-&W(FAXeNqLJ_u&^)knB18y0`1DJKCX_-#JNR$h`$0Z(9UcdYbVQz zG^?Zt+MSRsDdX@1Z}CxO(3v4nNmhjMX9Hx@4B##|H@{HI-OjoehN% zTdX2he9&@n!l zTE5m9xIuA~ZjDp{mx`Z|i{llJ{QBD9YQw1k56u~0b{&FAg?dJm&2ZiGM$1!A;PFLF zcU#6IDKpViW*(kSg@f~qc2P9$-zCtP5GKzqKuu$inBwu|z`A>r4PtS)3D~QWrOgI$ zUw>Ep+B&UzrL$gHzACUf&){Ypp0KJWsx`t~YXw|X&B2Z{ z`miW3y~%KB5VO`m3i87>phQ;ud7dzv!uL41)Pf2&}FC&*Is;uE>)$RbiaPHUam_8EC`^{WFd^Q}BQocvtZ85I?N{-~EhklRVa zY`t)b0u*(xMTNi!ecIBJ&*8g7D;-97T}n4;A*hmgaCOb24<+RSiHAYib=vInIX(l& zO=7gTWb$$d_5bi&Dm|QQ{IQhJyP_(YfqoD1PzYuP-*&l!cW~4?_oyHB= zlRh>xNJJXl!EbdnlbW{y(nDuCI?0x_oNl!@q3UTQyfh=@l{HUY^kC{qaU0)E+BJq? zrh@7AadAtonfQXFOat1@R=i^5)?l#7_=VW*gn3A%$Ibt*hV(T^G#xnDsb8Au>G4(F ze=7`%RMe9t(QkfZ&kw~2I2jR$s{DtZ)i~fDBum=op@+d^o}r|xJTFzhCYXBa0Xd+s z(lawTo&wm-8hID{D~W!At<%RwB&553K4qs6Ta*I`25P89P2uo!pXhJjdo5B~>p5u8 znHSC4P`B3y$bs~dC%tA9#Bi#W{nkK=Y>`8R5bu&DU+3sP*NcK_H-HM6%*~ zs7Z8%bdlC1>cF%5`#(idPiSwU&y5#l@}{KNQ01($Zu{y5y#~<~&H$d`A+XXQtv0)3 zb904$zLP^SZW5*Hn}n^Op4DCj-Gnz^hB5(#RNU=k@2|vZK+B5KWdgt>gK8HAU>yaL zqbrQrISN3Dq_Xz*x)d>L&FmsUokEt7AiwIEo2X?3)`)|{>~*Va%+Mn3?F6rqgh$<) zlqU%Z**8HEku~=P+P6YA{Dg1URqOC3l&yLy6=!YtZLqXasbkxy*HRO zX+0w;0R~U(_4P1oP$RpA*YmBjAKoooGJy1zO}Uzo%qJb8wSaNW5EIoZPjSMA3p9RX z7~xMgakb@AkxOgk36QLWag)#^dzGL3RdWT?t`l*kRwi{he|jI{H!v@O@j}iB;yAo? z=7Es`3(469^SY$FYR&bAk`gCMf9xV=a1Q$hBgUk-S|JPgt=sI2i>yXqp9#pqODmKs zc2EKrT$V(u9Mx1dM6hJeVyS08wgW=nO(3E6%=~=W9iOUxGSLme+S|!hQl9MM$nyHV zq81)udN9r92$g`2b(1?X`5sJd4Q$bYOT921nUprPMe&v}Z`}nb%k5=<@KRLO1KT)A z0DgTS!QU~7Bm>Rl)ljq9$IDl!al%V&@&GNs@=!aRmKS>+Z&TQ#!`^>aby-jTV-LKj zNf-Qaa-o5nz+y>`1SqPLetGW*dh18HmWh9TIA&9S@+x$kR^%+{+iKXn++{D*N+W;! zBx*e*wF7j@919yj8M9BC_X4VcKBb8fhB-P7$7Vviyz8{w@`Jgll!SzUUR3&K2_uli z1D*jrrCqvF9PiKW@bM#qgw}1>u(HS~tP`}ieXZR9kQo!inP<4xEx*ch52+h|j*!I2 zyyQ4ESigwB7ChyOcx^wEvff^mT1Jv}BR#rS4hKtua<~*n1(F{@UAw8ATqk|OCZN6X zdxGt)!^op3gc=#c%+hZ-;?kyg{x&%;H~yDh4bHy7uD+fae1ciiE?NWStl?|^uam3a zwi*Km?wKxuQI7JHL$YPdb(AC|kD@}hPdvf)SqRA)M@lwU#1@`aH26nF{Y%f*y-JU7 z2SeU;lqw2M!Ic*yHgCtWHvw3@Y+}4@gDmTewcI>{NtUNtUSDO(Kj~mN@3~++Y}=zd zPDj-hn?koyv+tC+Z3}0g)TtgvG?er0Jv)!cIf`cmpVKjp8Cj;%|WcB z+{CQJlkjFWcXf^TQD33e(qi@~)&o>g?yu$9Mr(5LMi;c!_;M3UnQ>VDTrME*33!9 zwcm{*xZEo{#fzIJO6n31(JJegjY_8j27-=|Ib=ib1q)?!9xj4IkbLh!#QVJc=)TwX z%P~RB>LYv3CxswDeQTPpobuEt4yk@R32&G(vbHG!0)R>EiCn;xBx&K7>X5*$ zlD7zn!P)ujE#;spn!RauDJRHXRe)PPi%_u0on5J^v&vQcsJdnBZilg4>3{|-UtPk~ z{IVCO8AZq%Ms_!7z219j8&2y)B9D3AWRjb%QxGviLG5{_>c*m#{<_ZcFpN>p|j zB!3BwzKf_<%d6kZS!!wDK`(5B#_VA-oNrFc3#S^claj;at%6T2*WPK|^A(T|lu-K6 zY`BogVZ3}M+xL2tzGWAEndW>BdlW=kLPsLYUbwQx|HabgMD!HoHO<1{4z&FRh4mTo zRw<~nKncS@T24%eW{~L1n>N`$*fYWqXVJdEe~ZGQoya{4#A|k{<~}Kt1`5K>+&Gd* ziHvr`s+5`0CB;#F@UM3s6< zY5SO_a!sZ?-%`vvA@`&wCI+#f3{~>r7g2EBC;3hz)TSbF^{|4GKHA^jw(Evc1Vrys zUpV%%?aW%uV(6GDb<-~cTooIGkruiTLPR#`&80x?FdMn@#)KT4#>_@9ty7K$Q_$WO z`%zRd$Zl7+>wlMCzeq6qALv}j(ZBE&m45q2aeHV@y%lDdJz;+LF^_W!^li(}p3U<< zOQ;#K7p1A5`N-GurCc_;4!3xa8c7J3%@9kP=^vHFK^aO_7U-8FBS6Sl^lcZ@rYd}~ z>d5}#(DHVdEo^iMZ^~dy4ksnU=Y`^#Ku4cWg#slf)@)(RaICuNOR}iv<*+Ri)#V`h z)un93QYN+cI9?fqhQ!=OsVyygy9|qMr@amfFtNuTKY?rsKdb1zt@M^ho!9)}ilpt|} z2eP57z9n=r$!lrQ1ul%mh?uQ~oQh;c`a758Zs3}8n5UMCJ~iIWQ2f+`lZZb1qiiK< zAlEf^bmWKjpnOe-Uo^KJIz(MDTJL0h?9%Jqq|i;l$61YvQh#%uiYeYLDzVbN?3H;E z7ppKeO)Nr&=O@0JY$pI$<_%Y`(|Y_3w_CN`u+2pFe!h9Z6-8yll98(t{#Vl40s}Z% zCBOYc@3n$8Io_?AWL}+??%Z|oeimI}Ezge^$TggmX0Ip_*HsP==jX(GIj*ww_p1f3 z134TfOBiW}*!F_L)cw{_@|5tql#IKk=p;w{u@u~D5~ip5Jru_6q#RNnmfm+?nD|Wd z;}kfNp%f*R#8l*yv+I`Bdx7D4yO$h063%?gN zDl|tPzg92@!{;p}1@aH?=Wm@U!LKwgM;AGv3wUuM%@}5N1ywZif`VKixVS%uc?O%3 zu>{wWW`j|yCD51B^B3XEYkunKby}VQnGIz{pt4h3F|CMFcaP}Au^+Sw|qi#?|CSn;g* zP@cIX71@xJ&MCHC^j4YcW|2n|#mBEWT6&*|TlDbLSSh>aJv%6Zi)jvHF6V9;iR?W; z1$J~fsFBaV@Eqb1T!epVKeGSgNv_x;EoO*X?#Jh_g_riOjRYWPl9xqlo0w61RoOVW z>#(9r!5P6y4djsUZ3QhiqVC$MY(ZF;v7>mK4sc`qg9jer9dc>u_84 zhH4Uug0SiM4+;y!^ZvSuZ!JnW20Ha(NL})F%PFIf^><;J0U~2;zGN5Uj$w6!N}z&d z(JRr3GxJ=@o356*%7p%7@};!Bg9>PkN(YnYIUMid(XSJzns=cTghuIc3H)LY{neh>f zPMVXUZ5G`2cQQ$kDbP4Ptlh6RD!nBLnCtJq*SGeXmMp;+M6^%&I38K3vmRILDqeWC z9t$*1@^Uxt)*S^F@U)Y+XPfCQilhsyxnJjvDk>y?ByhT`%*yfOP|bBv0`I~wQR`M} zKDi>_lzkSBBKm4+#}a)YI(Z4Z8rlD-Oa47*)*n02nUK0B&A6*Z8z&yf583EIZaoci zd^Q%~OO#O{bzWtutM%{sdVK16&@gEX0006dE8O0=S>Jxl6}_oGw;popR9iPnWpoDO ze6l(h?0qB$PQONhs*)&|r}fuEh&bjzniHJ1Ty=_XXp zY<<{lhC(}-$#3@FF(i;~BV|QheCF5ROR6t{go0VnrS%B!4OBR>pYJ_YF10WU1QGV zNg!oJm3F{sytYjHmO^61`3sBMV=!i|p?1%Wnru06kBNJ)?Z$aMb{#(BG)Pw|MNElkmZCpzX{)$?z+I5>v_`RmD;S++Y0}An~ zXn0ljZc2PdZN;0_%76g#99NMBZAyNn&jb71_W5PZ#&%Ahe=WuC-fo)L?%KUBJza@* zgG}=7mc$RMe~18R+K?%knWL7q;o(TmwIfEGGu7OOza|M?FrC!8%K`^6E7@i~UC(r+ z`2h48pmw-OnWAcLTad~YLo8S%1VJsKiahP5(I^ZvHD*xYHp*$~*2;&F<9)nq9qVXj zh+y)8GMHsRWz5jt{1UHvZ!LMpw4{|OXd>Wk-nGhQ<|*=OaW;hlu?vsWMK)eoY25?ZIL#(O^uBQ(3NjX!0`jPH*)RN}K00+GN)U5muW@?N(? z{uG$z8a>1I!j>N%{*)QW8xV002ERPA9KV_HIC9)5J28?nLJJo1HKTlK=DKNME`ED? zV}^63{aU1ldt@rxT{m^S{xSrndh+=o4{Zx3h*wS#*V{Zq*3j^mA<%-$HCOM+g=^jg zWvZR({iPa+2155MDd3ovRHZ7#h>dzF))2jtetuA)i2MD0>iOy^nZ>i-g0O+rTw3jM z^`Yd2z*152d#E>bb!d$DLb!Gc9O%PT@v4EL-G6?BaUmgwl&>@~);2&sbt@${3{!NY zuixU1?lOz4WO9$T&Z0?N7A4uwKGah)DL&4IBV+3tK{R}88I!z0yY!)&bvOCtUB$`M zB6kDzt{Qcj?=YGAJ#v3}X_-FR=TyCwfuvWBc@smKMLAlZtb9G7UxcZ-8YWjMIPv_; zKc#IkJK<#^dCUA_Sx0d;5U8QzFlrIR!R>i%avlob$Vybs=4g?Wl`Y`$F@lt1s#5WLwnTHeU{NMK~Pb!=(;(EMp&mo$;`>a1IY}} z^1|szvB?TdCt7ww8_P-tn_VkW{%$#$J5) ztFXhOMWUIya*{3%siXFZWv*lsWs<#lk9A4LoPIK5q~4uKY*b2e zgAVst)L@0yWy{5F6^J?}#<#DQ!*Jd6j+JKJVH zERwiGYotdsWy>g>E^?b}fCdBcH~j=ZS?7{T$-4`TEPR9+LfJq{_*9j3blG`%CKf_x zH)&eA@}Uw?LF7ZapU7G}R$p-`lYGoGOOTL_!`HYgB%gx^lFL?QhInw{pE}Q|S6is^ zMOmtKsFg4uo*6rO%Gu+zy^wi%xx%z>&M1h#E78py5MB_MZnKy%MrYS%_L&A3A>3Ip z)>$=7)p)U&c^;QT3Cg2mlE(5Rl_O*Nr#_aL%$f|$CB@%au3N5C&{D|3D}RkS`3i9S z$3H5hwW5}?8wRO<#Uj4pBYxOv(f>UQ;2-=~pv27&nsekb+D<`u-!|rWY=QegT3Vj4 z;#%P&O&|QrR>RV-Gv<5f$Ul*U-d0P-t@QTSq+LdLR58*6i^k7U67F zEjD;^NOL>YyunD=s-XHvp7zgU`3ry1p)@uF00cET1)K@=EI^0%F?#lX z!_>C!8#&PEsJ2Of7)$9hMxV`jH32v<$Cv*xRz>cjixrH8INTpQ7acHs4FVI+OIqw% zhv>>U4GW^S;+h*X0PIL3Sk)Y_!gyg_lu;5ZUSV6BYI=L;i0Nb_1GrWtAbvXd(}7jd*hVC@scL#8STQD$=?#;l9OYV5 zRlGj!?3Ef%+R;&7G1|X;sl@f4Bqn!aE4qyINPWhFHlAI&!SlEGskh@>3D$xjx4V80 zE_bS)Z^85X5sw55kEZ=ucC`1v$wWPnqsZFc?D+8)PF1laK@K@@xW&)x? zs7(tzE$!(QLanrf#3l@sI>sIH^^JX+Xgj_p6l>=7ciM*XJQ`!kKAC`y;iL8yq;iG)YEn0+_^(~Zh13y{*871E^g zK%EF{D)Y%`M0&a7WU8#vn?1DZbc8O&KPM>5a&S9{Q5 z+!MFQoS@3A)GJ{Uu*gxU{OSxSi0m^>RF1Y+C=WZZ|CL9_wXKnC7(V|Pfj9=a=+-?y z$1PTY^!Jwrr4YBBPv-q)Pmn5Pr!}PQzIE}6RGDALG;#^q8o9Ix4;L)r!`~xGzwwhP z&R;#Gt^VP@Bb|$R0O35n8MZbqZ7nfCFVH$t^Q3cHK}XF@bY(~HxC}14*`9A|34Kbe zFw5Wh@2xtPd6_^B`-<6=?CM&xCHM2P;Jo==i-8wgy(CJ}* zLNP#8Q{*bL?i|rie=-v~6fF-+rp)oT=2#Hqjf55^L%2qGti3krK&L1Xo})UFAB&c6 zhK;)4M8~Kv##G4RVmLYY;2lK5J6O+I6gSxF$t=*x@lH*`K$LaNYLchgWHqgs8$HY) zq5ED?PmGc_ZDLI8lMo_gX_hg~dfA$1HX|-hzrH#ng}(>I-rWx@qQ1}d_nG8}KC4d3 zTqHxPrwHg03QIz3-D5q9strqv6Y6+HKUlZ8ur|sP@@fDy@rbDseu>5RS|0Ww2>u`DI88^ic58o5s zZj%Yk`-e}E+(SVQ9QHn5cMo=0XX+RvOs7DP*FHhM7%gzi)6`7TuAJ4$G^tC=u_s~; z2l=ZEM_WaW6=1{Dhx}wS&y6)XA=(~rtn0e#5{fu8?@T5q;cuZCLG;*MjhQ9kK~1LFPkAA74ORLFE$>TQV$M@XpEH- z)Igtsu8w%C#>!+`kr<(?vcuW_fSU))n2$AaMcPpY*5*#71KYl8M)wm^AW^i6pZf@%E=ht_3C*BWdUA(T)<%tF{h>_e)Af zGHHS;w$ihSVA{zON&pnEPbm}67O}aU|2jgM`mr5%-&3>mfaJ}^XfHQ&kJMp`?0!p_ zSdmeRdMx1;d2MK2zkSr7*+f&Vg-WS0K?=@EpQBwYCqFj7>f_O3GH|xsB6f6(jcPX; z30*}GP=r?2+{;x@!Z!U<{UAE6WgbEc^)&OWtXLh|Hjho3m^d^lN8;hgt9ac#V&mp` z9rg})9D0>+Y9?hX82mrw)1F!ewbqJyeR zI_KhSK3XKl;?GB8eLM?lrJquHaU;!4fL5M`Ve309SSXtB(Od>~p;?p9LJKVjuLfzJ zOgRUCYrw6-4}-hPu{nxA&Ck-S5Hb;~wWyj;DECZ~$2GVWHxrq$%f)xMPC|HGuEdh= zGr^(&Q3PrmREe82eo(x~iI(}R^G3mC+pS4a*D7Nr9N)tI$_vyM6(w!4HDjVkuGx;@ zl0glqBj3~I#DL0RLjyLB8|9>@uduYEkgoR-Pq+w*~7&oIpc-LvOsz`^1!80v2y#2l2g>e9=_V!aBpwBg~i{* zxcBTmyodRc+TX7J)HXdbQZ3gjAEp*JuSV#^=3JEUU#_J6Q?yFBd*S?#_>{miKMy)n z+Y3E#d9@o=sYRvEw?XvwUzPvi%KFHnsYO<}Z{C_J4kL3RU`=1)PMsV;*!6zMtFS|k zPz?Hl@p9VO_^PG_Zk|=@ZH35<0_qv@e4RD#3zAg4y~|ya&y|o~Bd!o!ChJvl?o-BC zLZ3TWu~c5rU$D-sk+WugsDglF)odO-YM~Tjr=Zh1i)giZ>T)lnmv9AwNGsBPQkOz_ z+gMk9OjR*5-8ZUEQE6LiduYozq>ciUO(gEw#Ofxpr{%!pgU;tcL6iw6_Qg?kf03E6 zRwPb}^O(8q8^3(`bxsgQ^F>@DIlaZN^%;5T_FtA( zV@WAd;7?Vf&)ys<) zEFvBrvMM`~zjV9st3l(XQu?}+Ou9#>Mp?sJR*s%7w5H?w`v?q*TTiL&a-t(2T;#|p zZ;5-4%|BYljzKM1g^31E9P=`fBmK(CbY$*m_YubTA1YYw?MEk9P_w>ekLLu)Jo$=m z2k$hAA=hjGQ!7eu&ygc0ayI;aE&*f}|BBdnxffrl;2v`onH|@Wfy3T5krXqjxc@G} z?%J**;g6uszi8_g@ALB=++PKquhE$Qj)*X2r7r`a*|j~7T|pUnYHQ#eewv>bGdP6O zJ~92(ffkPkVy4b>h2lOM%XFRDcO#{~-77s)X{>bACXOEeYz{Hlb$HF3T!mh|%_}lW z7uLLo^W^fGBrcC@L8agiMPoeCg2`ea^yeYXiU>)iOi}L*i@!-g4Xn!(0U} zy7_+;2!5l*-uPD4P5n^tn{2DE&gffTeK)lX`sx0d*9`r?=@lm`(Ct`09M1;A7W8w;ca6S&;DDL{DO}zOqi;EZ`)4gGl`X+7uguCES1sa(vmN? z0_(bAQhRD04TeI+8ByJK{D!y6&g~?T_^4^>Ezte6s0^-d_j}`HWut3r7N0k+eIqj> zUXpiEA8tZ~Jon$|3Q?)Sq~N=t=m;^|Sf;wJsrIpW)pLhJ7s> zakutr9rk;;K^Q%SL>J|jOBssi2@$#U2>6h*}*wH|CN*{De#hxgCZochwTm`PwGmda@U&e~Fi}K+5VA_m- zWMS2rSCwL`raXh@U(Z%~)XLASf^G%1Q7hJ+E5H@;urPOUbbaHyp7eW&{}wTQn{G@Abn$3V(I1Z3 z{qKu3))sgGI zZ)X=FF~aTNZAL%zW;;-d2k`k2ngRSH(b~U=lXmC{Yv7VW`QvWmDOeLlC?2&RSze<%YWIb zbI;Y&eHL%&b~7jLFTZq=G*tkfTkfe8;p$ypZZ{K37}BnI;d*-~3Gu%e*W)`M;`%h0 zfR>3qWok{&-Wv9K`kcu9+^lzV_CNUK8lmUj^YVf%KdQo-9Sv%j{SRS$hI4T^Otw1ecZzE#!3_f40?lz4mzSjn_MfF?x-VG$S`u>VgTlx^v>(WR+zT5b))W}b zd4f|&XbjxQ9r+N?)1}UWu(OBzp&p=qKnS~LyZ;8A0^jpJXUk*p1np*U%UV-kWis|N za;)k{lZB>p&i!v}%@$bZ9zP}%gcE;J?(K+~E=I))s{G)x`;YxR?e1wY73|XRZYo^l zr@&JM4vY{RvbQdTfaR-}a=q^j!u(joRcqPTyH@w;ufBCGVGXQ@w|zP3a7o5#F*ex z$?A<^zx-}SGo~wah&&^JHtAzR;RXVdZxdsTiWBx*Uqrs;;6Hfh+X3fR2^|2jF|p z@{gYf)(Wra;NDp18)5i2N~-DfO8acr%aTHon)UU*nas?IiKA6>oetIM zB{iqNW8jVR&L7NzAI;N*p6s}_k{OJu^M-OKg%6dbmkdTYIynfA60I8eza4vaH|GC> z4cEUr_AaE;zH(Qiaay#ig_@eEvoAOzEKhdV%Mm|N?tZE&z|~?zF!{R@tt_`dZso>l zL)B0Cad&L`3?#3A}|qj z5Is^BEungKwV*`*5bU?y?YjiadYP^@U^3EdQU*5fohCl2+bQ9nY29$}TW9tK^V-dq z|1^Z@^iSd;NjVj}nyVjvRDZTykWrJ2@UMNNGS}74l0Tnr3f=MC`*Z5wx~!BlI&Vts z9ku58hv-DE>@dhTA<|T$+7j8H>p|P|RZt$J(Q? zBy^RR#dlS^Zouks&#WI2x}{52C*#ErEWI6Fe9Cvo^)DJJT&g{Ie*x_5wv%3%o#saM zALu!WT?I`Gp;y9gC?^<>4r*_zggyAI#cpTM5_v)&ni8NAw^}LuQ0?l~M^{|Ei)4I_ z-lj(F7{+%t&~8O#w_@qytCEI$zGB7S{1FXce=F{G&&Y4TQod+yWk8(yzVs?kWVvFh zaeeDhV}sJk+xg)Sg<0H&s#y^6ZtmY@>t9}0-~5taRzQ|;pql?Pd;Q&9K&-j-$gadD zf0W_z6a(@ty&P`tu!nDaS96h}`0uJc9z6$;HeHl$Y@0(I3WkYiJIM2Lwcq#1uM&(U z-~H?M&1A9AT-9Maja`xL3#WY)W}v^*uedwt(e@WK6JR| zhlTl?-}#g|6A|XInla!*i5g;8;|1u>msfEPvZSe&#iu_ z1@E6LZb9Y4q_pFCxlar2mIWOKTMNuJ@bCp`kqs>BR`SLUBLDf-o&OO?p%0Z=T6g|X zakc5{sihf?$Z22Nb_Rge%pr)@_wM39NR;-aFJ!;nG5(K@|OOHg%fx~1A* zw>KfnEKrRRVI{sR(C|M|AnU7oe4as5d!o}}4(Bt*h=45O$bg zyw$YQ2++JMS)D2Cz0n+h2!c!emOSkLq9rd39dWVTByM#}_+eTm?9LeX0qgq4nDggj$6KT@xvT#*LG8pBD#T$OmauH$GrRpDXTHGPNkouXkCk$DW7tL z?_0o!Br{z^Rl(a1a@3G-W5^p93Aa$ym)EFd*P?u9F``5VFS?o zd;S9x5%F7%mOBe*!2*Tcv9)hPTcs|3HW?bjoR;A)a#Ccu=Tp~{N6l)xkd(Uc`Lg?( zaWb|G){&~h=t|WF)!hWMFE8-_TSPnj&LwqPXwZD@@eaSfqqP@!20-IYbi#~nZzgc8 zEgkaRQNz-WUoSB?mMhiMt_=8Wlp8PVWkY3n)nHPJ?m`ZSgcUaW6Q$IyuJztylJg?Y zCFom`a{V_F=?nhL>wU*Y+$8**jqSf)u&cWU>4c@6K!S;a|}XdCbg-dDH3i`mfs))#^1ckobwdk(0{&52D6hCxytK+IQol_MXi8YEC&=AQnZ*llMz{IO+wIPFrC zNXnAUZemkb1Z@K&1U4{?Biyqq5c~`)|1CPbu%gdMkuA5f7GwSV%dFJ!u*Z8_PO)EP zne7ni6|c=5OpmN zXlzCC6D6A+P|sPmfkgn`{&l~{pH&|N-wUpELjg_e-iNNtHTrpNZOx50-)xMH6-T7R z4gIVjTaso${tM%%ug>Wb&oDRkFAC}p+W2$Gy?gt^Bee)WKkd4ycD|IC65sJ`k(+@* zV_V%Ku5jT6yHRp(DJmVQ_E!1~-w!p^> zBX0cIf$;CR#jhByN8N*vF@Hn$ANrQV95Tzbi7;2Pq_OdnrA30*jNh}L@+ciVhe$~W z-N_)9QaL_e*zB&3&A>0ruQbB0v@ZwpC;ZSEu%R1IyK#B8eTRnwhqwjpzavI#XQ2fh z&t|^6V3<5mVix9RVMKEXO+usmPXNYG_>9LQhF;Eu=J(v`k8_K^8|-JPj~Z*qw|VFg zwQr^#qDPyF@$VVXN7vRYX1#I7q*o|=L)MuK7*ta z%7_V`lt5*cbo~1J7=iyU8-Cx4{)69=zU(2+9Jlxj%=J2xzFG4?f0?b7fERSoSX#`Q zaW_CJe0CMo>SEue$@nX_kM9)*N-V|p;E#PM|5uXNx6=wNrE#OA7o*K}F+dZR2m^Kd zakM5z)E`0A9;fy75TF8uxhl2S4`U+eh=2 zGidZVFTS52+#FeA?w`R#%}(oEX?PNly}#CzFs3eh<%_HT^Y-OG{^rNRuZ&*wT3!0C zd;X4!{p)@l@TyTIx}L1yWIEBRGfiYJQ<9f@$=PVNTdm*$t5`v@>TTaIswkp`WkoVRd`4wL*MzH92^rJCmN>Ngt|7G{@{(D>T8nd7O;13TO z+)ADC?aI&gJgRO|HuRKs-SPB0Nt@5VhnM=gmH)UnK&S4J@yWb2_=h^-cP+0~^5e8g zp??>zqgcyJk>;shuyGSN&@Oxj-v2AysF4me&a0>m=jSi)Cc1~nS`7owwzvCrvIIA$ zjunw+T*7$vmHjpzNLNJI^S@#{zQ=wnBTyuSs$jo>EbFF_ha8zyP;R}0VS?iZ35kZD z%5G>Lt;)gYZX?#H>!^Qa1pY6s<&k>jDTiNK)V04NQhXCz@m)Tj)<#6McDiji{XDmT zW(^(yr&6PHhYuD;;5PpkxAa#c2#?q2nJ(*xGXJ8>`zyENYuBRNKH*AwI0`bWi=Z^=LZ46zh}qfLefRtqPOaBHY#;dN{rsMX$M_Wo*Dd(xg>IoWSl!%Z zYL0?Yrlo_Rpq)9iZ@+%<=Xr*97RrJ&uBy<_&s{T=Z}JZ_i(KrK1hGY$`Khbk%~N3f zQ1$*dBkO;cSUpm&3kO@*&HcQC`=0}&!$c`O`naHcno6WNnILeaFIKQV@=L?H{wK>t zFaNvk{#w}lBPZG_t*v4xWU5u4x7kW%Zqk8UucQ+4^MlBjZ}pPY9Re6j%~#lrzi>0P zOVKb_U)r)S4M zChmDKc-%VPQ0lZ^yUsJHrMxF8==k0D&6LxadwM*hywyB&W5!VBNKUPO-S8KVgXb@# z5!(joez)=bki)y2yD)z+V#h)5lwTOsZbDxZ(JaQI%`25GX%MV-Tzw+I4l!fz2 za}U1TP`-;a`OS{~b16478spKi1f+z7mdD=IFTc#(n?DOzNQkio|h=gk@a6Yc$< z2Tp-jOe~a=Swd`ApsJ$D6{bg@N}~1P7iOD^t_ZhHU$g($R{pgAX*|7vKUzfW#9?h^ zIa0t7mX=w?ZUEa8p5H8f{;hXm|I9O|GeB90fzIChin~guqI3}@+bIT?XHb9XBSEqs zH}N>^3FdIRems>Gklh$`gEA$PSZSp<$W?^HWSDqGDCfr9Z=%&J9yAw4Ro8lp>MwMu zq@_@Jn(~ui)OCL`mHWyKwg13KA@eJVSKAh~xM{(jI4u70ylv)})<)-rg4mgYAa26u zDZaGvzuAL-mjR8XwL9zy^WGMe{`TEAsdp_~U*fh{xb51cT5V?~R(+}>Y8lT=&SB&2 zDt4aO)Ii8zzyF&ny;?;phS?f3kxbS8M>rss( zyj1Pn^J8Yd%O1RW-H@Gpsi;WFtFo8jyANWptkI9XM0cq_{RX2RcrkX=(t+JC47nvy z7TBOmKV~Xfdm7`&_4MgkTCK16!oM@#^H-iac(7_t;ext(w8BWvS1_y@-d-G=zoO9> z`RlfjtZ;Ouu!>e{2#T#KVPk{24dvz<+qSbQg%uU0EB769s%Q;h?^Q+>RImJISgTP0cU{E@ z`zl=+?nhxG>>%h;&=-?qn1xV z%^00~J?*!F^$e;c`%*vKaRTLSZCTl6eir2ObV9phA^zZJF$ZtDcU4B_i@X@?Td1SN0%eSVzw3uf}1&OBH-|=S|lZeDyUFZ>*4pa!rOU z9ohc65JSJo=9>05M+s(NVHo&eOX`31JC$YE~b@DrC|Q}`uWS(`$D4nhqFp^ zqImDt;&AV)FHe={*Jkes6;B7m+myJ=YF_yYjQyRLfA!1%!<6~oe&M3vo&4y>J3oD< z!eawxw9Y`nc77stbVR9N6sPFp`lsmtHG@94y0kmL^XmWdWd5YhJ3ko9r)qd?{DV5B ze_)j}_ug#06fAQ3^xUr|T)2KLZs};i?>Xv!YYo3a)PEkRdWDJB&#|o1_0#dlO*s#R zt@&1Xi$CS6_`SpMDD_WTzp#decMLg@Xm?kM%UN-`nea|VCK&4|-^*go&k#sBG09lxycZ6aqX=M*8j z{R+iY4M&$>MLFDnmipH%^s!~`B>M2j{^t(?|FfbF|BcZqV}0BC@m#7tLTW-bm!-D( z9_Lh1nIHNjh#zQFRn?lQ}KAGyJ-*P*s<(6{+}Hr zzHhC3+V?J|VLP&w{H9s(GtkM$L{!D@eK%8$16jc;^0<0ixq=zBUsnmpclLbRWxCX> zKfT_kdtm8sdh)rqqOD#c{+!L}=^IXRoJ{DTj6+84oi8-gztc{>f-Sz&*_izJ#vgdb zh5rmg`^}v=v*ZP@sylD*>_+KwMH4C|xHY-=z!ZO7s^qrF9kaA2J>T)#zQR`xQf5-MDH1tP=G(WH2KbAvx>r8VhD!!8nGpsotvuNf zqrBHu{I+~*%LKR8C^L!crZe(|NN7>{%6P%HQ~}X$)fAfQ#az3qP@>?Y`MM8wGt9*9 zvDkQ$+8_J2(TS4q(6M$~NpQ8U;7YKc=8s$;tIZ{)K6gN{r?I_TNRBJ+XVb^NwUS-! z1}oYs+Z$Zb3Z!*`V_QvZ~bTZPv8a>k< zsxx`orxhqC#hy)ip3vR+gW422?&;!e)qDeBk&I_ zux3+NT1`Z)pBG^}Saodf9VKe{*Vorq&~VSqhEKN`66K6Hc1Dl1ky+H_rVVc-y89qB z-9$vpYoCK>LD9TQtsFlW#C!G8wMl5=v}{^s4L`Z8D7ozI2hw>@tteakN`=W+S7}=A zUbnZmC+mo=S*w^xOoZyOjy*VKCo^1gE$F4KVJs;n>+@sgOcR_qiJRj*eJ|jKH!O(l zPZfz+;}w1_+rvB&%LO+y8p)|A#fhZ!k1~rgoWS~5ZROG=FOCj~@s(HpuwE6Smht4mz zi4MGtirI?l=Jr=KGMt1l`jQ$V^7faEya?HB`{BpR1EGEr9=>w8BJ)WNx5h8xwv+Fe zM6*un&a?!Y*#wk%VQ12a7Hv{9O9U5MgrjcE80&;)%T|ipR5>oy8;S8Bp5Ea-P2)zF zBSu5L!uPi`f6^ax=MyxG)K`;v(g!RrSng+Z_TO+{x_$o6v%jJI-}vJx>LfEW#kbd* zT-q3Gqx78H9sD;|htS&C+PYX?m`b3op^+}$@jM9gqRi|t@($u$A`h8C-`DGePoOFv+WzZE6$EvyZOZY@A52;9ITpKT1dL#SjN+v`WRv! zwPP)aQ5Ct0NE7?cz<9)ciAB8(WdU45E|+^)MBJB0%zeZ0W#x?8Lv zSLck-?A59*SU6lgc9!5yp&;UMiAXvo`y6F)ETN%6m4m)Z$VP)#zI-`+pgo#1cQ99> z*U09S-KNT@;1G*Y3{gKb*L4ti-)wO?>P<#VTG z7(3o;84A}Z?g&Da?rlnskZv9Njr&)RyqIMJZ__YWevQHoDQd^rD>_zUaG13nC?A|R z+uA)VTc%?rM@4aiM!nkHf#rNIH!f|M5*Ii3J7XvBd4;}6h)GoBTy8~tYYt+&>f*?K zwJ2NQB8O<^Q;v5MolgvITec%gvyyQnjD>3}izGHat5!NLx!H0v_g?(7Od2>#=EYjq zU2#bomHV`7(2|71q=p8QMB}cgl?u~WLH}1Q`_3y|%Mov%f8&bUYTCm`W&N9nXUaKW z6q9`1|0Lb3J+=OZ2dhg%zEJ(qFcqQ6EtVm4%w!6s0w~K6vGd)BM{EpfQ&`h;HwNH} zBc`L&W%bKCCEN_m_~Yzi7;}9K@1t5Jl4!XPr7WL{D?J*eEh-PbPXlVL# zmn!;SIoeA!G{E!1+_=?DbgrrxeJF3po2q41uUJ2}zpU49!QBMu`CK~MU6ng`)Up&O zXWakBZ?-+^A+|r}4G1;x!ly9_qPc}8Vs)x>2@HrL?D@I9j*D?sqBwoDMsj2$%_+Kq z&{SHjs#_VEigfOnzC^T=F$GU}9Ebc`(#?B{i(Pi?2QTby%Iv zNm)xz4|RX75`>Jv7o`MVIJA*TveQYzw9~FC5_`|r zWuP>pJE3O0v_-Isr7La9Ni^lfhIr8%ifudwK{$;%QO<&H+isNS#A#FvJ@+H#U~W&X z`T&=J1z2a2TuN|kyvq3f(y&6Q@!=J{C^N$ z*rKpv5k&aMvo1{2Om7O!k#tQg{9nQlsN^3B^(X_s0V38r&Z7c65NT4;0(RQAmynSD z?+KUVpWrO-LSWd{K`F(8JiVGLzsF+^9xG*ge8-_*@r?ciU6L-R#8+BbtNlBtRsWY{$Zx$JO z3+6;|hX)fi*lkw*xSUV=$p>({llcvLHS%Lkjv~;I30{IKEfVQ(13Ue5@o@-2;SuSz zOr&9QaLES6msloJsT2(r)Tz{;%GZfPF{c-dl12Pxef2kEl2=qItL>alPdrPPnB?u9 z!rhj#9W9`hj#3=9c;vuNnYIIO?XBH1Qym@%ylBM7oqXhcRExil2v|Ov_c0x>o?6c< zb{IZyB%SFZoT-ohb*oK&&R5kKzFo8>Fps($Z(*oaefJMy)Y~3gc*7lLT3Qm~3Mi*1 zPSF%%N&z33|L?@uE9Vs(xkm|YzY)4Uq#kMSK8N(Dn7Q{<8T2G5_U_XRG-ut>Cci>f zUJ*g5G0I@7biA90ZVh0XhHF!*9Kf)N|T+R#r98=DZl(Z?^=KJ~=g zPbV(>(@hAiv}zxC(CTSgHLJi2<-&p~(Itz;7f%=J zJu})9UM@XiV##{grD%cMWn$=0%G^BB#hCS^^kryc4umt^d1~VcQ%(D}3guY`fK# zJmZY6X|l+nn{%b-YTW#zt|b{CmMiZbVxOv09bzS(|MWC8Pz^E0%>rD>4&e$saTcj1|RbAz#6)^OU=Zc{m?D>2OO`Ak`IFjcvjR&{mtceZY%LVqx{e#08? z|FxNQisveewk1a(OW#`VcE= z6gmY9vY4t12NtwY&1x(s338#nVb6spzir7Ce6d0j+4WXLw`Jnc1tB z?6yn$8HzZt@&nEj?)afpR;6gP)ZK5az?S5X)Vr-=Xd3C+YaYBOSaJJ zGLV-+vrCSK1gJR!buK%KS*=1NZ|mE7JN=^znKP9NZ0|}yVVx;+@yr?*XM1SwI=X!j zzZOUVc!q#CCE2P)m3e9$JOWEvRd#9&aLnTpbswDIX3z394l3r`c773@wd-rv9SQV- zP0kZ<^b5Cd)5)-!Z-?|&BVDu8p2w4EgLG;)%2n<38dmVlxXLoo=;XHc#2T!*&l@%# zQ(c5=OFGQuPRBG=_NPVn#p2!@*DyX`8j+(#bpmsO{y}XqzFW=6JZ((kHy3{IrFHCLj^*^A zV3p-U^#=kM$YBzi>&apSCfnsqC=Fl97 zEhg$J)2IyDQ<(dx$a||lJ;K&V?q<>$ARpG&xh`1-HF|nW&2EIxXLJlAGD2oM8727s z9mM{Vc%y&ioaZ+zvC7d2z7?lLFHF{N@tq4y$QZMsvY_3E2$M+!V4$2Apz*kRmeZ@l z3t4Smj56)-)+jM1kLA_PB7NLqb%wSuCdKXD0f+#pNY<`ZJRwt!!USGgY`);o5plPy zAnHQCFH5 z!^Gk%7>o@xw z>X>qrKI8}{7P|E}$FmlY0w!;yIUo|Sf0qS80MYePLPym(ZAd=Le@}lzC^%UJ9$v1Y@a65uoDqM9`+f2Q0_>rQf-|JO68G3xbt$}rzxRxJNvNfB?>X@_GS4Q zcV@EXNFwnnRz-``E_g2E#SM;;{|MW|+sy@`bL@WbVQmTUL; z?(peZ4Uu%=2{!gq`F?>g`S=P6P17LWZ#UOAY>+Hz)6*T+kA;b<#03Qfn7ugrHTL`a ztUaXO$J4}u7;_9QnEOdlo6O_4sN~Hf#^lg_>DN57<<4JZHHU>a%;#U-sW{F*?m4|8 ziMQHxbabS@u}K}qYLC+qO3fbwHVeW#=KlGGk-5HNsinCbH`T@5;gyKj4ZU>KuiZ{F zv8b=^RQYrY`IjH-_nqiw$RSCu+0NJwd90=9ooiJFP39`aI=QAWH$IAJT2j0ysq;(v zv8UMBPp9-N#godLZHE=k+K^=9d*0=iKY8~g^)yVLJRHeRc-!7?{YQe*u4wcfz)iQ2 zTCtBZ$s7?LAM993BF+jj?9+;rnK3Y`ULND(_rvW-^<~dxaPN40i_Im+s2atwq$?C^ zBMuS5AmTj`@ir%(gXbS+JYg>}jF3aeja|I{PDy(?Z9i^JQY8F-gmZN1eod3TP@dNp z_WTE@-*50reA~E|!6%vRx9)xQn(Iav)a%@YGQ_oVI2W|MZTnk5806c=sdQcowOyoF zwGZ<=C>>}yFCgjRj35%5iQ?@Ff(qHU2Q z@uDWste+gC8x2_b9C2F&4pq?-Xps}r>nNL*u$rzp{7XFS)??K^ItrG6V^XEe}oLxY^K3ipNV7FJFyIMjXMpka`OSfWw zG7YJjmr7MEW}-O~U)@#N0ySR$VmcP3b^Y^4r6<$t@)xo6w&OW6%^GpAwQ?Lb&SZn%i6oRQ=5dQku zwYjH8)i|$vIkCgbRc^IG}C*B~SQhQ7!Sz@F+H@XRnx} zc)RvJ9hR*cl1&%R@qL+LeXy(#U4NBy3P~iUdt*69+JqqAqCR?G{o0XPybHyS60zSTOUxA=nR8e@ic zK~E@Oz|B=_`1-Xf=Tn)Grt(#```ibCBil$TOA}5~#xBX+gv6g9cVA9vCl;Tju}!{0 z(bC?3&m_3a^`+7>h|JcT-Gbyhf@d~%H!l_Hduj+l`3p2_h#jrjX?51PW_7edSNU>8Lquek6n~mGGecI(dW`He=z@ph-Z$&8-T@_SNDt6ECP|zODKj z+f?;>C$WJ|!4I{v>5l+YQ>=jOCV?JNX>~q;2}aXvQ|_hvM>BIbJ70@6<4~#JwwNDs@ZHg7LT;q(Y z$PUhb2Rqv)Az|F}0ULgEu>rH_*p2nFPwPwjHJDgk22_CiG=^w#i`8IH3Vv6EUElBi zX4@XDe|7>ES5BJm)HOydMiNyKO-d+F0t$Lr&?4waWGn$$U&LCk>rO0VhHuDPbJUd4 zP<7deYl$!sI1ANIdfS1#pk;tXeWT%}R*1h`$sOBMkvDqI_t^TyY13(S| z#*w2IyflYUt~h1etgM7{6ucfAdrza3R?}4`M+-K&<|t1hO;xy6HiRV-H%n!yzSvXVXkk~^#>&cyz9rT8$wV)|7Z)}B(Bja{)d~WkVjTqS(b;`}CHMeadcuPz zT>P+end0zfkwNE!&aw&Xjm^vK%g&GORyKy%Rn;Wtd}PCsE#qP}W#XBy`WA@j2AOhC8j1{R#a&b-! zM#97tO(P#uJB<&q-s4CdZFnD&N_ubDKmzO^$T!QpwvS38ueEHxWRuD^NI5M`V1vkD zD>@brF&gOc0+=Ys&96e(gR+I;J@VSRKF&Sb))pGHa(k&>F2~RtxHCIPWQKdVmxA8v z_S?9dH@t zBk&5!6Wy`$CFxg@4fn;bNKr&l-vfGtQ;3gVI`ssWXv_G@%J@)^8iGWjJV)_RbI-m? zuQ#UESk2)aXgyN{N}$-JgC2X{_kf<4r7+?CjZQanLcgfFV{gg!fU#WL`Q5HQGYCCO zs8}PYf&s3($D<*n3LSl>X_jsgyaxK*EygveZvig$JGihY9C8A0yB;vnuuNrL6`nOEa?SfvA+FSTO8FBc08JHL!duk! zvJaJ9iB~qeNKOR%Y+5Au>+Tw1Qtp5pXyAU~BoRzZTMApXC_X1^}`C_!Q-Gbwfa6+Hq0}JWHi4!iplZHfPNerkNxe+XWMmOs>;G zAf&q3hw5g%lOMOQ)(J67yu3IY;mGLqx!ykaaIi^8YVK_lnMcC}nKj~szY2hJgS?!q zwJQF{Jt41;-QSnpI-BVJ^d8!#eso{4VVJ4P06Wxda(3Suuq89rm~}j^yN^a1T%$h~ zyKNC_aNR#c+ZV&|Mv7D93a`1a7vs4<&wV`3-#CAi3t`pJNRymvp$r!I{8$WH<0@QSI!~uRF`{(3W86&qk#)P&S)pbiw@INmb zc_vtZzRc$54LKQh-6U>ja;dZK^82m%HP$EZARF9vEbSW)nRD>T7q>!rEy`b23)Yl_ z^d}T=BkL#$r%|CK~kVw>XGzwT~%I{?$M@<)Fq>NnnJ;# z03aF4dK8njuC(G6sp7Yp)(BIWqY5VB>y^Po$M}T0JRh6dg5e5s`yp#aR=#TO^1+>G zyu9uUqh=AS*Hv9L)Ib@M=`SR&y=TEV_bz?uQ}Ge2go$X!^nR0m{(CBG_~Z>E=#w|g zWA5FHOeL9^5e8a{CF3|zZ)ZEMi6p73%mR@^hCYiqlngYv8HQHK)f*g@kVMsjYJNX% z97p6SDvKGk(2;WQqUh+iD4*@ zEAZtLU{#bUw_ABwg~K^{9wZ3i^EjzuM4zY*+WW$wsv?mX zEzj%9Z&k2?)}{<^YpUy#S4t9u?VZ*gjkxRmZ_LqDK;zwL<4LNa=tR^`OBZDZxq*sw zA3t1I-Wf^U+4`bHY49sZfu6d9v!jvhs5nGlWXG4;f5jXMWVt4Lku z7Rv!`l?~!G=;{cYPgavDp>l`i)gEYKV`+M>Vu^=9O^OP~MXUq9XZcu!58duA}3%Xv4~ zQYBdMcfQbg*JHw-(5LgRj$4{kyzC?t+RY!qYvpm|SaRz`v!U~@0oUME%2f4Mh?Ma;d9jY_(gyB6CSf8VA(!(t@x*4SFyXQYy!{~J?)o2LdI}{LC+lICGRB;>% zvPR08&*d-FmPb%U@wQLid#&PK^oiK=b_ z5prlKQ-#ul1u3M`e4V~LPNyK7E^Z7HV8=(5U#-p^u~5_KQ0c229$sJfxeN3{71ieQ znDwrQn!AMW;mh)COYIRBLszvTD;7ZhQ}q5j6ymz~+!+f$y24^AHY(^wmzdx6PW>FY zJzKQF!x4rN)6jRlt`^E}@FDxR?QZzocD*6aL)OU@-Z4@mp;1qAcN$0$(FtSu^O7YT z&+hz*w(%dB4`3BU(BARZ7~OxVt@f?YKjTKZ+^~9=RSg!Cj^ zJ_4CTcp?V^ug$ZYoZM!gbylqy;eo0x=v=)uS_w&B9(BF1UcSCLgh#HzML?}f`go4l!>O#Z69~g3JX*Rc+P9{(L?+pa#OY05{>|heSsRUJ{apkR z*KqfN;0Kqu>atD%YtkQX5mpzq)+1H1P|mWD8zy$bU2E0Y+( z?c3n3s-UL0kz7D*R}x$cLPKTH~;)K}QJS zSQuacv6i8d*v_CUoFR$k@&5dMAn!pog=eqB5%)|8hRTfI5naq@7L1EIm}D{=YI{Sp zqmiO|93*?k!fpY&q6T^k0hLu~t`-W2vs;FBoc2VI<7^JEv-TGXnaDI?&%B0tmf+?^ zvQRJG;;$Z=%C8l2h8!!7tjS?q+J|^$&7+#My>DbO#GkS!B;_1AHG)up#zL-@$-|v} zxxRNp6s}0ey?`|S~95GHCFZiWQ_+x&?r#_3I@K>_sL-`%(x|jK^(=3cc zO9KjD)ttQF5k@-LazTLF14xoY<1zW0RUE~-ZRl>2jN9Tr}Von%^zU)|;RnDNrxQ2WX?N+LJc!Bj=Kj~J8#$3(~|E{+LC23Bc zM01-%YH{>P)svSN;!<}ov${^}HeFdHxr(qnCILv#a^0$LL6Fm6Gu#cBHe!h`@C@XO z5;rm}J)%{w7C6IRZJ2bo&s*P(aECBQy-kRvU{3?20K8eQ&?1>RTK{Ds`EC=WAmVPJ zz>sK5x@=WS7_pjHdoTXoLpjN-uF7!qGDF^zlTV@fJxPgd4N^eLs=t#$-(Ph2AeO;3 z+u#g@fL19r5riq~QNtWS44brim0Qoixxpw1)=I66{?SL70sTh0r78>3qj3$FaVCtN zY@`;^+Or*AHPsi)UU9IoMuk1!}8}nHJycnb?3tOp}ZpT-2m; z=LL}XIu_Q7`?amj03(R0?S&-3>$xqT!jLk8+h3nZowVkNJ=~?x7x+Q;oC8 z)+V41OUDT{-(u+dwSNp9km#y&*jJTIsD9vRW60d{oU%KqL2)46ZDli#<3>K;K0~s} zS&uRZ9zuBLT%_&BI_C1YjeJR3wG5`f4vm}ItXC*f54{s@Hunif1ka2AgX({*0Rn)e!7vhPUIkDmjw32U8G6u=?{zS;UbctVNfJ0BKI znKTL@@mRbovO{DdmwXHl%w3p%i*|sSlvjmd?=oo5x>enm4Rl7b4J!5>aqRh*K>V%G zBia}__~??N>Rip#0hziy$PVz4?4V8H{u4K-WXzo;P>I88Rpfd>=Z48hSrASQ)Aqx< z%`TzJl1oCb^R&S~3sWkICmIkPu?IQN59&tpR7J552Pu#N6clq-<3_oL{;U=-W4DUM zTTgo5?SzrY-G*|UIdi5uCjXh!IYNMDnu49qEshseZ7+?DD*n@%3)l zml(nS>Sx;5vx*%A(RE{$ephMvxS+VXorGG*Ew>w?9Ae@}0}&Iu8IK8ewu@dAdq>_* z3G1#(P{6L;*Q!ptqI+>}6Apf!Khe ztKKoZE^dRu-nTQh2oS;>+uL-d|CG|CFBs;hSo>tD--EXm)omfgwOq5M))|+wFCWUz z7un75#yMhvZf+;UMQ_G$isa!@Wn6i?y3D?={Ax@HVbm}XT`-EC)nH{Y9|qiFaV-M5}Q`0{xXDe5064nu{HB}$7h`$M<81vqSO^$KTY_Uk-3Tu{~|TKVV5F0X=ymdDZi44Dup zi`j(5$l<%;`(jGw%$4KDSY}*ug!6U0l7!0lLqAPjePr^^;di$4zsl%8_pb@$A6L6O zV!k=oL5Euj#B})VPLB&T8wmDngiugW?h6(-hw*5LW=q3uL_)cW91&L{lR;SvS}3?> z!!2U0v;C3ro1dD5L?Y;t?n_?RV$c_-))&JG1B!|lPu-l+U5`E+T8vn(A@u7+W$Uaj zA3h0+jV(AjhkjVXbM0 zKB}@6Glx0~11WfpzuLvDrET~MI+Fwt;tmdGKSisp<4PB4qF}JtI49TiJRL6`G_x|C z1a5%tRF+D$Q{*+BKEs3DbCLQ3!^aFZtHuKkkl;A>Iou}KiR+iB(j*eq?eY%gyiPdy z53r7#YCEI}xt|09eVJsn{edbHDg(}QXovnBN9nPw*X8w4;P|c5S(-yh`A~mYoilBc zh@S~O>0i@!W0dYaD%6~IM83-t*CC0eJ6u(upwn5}&*SUJum*zpf&FYp8Uih&oOoO= zZrwPgR0S1oRz2D*R|`T;tB0HOJ@EIAK#MQ&I3N}~W8|DzcW81n>dP9I4gT zH%ygC?@A#vk`#gu;?~_;8MkIuS2MD6MPDDW3#^Di@u;zOpcz(OnkhWq;jPJLnX>0tRYMntX5xNNeO?A$hFe8cTOV)Pb=C^0 z!?8+(A=xM@mZe4ei2GJ3B9RQ)pLjyfiy`RQ(hASQVET`ixn17Y1|Ul^^c#h zkqkwKvu*v9kz@oAEq%Gq&L?pG2(R+L4`yZ^%c0fy z=wPxV6vSqu1B$ioTLVvZ&N`J14F*Q;#3OFI^|e+zY3w2B_>&%N#S~4>%}+7a1LgoP z{@${JD{1|MxRH>OM|0UsCt3J7Pmb&T--H`H@kRx(xj0sArI0;0MLbAoEBqvzpRsAa zRK`CE{sf7^2OZgCSFmbRPkU|2&vN;uoA#l&eBtVF$=Nj+I2r|Mi2JHU%IArSV1%b z*dzr?9M(Xj7S?ugBR9JM1KC*EXY?}G$w77$jNaGQkZJ;Y5jp_!w-4{t{EH(*&=yPsV5I)>38miPqT;1P~o-$+h zHsO*gpt9DUn0i}Kr8kFz)D&eWJ4vZ?mbJ=PC|E)uMMJX@dq4(~j;uz(%tdB5E@8O% z%^?Y(t;Hu46KTDa-K0+-gnJ8cW2%3I zzt5*y3RVlzVpOViC?aq>kx6b*)w280J@ZtMn^9;s6m*e0Vt69qV^1au_``TDSiH;2 zj3(Rw%QU{u2nI}>lp8Y9&D;tI;wInr0-Z)Q&<>b9zPy0&%rX%X#)Q<_Y=0iC_eBaX z>AHa|YH^q zk8$jy{VlfL8kWmxudv%gsXdu2)FptR+t3(~Nhi)_=#}3mRsBnDd+Rcf13tLTOHYy2 z8%vLk&V{=wjHI2Z8}CeX#v;+29L-1uLpHZo@kFk*vDT7`-qaej$>#R1PKrI%jM&-s zJ#~#PF~l@+9jxm-Y7e1FcN{XV0yMYc%r2@0w4QdcUYD!bK#~$$$a|TyGL9d*M15M< z+SGJ#JXlFu_;m++@rdtOsQL8RyIETNo%D}Kc0M;fo;~{;KMzCKkQ!6=U5ZRxbd(P= z+VIJt{*0LrI$q|;CW+%wn=F^}aQ3T%G5;8JKiw1=V+`*6L~qwD<)x0HOWHedNu_3k z2q~=2axve(L0s(}1rJMqQ*2q=Y zwvLPbHgATsT9EoA;~h>>FhQyJX{zadRE3f>G{3y6vhwdr7i$6{3FqN%BYnQY@;GJr zEGp${k%}I4tYjZ2+BES{fe{1B5D;$2RoN=?;df^2*SIl?xw-Ikotm#mNd;?12Yf0x zmNF$IT(t|lXg4iwdmhLy?o9~QR$QwW6T*6T}}+f>%rGpC8=r-gfb)nd=I@zUy8tU zMz9(gx1Yi)oT3ghptRLf7SblU^TcWhDUeBjbfUHOQHe8@=X0 zOUH{b+e7G}^=7RK=A!=;`}qL_DD?_BS+^O&lkA=jy8ocC#KoD#Cib`Mz6C-f_y1M}yc$CKxF zjmQAK9uCT~uE7hg0>=|AC;Vi#OD-U~BH55)T6wB6Ex+dt3W&eP+HJy?b;%JWST*c9HVKiVa++VaC3 z2GlzhZ6V8Dp$WdN`_x-WH)mQ$Bqny3ta(U5OG7>ht!t*ciW2#Z2Z>5hnaVzJmz3yM zocl0ih=i;XHu=WsOpvZlq-OIqNPNbN@JOY?srC{>+8+M6O(4Kw-T|8T+nXfD&rh{v z9C@a}^Gx!6Z=yW8_rBy5HFLIvb8}6l=R}^6A(D4!oZd~I6*+`dMjBsKcv~JP(z9Hm z?QRASMKp9oYlv=$T%fiQk?4(_VI{GnTJxE@#Caaq12A)%*~ zfbJR4-9SEDp7_tb`1X>G?nl@25ad2!IEW`FmKxuk>O2Rl_VCP^{gCLBQRZzuirPiz$gp1={pM!N_CfnX8qFcr# zTG*W#`BdK(HHCG4BW`N{62^zo_=?r8iWPJYrroBQvq0$!e;<dSYpW&q37!#yYdA9HUV z6=mP=3#-@&C@HNXT_W8oN_RI(4-G>|i%3f-4MTTJODhse3=PsfBOSvq4Eg@%S^Hh< ztmmwA-}`yi-e;fx{9^=#>-xs0zE(J&a#@{B-U4V;D+6r_{{XFlwnHsrsC%N`pv5l% z$b*=G(y~g?kaf!9!q}oZecUXXwmn$Uus}u?N48VEZeYV z$Sjvcgp`z&c#g4J@LQ!(S>Vjx0d4iG+HD)aqQDO1Y_Xu6-yip(e%ng3$bI+j-Arur z?`k}BQ#Dd`V6_g{N+xX{IfOg|e8TE_(O58&5Kw-p45R2OuT^4!=|}?LLy8eUiKZ+G z){)5wWeYW74ad!+TJ2-`o&dGFwNqU}#`YkS`GeflTu|N0T}FX6(PD}eVS1*6%@ zYKdUVb(MikXdFbu{}CA)^Fz>nnj28g#2$izQswbrmyvF$-Z_wpm5sl!0b2TOm&eY! z6srDh{-C}QCxt)nQcht8+{V+D#fdeNRCI*r5XI(y-Zume^2Ux;#E!fXAndc^lK&o zJNGdH*bb+3UH{ag1>Nv6D2#i-0xyfxl6K{uFCh@8FnL1za5&Xv^d^sW2cPo_Rax>o z`8blK`k$>da9+!b&wDwIlWFu^JS%kO9hX_QC1BX&PriTwAw{B&t*g0s zZ6rSiaGeHQ?i+ACVZZ(N`DM@MHnY!XzkLE*;l6egy_k!<`=*3xZU0ki&+_6Hor#3t z9TFU^4-nFNnny-HDe@t8ChJRx03ZaV+AmA#zK%Hqdc}PKBH#Vh{K#T?T*k`M6Q?6h zN`M|hxX`UFo(?TVbSW?HczEnLhFp*NpY;?B0U!HRIwkX8xtX7dWnWhkoGVA%gTo^>tHH8Q`P3%(&enxg%$Xg(rDBHsRK0_B ziLiVJhEB+GWDQgR$jS0u>`C-xkf1@#2xoqr>T|JZCL8>!kq302Pr!K~++0Cma40|K zMXR)&0AL=A;<`^-_}#b^7)9sXi|lvV6LgNa?ssYf+fb;fs5{)9dc5etdbNYtxZ@l< z4h;pHG_};?ad9~XLMF$HEX}VCXAs2^d6kZitR2$oI(h8_hcWUFh(t z$S|w0BWl%t;z*@zWaia|#lZ*Rq2rpJS$~eydipP3QG$-MiEL<*pXCG^xcyZ7RDfl=rq4iq5Q$r8AwIUWUrv@ z5RaSR5#>Nz3beV(B+#0rot+BGrFE)(D>FA*|KrUdzLTmHTubOHVFS*-;c_kCBK@MT zHCsZOK*VOXp3~}oRAX;m3|z>)n%Y5MolPO@@Z#Uz^IG**w!S$ik6TuhywPp}Vg6j7 z89q&AM1$L>=TuQe`e&SG$p04-$ynxTa`RdJNF~`wFMYwX?x>d*IUn5 z-%MB8e8#B{S*0H?U30Mr=^Iqm-RpZFu+Lry+->;Rg{D%Qh#-Er7N?z(3Gkaq;kw|XN zsl$mD3Y_-aWW1s(rN{C&;7&=dC;#11uQ$~FG^X5rDp5C4@ z+j{+MsJsxAJb#4xJsN5NJiA@cOR$}jJm zmEOkA&VP(9lm&v#@N^N?7bqiHUOg6e4Xg4PV6N0ld*$19U-*wqiG5dQ57}hZ8FyFl zVl60>!&Q2mN`1-kec1KT`ow~M)*YbSuI|_V0W!%R8w7aOr4Tsx`h0rsUN?N7A-JiK z-nJXODHbQ?Kh)PFPCob-&Azp@dCN&deW@^HKPy~lU&E^uSG93wNw^vM7I8$Mve*By94 z8b1))@_!C|*u8ZdL2I&WrW0b-0qg8l)=TF8@+j{e9V1`G?%6piDVPS5aG zj{BRcoYt7ITbKszL~2n;x+a^6W--{%YR|g2+w>#-aTH0aOP;KlfC~? z90;}7)v~hZrX%$aM(z2P?HpM(s$xow+Y}}&@0?;MTtM~m0?{O-TqA}894F$tn2aIP zf_Kkc?^=U!Je<+%Yr6co*d(mVc=dLtD+;%4w%QvjP!Mf=178i0J!krg#2f!QRDeb^^S^^2-2 z0E$ge2Uq}zEkIz@Xp@SIS^*>^u)VSag+3|z&TFwcJ4qHTHeG)@!9$+b^XeTF@PF0E z*_(x%Z?7u&bKx{7ZnSD4$95`|C(yz~oq2YcGYj)FuR+H1SP*-aux}J0Lfkv8An4o3 z$7+67wU<3tLE9Ah)DYiF8T$&X{RF;a>0sTjpiF$^X{t1g^H81u2V!TW%kd%b&q zcUD|yA9*(4G6>8aRmqKMR~#H1+z&rW%+iT@6*mM29rhVF4@zj{%9W`ESNfrh)g;&T zO}E~H_=__GDIlwkc1pUW-?0 z*XELp_kL0ujZ5SNOwp#k^y=nUm#qXK8kL@ypPf|_sddbbumb5hn&~n!gc%vq*82~& zI1FBjobb7s-ild~UK&A-s!S5ZadrT;6of8XYjG^4V64S4m z=JeO1KWWE^QqncKSvPV=^&5K&*p%Yof9ktE zczpW}_kH6DsA5DV-*_xX6D@tgKX0g`y*|p4S9%?5dsw<=-McPF%Itmz zVgNYT>>1&w>ILrTBHbWu*VQT7qBM5e#^|i4jN0l+Pu}F#0St8T7jI(jeVzQMjpt>l z6EREW(rSs@Ts^(Qy_^}a;u*U&#gFZL+zjE%Mx0Jr269vwYP#XOI>IrS>F!q>FOIVM?xOq$=? zTf?3f+5}~1K)PfOdRQF2C?m-{yAkyPWXGJ3oPS%9~_Ym(8eWc*UlVK(u& znBAvEt=tzt_?hz^M~al{;oipb@~I-Md5Y@ZJ=!K z6@~?|`6|D%JqtDWnn!B~Oj7DHcy_TUij;%4Ja-S@31btRarc-t3CKoDtdN>vu|ZDF zEY{9#0j0Ww9Us4+x3%0o&{Mq4zGE=|aHP-v6nkWAPB9B@`gp{(=)Iraz%42Hk#g$0 zVSR0tRoiJdm-=G`+0#DynV|ZHK5rp1&iUb*wW4KjRlw)>HGQAB*_t4te|mP7_YkCX zs?W-3oZPiI_G_EeA(HlO%Kk-tpqa!g0TM9H*`RNcnEfe5a z|IIi5fB9?AIle##cxE|a;{NgJXD6RGS80c6KfVqn+YKerm=c6j1e+?pgAO=xz1VrR zQIw{`net%&i&N_hZ$_^g7V~7}kg>l5k|!YuH7X<$vicV7HT-yQ>>+g48vX&Gq{Q3_ z7O1+w1g)i+Xsva3CbXw^rQO4(ZeEAsM-Z;^T)DKDB>3Uasvh5ZZ>ryS>vG8z`;>`X zHnMPCd%>w)nTa8F9r)^Kmc2M@z9uo#QM!R#*do8{EhptC@V#PqEp=lQu?#Pui3zSC zbvI}8ide0_h!iX#wnF}Zb%IpV_-CJRzVQ94ezyX^=Bm*B3+a>&OU~7O&Ax8T=AOQY?X7zK>y)w z|AGv$A2RC#g&yoZFrIi)sm{hr{#KQJdBWc3`ZjZgx39fYwt#1O@BXBOSP4bv^6r0B zh|Rw8x8?Q!+6QjtU3nw5=DhgjuUp2^^D7W_#w>f=0@c!_q0;T=?N{k){5Lpy)Cw=p zHtjH@n_RXCw`P_V7{d_>OVjSOpVkfcLP=uv1uL?`46cK?w?fYxHrJ!ydMVYf(=15R zg#EROFWBP2&vzKuRS0MuTJl@g`WExz#2{Bn&amRPSmcwEt%rGwp*zC*wGM&=>$BlA zGwrr_j)ach(sJ6Z{S<1Wo>rRna1~8Bllh3sPsd|22=3e1@a@u=Gfak@A)tRyfwD=JHC?e@?FW!k zrp1)XQz=+$ZHU$pp2=7eI(~N7{r}Gbz#0OTQN5>$#}+ydAWUip)@pr~3%YvMZ=!3G z_w(>o<9^=DOKNP#9OH$kjI2Qu*H+dPIws6=Fb~m&KmbBEkr%Gnc(g+*;Uffv;!1a! z4yVmzjfnk}d(3%C-G|>ljTbkf=4zQ0@<-#uZAHKg9;B_&76UHp18?$Nf(mzHAc(V-ff-Py3aztXh@>j@n%BxyVlD~ljDAc2 z9^qkBCY_)eF<7+yM?cM1??lO?7fMN4lLCX$jtT{EIgB3( zdk(XD8oRT&sg3DPA(_`Z0kM3?6<9vMm&_y3>Q6`p5K+F)`!;1wBJHu7n0(w|;BDl< z8w~F%OuUOj`dSy^hHOK`TdJ+{>FA0U+UfBLd#LvAPOo5I(c9Fz)(nNTGR-;vqe6&t z#NFp4|C5FGq1?hel6!686R+zAT&mF-Mc3kof*)XxNjf5=KrIqnrM$Iy-s+7B07_7) ziO$oW{muDAQeJ7za1zn$XZ2-vaT4|}N>Ksd91O(IQOJSyK^2XQ2j@)36BXZ^n%?|q zB<6nD&=EyuRP7BSFz&c2^Y-UvaqR9bGu!+bi}umB7o?qBp_Di{`o)_f==-3d>B7g~ zwhfFrd^IN2>*CfnF)bR@^>mqyN?wrtm(Ir7*LZK-L%wdf_!ixWPP2ZxBBnc(EuHVN zBbnqPu|4VkVoH#Xf;GE|w7L{1&% z^40E}R|RAyq9-@LIo5iung(RN>~qpzQL5@oOnK}qW;0(^r-2~cd>qgs+1Pls|E$(G zQH_vxDkajJ@64M3X4mKkp|ZOgMJMT)Ggiq2R~m(v2%!H+%JIgaG_<%(l7xuHqFG=J zw#aldTG@V~$DWI~Cvb*FU(CbV#57FTV{1qH zk2NT(80gzM5YBlp_cHWu`q7zu%40f4C7O)=mA=QT%Y07@h9p!jJRN#?-U7ev2=Y?~ zTBNR|BGm)T$VS68Af1iB#Syqxvh1#{$7a0U*6xw4_egG~W_M$#IOVADtK--`ag+|G z+D4hche%V-H@^ut$A6Yx(WrNKY<=MJF^Wb~WlbKPisq@9)?dWv866X(IrR7zL>Y`{ z%ua3%Vszk(=gK~ZSM>b`(q8e7j*V$yV1uqT_r9QMzjr+;D)N}H)Xa0RVjZs=kriq5 zPM4A%zN*azrRZtcYB0b=MV1{%-~V^lnEz#%`7irp?K54sOKyL&Tiv}MFeD{{>yDes zi}#qBBI#xV)&;im)peLgdxbUE!&9xL zAbdyEP;Hrf?2n4`^K;x*14=%XQL}4c_RA>Qz>^yHx9OQwF_Mnj5SzKS{t_m&kAKwi zjs}dA1#E-Hq+~%?(B~_bKMOeEGh3D@@I$4*n2b(m0%RaKaUTQ;gqF!eEC@wY1uIT!FI@;sU!@xlFqkIe-{PsAR8Q!M%3NOH_*w>%KjsL-cT71eLrKd2R7_VPVBY_T+a zR_>T0_h0tD{LP#4zoP{=$*#b9e|isjrFQRo@9khOe>IC%j)WY&b4T!i%A7|WKQ)LP z$mr)0tiPFWsH>Lq@@ekM%+eQe>7>;X-b6u+0LJqw5mHefbYaOOxH}Z7itVRt51&@h_b4` zoNl-#t{xY&k9Ysqnt%nuWnZt>Xo?(p$rE%N{U+BSII=c1~E;zED=(gCgX)GZ8aH)Om@W$mVk0`c+sL>p-rjr)oXRB5wqOzsKQ0GLf=b@ zHhi`b^=w5P&67NReBRzYt8K?^lFmWcUonvkm4e@GaP5xRu~@evZ8?Y0e^ElEj20SS z0~c(fj44>jVe|OdlX7E1lU~~OImbtP*`#n!H@gA_{Wz&V;XuacRsTCbgnmvhDa4QE- zofb(G$jPG>bq;Vr{w#!O+yFr&3OOOCtU<9%QQTwxK|LVD3p`-<0z|c7{8(wR#=}8h z>qzhYN4Q$hMX+NIHI%jEFs`f}oAp8;M~>CS{N4p5NbzhTv;C~6t_S8Eqr+`8^tIR_ zwdFOyg;@1IU)8MfQBazAm}5Bt?iu~^KE8CDVte8Yy#x*v@d-S?_ZBqp7Ih;Myy~lWfU~w zCDgQR7_o5n+jN$fowt$M?boU_!0gEXW1W9P352#k?e=zec=6-7o`1rV@y!(?o005% z2yR3lcbHK~t)tELy`e%iN0DA&fZW;#8U(42C_Ml)klCqPpOi#gjplp{8s-~)|;RV3PA_)*Aj7tle~A^ZY1RCB<9!H zPuvp$-BH*u%kswY$LvHc#d)d9W7eis;zra5JV^p~xLG_ZUPJb|f(o zf3~IbA}+YZ&1lf#Dg-u(%a$b;8-!cDa*L?z zH^?YGO@MY_XKU#%Xg2 z*HDfvi20(on!x(Sx0#PzQW1q5t3&LvKhWiSe|7;w z<`l#k2CHyy*8<8+-iGBo_z&)MvddhED{I$xvB z@cPp9GuAY@`=_jNWDLT)fpUY$0^fIoq}hW2S^o3>!8blrQ=iE!xIgaDAG8TJSK+pq1WB0G62R zhNALPayK(+J&I@!GvGfv5(5c8%o5!+tg-prvHN$0pN{L#yBpWCNHvm?4O$*$K5#IIiF@YpX#`DoKmVS^NDn%h3)67z}KhuMR|lB%tLX!2G=!UP=>v; zS7)?=Z5YF&lj|0W^k2M*knRY3K}SK|YTuT3E;HgH{N%!v=nU*ZmtL1pqCr9Wvi1HQ z`ra?IZs$=sD|yrpT&kV@1PmC#Kdu;cX=;i)Z!5!!J5FnMA|yIpJ%r9IOcEn~+n?#E z`UifSr0*-ZBAnH_;`HP+J|EwI!0&vCOsjZSu4k`kt?;(p%)WSA&ah^Us8IveAICE&bhQe(x?@nNmTPX=YhoLK_&vaRPyLhV}5*mUsm1xMP^ z++f|vO;!))Y0xq|5D#gDd{V;WPR^58cgldGh`?#iE|r=j(m!(D^cWj$(Z(O zk(N;4Jl1HGvLi7oDnK|SDfQ*xo5;VzqW!zA@UI*1gU2^N5Zn?C@co;Qx!xQtREM>H zxMg74yqtKXSC*dXHw8)OQ)_)KB-q!Cn%#Ap0f_+$1{y)^Wa7CdA<8EM6uET&Pc z>|w-Ss%QEZ@x@p-^zkf?hl9@QOG0l{5_1{uo*l1)BV-Aw`I~wpYI8Hmc}d2r!|?_+ zwiOklqxr9tiX2LCYMK(g`YkXwY1U2AaBtTm4<)L641q0&3JWXmO!`Y77AyMLBL z$#|(eRp_4q_9_O^lhj1s;(zfx{8~->#5{Rqi3lHT#|^hkM^Ao5Uy7uj`(;S99^ZgJ zE|>Z~ntF=_-y}>b4|Z!`(N9rTtXWi$aptn;n&?w1@5S6$ddL*OpFJ zqFH7|__Dv!@#HB@l&Zf6ClBNm5O;EXJga2wv$BSv-^@{OcD>j2Dz0GDo2{evZqLt? z_t7Y_KJDG{z*6}SV{;_b=VMd>UJzMBJ(ME@!1qP(wcSc+zjJFFJ$MC<(kr-VrW;XT zgqu}-1UA8@z5-3ENIq?*Q1AKuhBizR>Epm2)Mhp6FcVu>nqvN^0o9wx-J?1JB)nU; zv7>qg?b5&po_#LfQfLM9D!FW@os zLim@piNOhaKmODQ?h7bEOIz7c+vT0xK&1Eia3fmV?fn*|{?rpT?Q7eTyE#||0r@Qe z*cRL$`k_!sZ#3D63bmxDx<~-3JHFlHeo+Vrr{l>LVf*iS!TvKn_vWoD8djVIpkfF$ zv%}`|o)sZ#?EB4^V2pJ=MZAec*4Tu)#@}|!G)B#3c+-|@>v3{+hhw%YGu$u=v#qWc z*X40v`McZ#@!Uq=w*5Bx$zYWSkXVfjhyGlpU^jyF8SPE7odFamGO5TDbf3X!nkn1o>KgkU&&!2HAONc`CQ|!`^RQCjYKLxKYHalQ6tR$ ztpN*2cT;qVgSn_rWWRQ1`dWG_z+;=FKzx=gP>~9*Ua6VZ8_UYK@~|;%%Vx7FJwBZE zE*{EEWm1W&95U~ruCuyumhy}#>jw`!?d-AxLhlvT@E2v_ku&An;o#7Z0p6+DgzW;U z5}_&j)XNQSV8>~aW9-iePFmm4a4B~E(!Y{e3vUV;VhZjX{Dm*Oh_M0frn#n8as*i#mx6_@S~1A@sCL z+_9%Lu#zB&w=|QgVZ~KY?(cQoOB7&Ufb+OEEC$0%^mlmo{}5OB?wxbMm#(I4=D+ET zUpQ5tmUhlzkp6&7DYGc#K;mEw) zuw?`H@5h1xI6&|_gH<2h7&}F^jaG^NEh<6Jhq%(Wy|XqJU7n_AR?g18HuAXO9^N#& z7Rq+%gL9Elq8h@hHoVjIBw6&T)9N{%e5<`A@#V$2P?fkpY5z= zGgjJ2I#R+x5(Sp9lvHBIgG^Slrqm6%G4NCHX*mu?0(593&1)m&mu9i9@vMMM;AC}v zj+r+?W3kFOWeZq6f&g7V_%W>I7m$Yy713^+fZwbQLT@t5nTzX9E~YE%`yU#%t00N} z1prxz4k~wPz|1{yGyPyGk2)aTAbA1sQt?_pD!}uRcx>F@9s)EV46TIM+&~U34_FX2 zrxbxII=8V*9^f5(4#O|xVJvj3@K2xodOrtOnJX&c)(@ddv)@$35EKR@NLz0a2s%@O zR_X?5jOq!BMM@Dav;K!W3XSf|Tt+Q^A;072Gw}WAGY>g!H2^W1igI4g>An~Qi5w8X z47i^FA^5OE#=^F0lb0NLM#;yD)Y!fX(ymNT*KLHlI$BR>GrhV=uk6wEE0!tq;%qEJ z|6I6l<{VV#W43dO;hv3&om?aJbVrUr07O1Gx6_r70*b@lgBiQY=!t4j%WtOvUBQvC zsQgN(x*=%WUIr-PQr)`DVVXzA*y<+BU%EZV-n1i?ETWwQ&PHA;nQhW;YA>`++5o&d z)!rzA%+SXvPR2Q@Wg>h8G&Tr-7UOlA3lA`p??&Zjk^fO;NnP~D( zX-B^2|Cv7W*E8I|`4twrZ#p>yyd#J6Y81IMi!?*Ig6cmPyhjOZ7LN=en2sC~(DUmC zLCC#>b(IkJzN{y2+JCPXPj?A3gN8F=tq!8G<_W}8uQSDZVe3JPc< zEp7e^nAJ<8aMGVygx9>&pl5}sm(I%BnH(_5eyh2gHq)Mu`;(gFr$~_>3iT`S?e%$v z;;fWxPOq`Uyx(-TtL4KuE#wh7!Wt)PE3(JJ)|SfaQp+-~*}&m50wh$S&?P6XucMFV zGd?vd9lixQ*7mi%g||>j4Q?X!j<0Kps2(g7z5_^_GdH0pHlId3$|Uci@Vmc|Yax=$ zFb6FDa%Nrt2I0vTP4HfY&&u$521oNn^RnT2*FT11A<4WSk*kJ*uxby0C&Pb#+@>iL zxx)bTD{j+qnV<1{#;ZAZ*pW9R++Kf*Q_)S9@?151uQYWh6NJsNJ`6G0+NzlQfD?s1 z)tbIx( zwQ8N=Q0KW6?8oZ}4qdC7l7{&s)(Gn@X?r?GXow^Gx{v3&dpQ(d_&97?4NTGKl(Me( z$KF|E1k`p5$R!`f6dQ??>mjL4&V>ELTGK-T_SGG3oW;Tp=6R6R=Y&W((IszX-h8=0 zd1(QR0(#LfG`^Q&oCY=RvBRo9b4C5Me;H3ZBP)lA#T;XWKWwgCxQp@yTU=i9QT0?! zR;A$(Y=YMpP6gBwwpKvy1R2_VI1Gaq*VwB?9ErYP^>y9-sh7WV=+z)XJGq@g;LV5h zX5JHjY!fFNr5M=yPt%xR%`=Tkyu?nIU74Mmbr&PIcZnXKNqw7RzbL%YHi$j92y)x@aWi=<#@Q*LfjOv^f(~KbuJ{%HXzm-Ph9Cb58lO>L`m=ZwwBg=6>ajj*a`Vk zA_IMyr|d3%2vY|RnUgQrUb@&v1_{3h5!lS%CRR308@S0^FP5>g4>DD+y>XJ`n0WE! zm13nM-TWc%)g8+(TlyT8d84Ls%n4UbDY?jf(yv{)ef7cJrE5pWofEFML2V4aHRJcM zEERP~u*}z^-9y@tzJs>U?)Pd=R2rrSbXYUYtYQ<_2IS3Z*cW!+YNR zMbd%}E_00bK!KVCz&MQn_5R#0r^SyKUPUj5#D;$ZNz{l*PNOW3+v<;y=o-r(bj50U zR~s5#99ZnJKs%Tw;T?o4p&(5sJJw1_C1&e05T~q9w+I8R?@zIvmK%P<4b@$y+col7^4$Y)7IA`OO*d zbcQkXOJL~ZpDr|RNMf?&yeq2h>VViZqxW8q;us`-lYqMAfIQbBH|@ zpRb)r%zhbW?bg?CK*VPcPMH-D(U&1#?*paNk#PkV7~MvzFU(nIn$^grzM|g&F+`2E zVZ3(fq#SO=45H|xd3kSkmZRxIC>nU16i)7O+L#x?$^6onPkKHSMfBU32yW(wAEXl%js zFXb{2{n3r%aDVtp*>r=AcxWopJ8yP5BdjA7-cXCD zbA-f8VDvg*Nzf|&A5-6)E?ogK&m4U%g%mPC&|4VmXg9j;=Gy7CBEx?I4c{=Sc?B#d z2&J40MvX_(t_$fRYv>9)%KZiT)ejv^vd0x~ z+a}JDbevGeQjOm_rZH?3efPSMDbJrczqNOq?T!P`cw=dSUt*E3NX! z7V~)Cvvj=9m%+?lsL0#`#457I;HE@sGeudVseGPeJ))<0#JK5vZEeud_GS9WKbrUy zUj?Mcg#FriL_Y^>GM@3qypIE9?`_=0e>_4(~ENr`uB+ zeOq$C-OeDRC!xoxmB{DxD2$K>+zhJ**IoLb_?4H>Wm0cVKaDM2tuSiyl;kw3RN~dX zH3|gPaU?O(n6Z-jC7R}EB@;V!sYIjm7bQ=Fwrv6YTAjih1Fl(<0rfxp7iRkmP#hpD z*>C?$xgxG;JRP@#cy$fiPDJ=(msB*YAUlqLpc!6KR*rvExz?bV22G3<7KDC!--U`6 ze|z*n--D*SULpVfK&LSBDEZ^Opr7&bjyz28NoG(6Gj?W-9VX}mwrUpNDf4`o?J3P3 z&`FO#yQ|`-t$P&dXLs~rC6UnjYxzRU-f!afU$MCN{XxwBneupV>ED~k^FO^c8Ty9qCz0U@n;iLfA6 zw7S+dd+v}p0=Da8%oemm4a0~S&*;j_daVK(En?CgitpG%{RiExih`ZaqAQ9N3QeNP z5lK1hKC|1R=8b$GB`MOT1!GJL|H-g$bMeYh$2n^ojVQ}F_QtE!&LwX09L7(7bi1XI z)!F?Ze6R6&os@@3o)1l7e;m*NKUW1XWjtOCcp|3a=fg6Yvgg#b5&osl1{|0U7ZZ+Cg@_PSPmY8#Q!GaUy_#iM zwK4+KcFg<)VUiS#bU(yv8I)@?ZhRLNn+VmkK_{K^H5&P30Lqhr+DBWNcr%&a6r>y`wjXzf!TUN`^3V;yTvZJ8$?ABy50 zJEF`l(yeK0zW4pE@qYN(GSWMbWdPz6y#NjNm-{i111>wTx?g5Yx;h-TReDj!*~)yb z!f_fci>*d}99CCspTBiPPYff)H;F#d`)2G+LVHASK}LcfJ-|rbYSKlj;3QdJKt4U{ z?MMDb!;|TJT9)HEx`CAgfxv_%a+tosM@!zBduZC-@&3wXD|~Yj5^3Vz%T_8h@(6_o zQ4CqSSI(pJuH5)Oz=Yq?J|S(}slc~cJAQ<>WZx-pW9m1Tzsb>v^hvbC(vDr-ZIgn5 z$@O;v|FXd3U)i~Cetq`)9Z{$3-+Yr@qX%G(UD>8v^!~P>4a1*p`{2Mbw%sdJF7Rp2p zD3`(kVj}2JuKglq0-Q2X?=NPw#@fJ_U#y7xUIKzct&su!2lnf^9n*`Lz+RB{V)G|@R`E4(V6Lu{7M=Jw!iHem_g6{Rw&_+W0NAC>N|{~^fE>3t^3fWzF)p9dR^fwW4ToE zY+Vg(QpTQ#JNS@-Z0WGaWAXApGiBXA+9^MFVCRfF#FI~tg9iC>16lHCfUpdshJdB3 zNcDVkUR1Bte$MY__TjuutC$`za^MAe)n{+h3WsE&+mS!M{)#B|P_2z)NlBF^!p1fp zVijy4Qi$dnV$ByPce^rvITfcUK zHd%|~Q~;}Cfxo!_Csdmsw;W0LiSex!eZY)buj(6k`mGY|dffYuLCpovM)Kvmiq(V( zROaunm_z7$@e^T>Iz!-!X1Q@iS7TnP^vsay-H6%!zd`Z-m3QV}`s_Cqt{AX7ECuyW zRG1Vwj2NddEE(QA6}$+{aq_D%qAt*Y+fnBBI}=6$ErP~|CI8QA3xAw6$_Cj3WI~0$ zy;E^d0t6(-K)eb68Mvz;2gnkB}CkIkv7mI<{J=~ft&jne#@i5e96Fy5YE*5hy zlNYH{H6Nl{>ifmmM@oPB^522=A^;SJ5JI|-u)|8E(<&;|T5jWn5XK%*j#pJ5Tum=t zK#jm_i+;9mTw_e@Ug&okClLLBUdM?P&iUl4itQ5Y5fEx73jE4|z$YduWbj$fOSFZM z3*eq7D?q0AU=HP59 zQ}C2=e{!oA%c4=BXjeVoZjqX|!HZmhs5X_3@z}l3CObOC;wz=Lv>)h=)Lj>A$MOVj zV80Kwtjt)ac}Et2YY|Do5@$$ZFzsld6c_$9OCLk$n2ZnPqt9a%2Y9{grA@&QN(rBa z0yj#D#y*NX-1l;;vL51HEzMB=$jzxHPo{>(M%`e%TJUHmj^?5-%?e*XILMZmO|h+` z0Dc8FZJ|WSqSZW`o2YFU%5%BeOLVLvuf=a46Zo9L(x%JlT}1=6j^dzLy$;YOUO%vt zqxFu;0~pA9R4v7f_d@R2z>9jq^!$Msk$F-{3c!TCo2oBX0=K8eRzg-`bsCmOszCU+ zWj{C53NZdPi5xz@auYSZcw_2u&Vp2L$YPa}X6|dkqKdNH$WOJ}h%?7b*7*brZy=i~ z^q9!!8}a7%JmVRy`n7x9#d*VZXZ5u7Nv@;q67*NqE|d+~Z8iYFLe=xnO8i(SY(wBc z*1MGm7X;=7ywgPl#*(-s7le5FRKS^?XS$yw%o+6e5F2*EC4SIhs{eLzw0Z_2~1dR zpylEImSNC>Wj6RTc^K*3*KsZ2II7;XpKwi7 zXy@SP^DU*FWW=R^f@dDwb-BjjubODG$>d*&H2F!hdiQXSjpAeF=s?`sIFfc zq>J*XC7V*JmYsx&3}8y)N|&BdPYUY_if(-$GJI+GI9&ILX6cpDdiXmu{mWwS8_nr! z)2c*!JqlcDMUVb;yl2K;8a>r$#1|0p$t9|O0^Vv-oPX_SHPZ!$T`o_JLZx+uk`PbxNI5O>a zK3AFU_3S*SsNAjoqW-(CS$B>tAY(=AjELu;yq~tSQt?PG>P8dg+W<#) zjs#)T2Bw5>ab2cQ=I7ZA6x%UGt>xJ8pf+2!wo59H$FVe=jO1uHg%64oDt->XJL6w- z_&C;iq{*`%)7*ORdz%4a$W3mGA+(6~xe(6R+`WC7`PS}$sk>ilM8@+Ydf1VF$#M`& z!?WMahh%?)DgD#P{V&z-OIP3P zJaE!0eD7gW$^X|A(u*(8PTyAI)p!8UEh+Gqf_)WkaBzMm)9=HREt6Mf%cQX?k_NfR z(nxW)4FFKg;BPs6B?TZkD{{mjMl;=oZ&QztO~t5^0pUD(BrqL_K3WD-c(9oG^4ArN8YoUg`w7dt^!$;=18@u{fyVQ(I;R8yAAk0 zCCcfv_796bych9>YLA9MjBR}J?8Ie2YwNzT_rslxwe7loKr^mL8u|@{zZ4qGhk>F} zJEnKkax~vzOe(BCh!_Y3+{o6{leF9MkmoiPU?;^PSnDHY$zx|Pe+)3}E(RWYZLCv? zlt%+4Q|@u?fs4nloqb~k?uRWS z+dx|8!{cLgiEEkW6b$XvfuY%J8Lis&<;z?J!uxz*!aqm23w6QiZEw>gd~X|;GqldH z^v6#QqQ0MC==n}wa}Ksz*cWR?K|6i9eIi$1vEsZSUUcDiA2t&YH#asxpgc&RmKZ!U zNx&N41*{Gcm7_WbHcli1P8-uw(X z8gak$-~)T9wc*FSPe-#PKtS2V0XINYl{g**SY5Qn1$TaNA^Iee^*_hQ2GBqLV!Q0x zlgt@7RtBXDd{rHM_kzBAC|n0BNI2l~5K3wR38gjwhCf#6V6@lP){0C9Kz z`J=>=7WD?7H$a&W`+2Xlzgh?g?TR&8YM4~!;Nq<~(RcqSxcZzIk1wNP7@d?NK^ zl24IT|2EJ#>9=}?6Wv0Tco!t)==iC#tB%z48FCU|N!c`g5a{2gzM8)8-;wtrSf;V? zjNl*N3~YHPqCtlGQty&8`7N;N`q zPZmNdj9N(b5MCz-da2ZL83PhF=fAJ*4Uk%Bbu+yeXOr~`!r}#$xI#ts5 z`zKOYm%_@teoyXmif+Me;5Js-?Ad2IX%bm^!qGx8!|sH^v9lSqBg|h@y(0*wyy@|p zR3baB?r6q-AVWVimCFhjZSqo76zcjFOa6s-Ug;lS#QOE4^E>Bkug*hEj%CU&@Y&8< zztcuO77#M#;OuC>*bN@2_V3&;A#WXsCs81%EcCzG*LKIAliVs!+w}A1Jku1Lu}XN5 ze_@L;he=1a&gZpjoTiYD#?y!!5z?jdS2|xt`akcsOvno@EdBqOd+VSo^nPDhQ9-3e z8l<~hav|N_sf6UByFrl>5NQOKbT1}6pgEzanJ#Q_P_dg{x4UFfBGF>QGO59!v0tM*h2$K75kx*C9nO{(*oTJ`1zel zd`pD@=(6yWQ+= z|L9!Z;bCLn-W!K(wh`fi#x?jXhgn z)~u>=e+Er_*12~&%_QTo2kTbo0h1unZPWqZa{Gb+qvnT%q`CCQn@QfG7Pe%Uyu<$c zXtn^8_xxI4Rn9i;nmPNOFlTZKEGc978NN>z%#Sne{%-3>4kRiqi!62K0_Dy~(nLHH zAlObmWX(l>2fC>IHPQZ6kld&NfDu+n{>d84m2`tTMe%vN86FZlf8cOZ?&*B8Y->j5 za5?+-C^vV8t8zavIAHOjTVS3KEl2+1BoT-6jD<&9Z! zD8lCAt=LBZyFOmubmJZYyJS;5bNbC%l6DMiG2yVdkdi&YUxB}FQQ!@{MW62kF%S5{ zYEWS>kL!80br^OCP3tEeW?2Ri__F0QVD687l%+gE7YW>t97=CeK*NF&Ot#_G8oNW4 zVElrZJIk|IpRep23tkup{f{gF+c}3P0)Tn_x9A6SYw7C@9*@%X`x#G{|LKqRKb~d( zsUIYqT$GII37{c-U2*5L1VRhsb<+``HFNJ41Wlus0NrAiM376;S3Ed5J)!U!tOm*y zLrl0F4y?*#!KSK|5?o{*aj2Tq+2jj=Bo(T@7MJSPNcQc% zu@H78_<3n(@o`jEv<{@CBrsUf=jop&9!@#GXh)09OmUsup5lG?l<{erpss9{M8i>|pr{Afet~3Y zVzc>yj}OrGUxp(B+0)|KJWON~-`; zyZqVIZ}oW2I|*U2Fa@!~b#$kj39t*P^+UpJgxoenf4Hf1#S$8hty%}U&VGbd%X$6+ zT3GjGpI1Z2zkr<3pwcaVe8Bqx*vu<>ulcS2C>6mpQiaPPUB}@?T4k+u4kqsi&h7KT zTBWz0AV=W@~mts2`WbIwUWm+F}jzlov1z>oq#kV{9lO1#Sfz2g;v+yTMI^O5QYX6%9eTPbo<--Q) z<>F33X;oO0y}`IKBE5+^6cjC~q9^yREuBYA@-09GAxod}r<>PDEf$y~o^|rApiJ0F z{)5&+ob%}(hb;5VFB9q!eq~m)PM3L^w&CIDI%Mx}INoFgy6tu*m}Wq>vA=MA31)-w z4fhZm2h{NNIty=S6*W`@zkBkFqZm_(ESy~ug$ubp{8otkJeg(AeTho66CyHx8+?8$ z3OVuTlbf`^mBiRD@vS=UdDVzUW#w|ygJ-$@7wZ}5*rwZGY|2CROq<9Pi~stTj7V!Ou6 zqyngqG)QGSC4yiP=b6^qqO0X}UDXP#+Fk7k7pj&&gu?4@tQh>IFZqQ1B{Xz424603?K#;G~I(;Q2qSTL0-URyynVKu(f>J>3_VdxBQPye|;0 zb5Pj`GI@dWhf&W5UNwvO9VOfe>Ve7aYqTNOFu=_c+4)Ud2+Injo`_mI!I1oyMWl|i zjjH%|?zvIP4k=&Kzz)BG=cE3svV2ufP9FreVBh)rrZax{8)}xOq<=x^6#)TBRg6%} zQ^KEA(o>E=J*|}|fvb5n9o;luDGd<PV~x$qqMO~rd{(T0(x5oBb6p4NRPQgT{Z&hPrp9_39*)+{_brz zVcP%?=DV^oX| z>DOcFdb*M=dfB#Sy|UH;Cdt30vQbS1Dl$x*H~+B`IGzQ1%ug52c}5#oX?k+#QZdit zfYV6=M7St4AsyG<#%|Wm*jk>i^#OT%p5EDB-E9$mQ}#Ogugid*H9nYQQYb7ICUQOb z9H>?K!4hUGjhfh!gh8yD<)P^G^ck_M?pRPJTkpg~mjPkevMXWv znBS@GOm@<0PMqZ{@XO9~UvN=!DGfrPQTR_-q(#)1@uMwZRC!h0|p zA3AW1r|ki*GXW&Ixn2#A)TFgFEYwL4;-oSln#Ulo=|X;*R@shN->u*K@DSIhS$>3z zTeH>LGi_*{22RA7L?@yZ6l>{w;pFiunGF{6guv@x>-R(Mg3Z*})#UMzAuuBfL-qM0 z+C$M5Z$*6H>{OI4l9b3TPNaQ*$6}}?$aFkib7dkMkKI{q3J&X{=x<0BAWb1#B~!Vh zN2F__*Oa-iv8Y(0q=xd(d5&PdA9u1#ejfHt8i7F=jdi|q$>*pQ3IbW>&|=f$SkKZo zM}0#yhl&8)h69l-RJ;?%7>xhitQ_=->ehBYEOKH02H=d89+!E2_kfoU_F5GvAZV&{ z7BS!Vb-t|7OM1EC{Tkc!SK*c1kvU-h2syS*%tDff*`;~zh{}MZEM(_Iu=bWmiDbUd z1L1R{tx4t*K|(Lewe`Cks-1KN@PR$$eY=E`XB)6`$%3$}y&7r6!mNz<)D@jf=9spV z9kQP`a@=%Qm`fGR2-)<_s;;>2ogsGFW|Wjf$mFw8QzvF`IS{Rq_U*|m z=$`83V26rpdEE-iHny}+nivXpvi0be=_N!yPjIa~lN1C4J z)F>PiuNWqbJ4FJ+Et`k@t|ZSA&5Br)u!Xj>L_6s*p=1`qBglT4ra1bW6^rLAa3_X1gwxuh<#a4>4qbE$ibx=JzXT)Kj#_5uN5nr1U zgyyzjoV6M~Ia8CQIlq8boP}elZo5~HnzSnzJvrRJF4O8{fkYjgR=g$PI%YP-Lyxiy zYovNU=@@Qq$U)${CUpBQ#ysoS{V)O%l!?x_XRU9`_8^-=ECgZ;SO#0qBbTSTswl_l0P@uuo3tpnZTYoJ^gdQwDzkJ!wKsWp0AA_5 z6TfSDas^LdmNwfQDcV1M{aAmdR(U8ij#^*BcB0m&a@+VWQ_XFE;qKa4g<_HNgaPVX z3LHRRJ&ccBN1(<$sS5bZ=?>ExbrxbI0?l|JA16qoKq-6sH6`e?gBIz6Oh)D7$%=*1 zpx->X{Jx30sNLhmI-h}=Jx_Qd(azKQ$Eb26l-cUYpW8Z_1z^cY+j2<0ZJ%0$QH^v(X*G`kr13BDu)FHl|F`-t0R#Rp#{%b!L z|HR(E_9THdEevQqR)*i>_v7EqTwZfORij)B`PQ}apWrpl$3|;B$`nth$j{J)HU+w7 z-lE=A7`#MF5i00FypH3Q_ltZM)Mka~S@kq;8kGDiYRx=&WCGp66Z6x%v-M7o%d?f_ zACIlEYc5GS5AFkEK5a5F5%AuOC0=lxa9mO5GJS3&b%?g~BA`Ax1@T$?J2w<<=JH!s zKkY`KuezITfJl^#HZSE!rbI^S$sRB%{;p2^s=7=`h+Re?-FvMPPYyc-o!_c%$ihjE z)%aiC1zFr#!$(sbG)$i5Jvd-td$LNA<7Xuc?Lw}P0u>pSmD8pTaTr|Ms zbP?rX;1h?c4iH>x9uiOaE1v?<2g zEM0Q=;9P#}6~lM$k~89Y5HnOXu^s@t@H!+t_#P}ejLGy4#DyAJkKr4cQRyD#EwZpqxydS%fk@{F-cq<++aBVEDm>;~JYwnaB`SRMN7 zxx6`D`TLARMLx^A;d38DGUV-)FdC;|5<3R$uR|r5KyP;)bm7;kvV;BM{I5FbOdZtG z-pc&OeHEe9SkP49TRGsFS-`Dbpt6x6bNtt$b(DIWr&2^rwmWKkT-;tfbT6~;L-3D8 z)AxMCkEvcI1&vriWC?$+ePYuTo_`yK>J#{_l-11R*XBzir1CSn(MuF>LEJHc$K@HP zAJ6=#oSL1rJ9(2xQ=UQu4tPXwf4~q^kS>?VPzSt-Nyq*Hzs(5Bd6stZdk_D6zKo>4 zcSv7r(kD$3?+zZRqHvVLcTst<;l%;SCmz6*d%Aw zBto`f@|Eh&Ysk=BKl3^^DC!_)v(5e5kOHwlN6vr+pEA&qxP*blYN6jiOBr)r*D|LDFh8^D><2hP4U880eJ5-ZLwdIMlhLF-X#!|B2cW4JZsecdi{RCU5(*Y&bB zo4edoDHQSdXC_~?pq=-e?;>rUeBv*SRVAg0!p=+VjThTM`lbbRjf%77{tQ1)=g<^W zd4NAQKJkHXmTwPgt;3j@ko!rbWii0C^MIMBAK8~kAr?^G=|u0wI5Qcp)r+TI^Pv=d zLrB=|h-_c*4YZtuL0!Uet2~3nO5;E<^3eI!^ht@XDLp4ur#XyciU6 z?LxrXj)^r35-8eMiOO`bu|3m78|ro79XGhktMLfvxqJF9wn%0sn^FFF8Ha9hkO|K? z+A|ctmOuWuyOQa1r1Hs~h*0FD{=9J4{>kSLg6V;$CIOghF(2n)K_@6oePpGQb!>kK2vTw&rXHyt_p@~1TFtrSIPBW%%# z-Jo2s%E4HzX0W7NJtF%e?KSNEO$Hn&b-SkNSPZwGTiX~F+Kg3}lY-2nnbvm&7HN)u zOLU5e_PMr9ku`QSK8LFrftUqE4CX%OjUkaAp2>c2>s>!2T)AX?5@&h(7sABi8Vu)Z zHv1K@fFDhZ)#{LNrFiQV&&y?l;r-zW)LA*DZs7BpQVIQp#Y#gIKO-;Jz64b&vP_a~)&z$9;#jq*GX8iaL6Rm@brI{KQo|g)QAeo!~QD8}SbT+|PO=-84L!#fd|g|P zKzYtUV^0>Zm}0)xXtw70!+kTB>BCI5;`+Y(8lqCt4+w?ye4Xlt4K2#r!S1qtGMi^C z3e=Hd4(aYe$L>t(D2`h=5RSmhlZ-R(um1IM#fXQ81*bVe6NbmVsAf0^YtJ52CEeUYWbAle78|dO zlF(56HSyR853b+|fV_?RLo#ylyvbCa(tC{RT)R7i}E%(&Hf8)-S}XiuJ~Ep>+)W z^s`zHNqxkL0cQi#p+2ER7?v~$4dBTGbtCHgPfHQh^>_swn(?SEFrAIDH4X#qqt$KU z!N#CcMjb}9uIOcHaCPV1O}J3*N7w#B-maFppSxVfR<}#-_5yt`{^o&+qnyr(#g;A@ zBNE}^ z`j%OlZzTHrZqzGV8S>=1eZ0C$EoG4kyl*kL5(Nm>mkPlps8JSpQ-L>~r46;61fc7S zAuudAA#SLc6#WL;Qm%y1uVZM0>Yt_RYF88R*i9Snflz~_Z*BV>O=@}w&OS;8(Kj6* zvT`G~Cm7?gNlXSta1R@<#gQKo55U+VUhB{3t)1k&^aKn98%d2r`Ru{UkQ|UO zQiHXn>xEE>4Fy}YUR~tz?H`?1w^t1`pOPg)pUNNRALrBx7VE$5yZi!pLc_k*fdW+* zm*GYE{Qjj~64^}Vz{FC*4*T@%a z)p?~!zpWC>gt7aJi?x|$YuuZ86`g)9s(uNk zB~{~T>T8A4V0A6);Hnn}0a>@7_}!m{!8Hc1m-(FVyv{ev>_bYIv#d;8{Sref#Xh8k zVr;w_ji0Hx&CR<2n{Sd|Y%3m{w`;yO-sJV$mIhVB3ismVYHf1b%?~Gb=3bds^IeMC zX{GREtnHMQT_G1BNKLfSHEQ!lWN-ZNc@IeUxH7xRRy?6NPyjxS{@h1@9?<5& zYS?0&kE>T=`y_J1^71P6Wi<>nR3f2qwEL{p?FqkT=ri6 zT^O8hu=_HkDxN^|GzK+PbrADG?^Y}Yq%fdH%nfN9Xkp>AZ7`mT>fT5E1Wruz$LB_F zYjnra;F~>-aW4<{jTzoHOql0e= ztZXd`$-4V36@6qN?@zBsa`Ru-ZwpEMZud@$`e1sVX%1~hTf7cJ-b62-`)k#ZBu14q z;J2n}M~$7#$>QJWA5N+(lKP6;fqfAz#@e`RKjw|Y&N$0%BCxH$0v~Ehq{NC~btd7i zVd<%+3g%Hsl_`W!h+7tZO?XR6#{?H%_&zV$D~zkUqnPnN>C<;s7rVo#mn<4`df)(};?`mwttIk+_-JjIyW ze{B7M!zAwFsaS}LXB~uf)W%-c-QYo0Jx1rl6`UJMkBzU*_Xg%1P#(D(kc||1YP;J$ zAUEd6!Ap?L4)5i_Zb$#cwmL7Li;IdJ*6Z9$W^W`3$5f&6!zO0Zkd2n+YI{QMKVCTL za*Bg52xkt3T{ai1Qz)Mu?{xG*u58^<1)$F{HY0f#?nOCMe^^L{qMBXv&{h$Zwg%sq zB@KTiw@3B*Pn2MMrwh4%0CV=c$Tl(;Bf1Z5+dR^_ZS0ZqD)@w#gmtoED*FNZaE3Of|y%<^FMG+10J7(rxCmTNMJEBDq$21ng4P ztLn&rI+QbLF+ZH^#PY*J#y(fKDb}iQX54AC;X%VD`zQ|kL)Yc&DbhI9sj8tL)Jf+U zwK2r&GhrTehH86MUJSt}kVq;rVF?O>Xtq+??>b z=S7~iK1gcTWJU9O`*+~1q02T&eqtm(42loW#*dJ>0SJjb)H~)CBwJQ zXRVjwdCc`$IZbOCf8=ENzK4s5N@{}8-i;+oiehjhBiWWJ0yVS3Tj@cHS)@97hL~dW=LJ&QL@&b;y}N;sa@xM&u;vNT%=*8KSO@!@uJ3U z7Ehs~Dl*f3pj+uPB*&RUyN{4+Yb(dR<KO>AqDDZkZ8DzUD_I~cv9hWBu*`ftN z)~#Ty)pB53&Hc3P$(}c-x=Y}haZaW%7=J#Ym>j03XFh4v`Y2TlgtxeG>4@W8_-f94xN&9&A`48rp zNymAnW)KadbM{fF`MpY3+Ww24QmFU&CY!XJ1X>TTkFoAd&mpZ|ymE1Weo9J4Oe{>y z5NR`)fXD)4%v|{MY?#%oh_wnKgI79a6c3 zC8c(US1CWR=y9dX(Z>9HgNT6i78nJ@T^?Bz*o+1VxcUmLf+L0d=y$YT_5R=^WW!wD zTNF#VJwJl`ZCi#_B5C}fGKnQp z#$H1!JOg2^J^?L1CmX!Q7DtP?Zo4o&Tb*#S!2O|~C1){B6F07b2nVkn8GBe9C1Gbe zuD_P&E694gAd1ZVyHFJjb=`t(ZuJUxY*X6JqnPtHsR6DGE);WjYA&W$(?&r~K^oKH z4fcz{74d~tdUNU3&kc*;?W9LO>_&K#S(i-E))X#^;uk!j#w3V`l{U-?*}$GrJD{N_6(2mYt8xcq>1)v}c~BC*jD zyiIxF;ExYO+ae^Y0T473im0e0i=P3Or>8)g*bT&XHq9L`!0`RvnQuAmOW9{qeiU>@h`apl;=Ag=zx!G$@R z9=f${o5a~F05uRCD(AnCpUxy18AL*|d~rXRrU%jQGngovQTkD0kp_oa>Tw#Rg(4K2 zP{#gTi5dW5Af7QR}j}04LNC!=;<+r3C+A)l77Fq1$(FY_0rR z8-<1<7|jL=D?ngF@9X%j+Q$+J!AR>~OPy~xSsfIfT53NZ;|p1UrD6IEcbB1AEPp|t zLPzG9g}SI+>cES<;?i$Cpf@+yXdo|fMg+6JWSS=2U!boch(mHj2MXX-j{1Cs&^4YUXKxrt1GTCr^r?Y0^j;&axTEm5%gbL%WrMY-u_#Eu`&^=d;5d zbTYD~bYe;-(5~)F2D!I?B(h_YW0N^z9L=`90k{%(;QPnFEi7%Q0(S;RvzgkgZsj*c zor>EbUv<&VTBuX_gF%noNa^{O(tTr}m>k>0$dLrDIZRkQz>_uI=0SRAC`aK-Q0FHL zc$Z}5WIkSn=YwpA&RKrZSlp&yj29||W^==8Kd~!o*r+EtPB;^Z`k#z0DQ5DDfi0|8 zqb`vNpgvVHI_~@Psj;UuI(B<8_#HZgg%9p0KU*|!0oav=zdsTGTXxLt$?iP!Yo-kS z1w-$-q4gK?4GqN*G!PMU#>%y4o4w*UkdFi_5=FFEgK1v!4YkM zT1|6!FkvX1O^$wTu?&VS*H>Pdvb8tt6?5Mv(~l1)cOd~pFWw#R`*=E1M?t(-xub~$ z7M6rPma^#(sW1E)Mn5MSTDAg_W^bR7^`!g5LBrBAQV0L}35O%tx0A51;Qj`EJazmq zV^E+c2im~72IJwP@KXJbzVRkQye}kk2GG0!)!_X!xvSv5rC4qjFwud@e@;?A)1Dafs3=>sH#7W(Z`8%?Op42Z+gKT>(Ub{%Zu zmUYwY?=2VmH8ro>`K68W2Sp)mT}_LQmy7!EzwY6Pun2<(55Gd9h31 z?g4?dYp@gODMI3y_dEjLyGNX zA)>|S0^ifoD0`w;&_tBEz%bA82yKg<;5VIy|AVMhHnX89w^4C>rzhU51l-cJWv=he z2XW=k-?TXy=+mkroAUVxxJ2@k=the_o$bmW{3M~_eD%HyuP938j3>iKwirE1rrB!W z?l6|i3p4K8hict4S)2?v>y#C7nNHd$T7*W6yW_X1O|WaAsFLbUX+$c`Tvl4`)fX{) zPmyWeqByF^c8Zw?4hG24X#7Qz)%HzP_sk@;QWY%`7cmXFDhP15&s)QR&a-5TR zi>{Dlxq)BnH4s>AGujTr=c)Nro*#eRzv!vT#37>+rWdC#BER8K@3UY$OsD$}u8QuYQjKzn42EOi1x$s^z zq0q@cPu3}$k&ew2DF8+=^_oCtO)^Ig!$FkVAz=@U&FRczc@*S@o1;X(ZaOd`}St)30maScQK%3iiO(TM_TjjY7{ihi%FjXS8gtNB?0BwfbWis z0h3cR9H(^IVy68)mZk7_Y+KJAK^a$qYWl?4{FrN9SJl4DqG*Cp3&;jSSp z)qJnb+|&5=$7CrC(jIzzbl4^4b(Wx@ZBz0MVu;-giGN`eSjrBbn1Uquo_k_+8X|71C1NVa8UVl{n5l z>E#=;!OLn^oJarv7`ayeK5{!xcOlHv-aa36&VKy{`iwhzBc@v9o~+ zl5ZX8zu1i78CVXmjmj5@bNLuj+?b_~bt-+3)?F8V9lH zij24Ux9>{6uvx;DfQ9ep+Q|dOiBGL%Mdn*VN!245cFjZ+`@YAUWu-GjBRN08nG1y9 zy|bm**_P)nR$A)^6Blcyq4ZL%v#CGZ+#|Mxzv01)JJgv7=#0;1CE@@WHyC6P>pp@RBur1 zDOA#KjvoHf*Pla+clqx&4Py`X#!MvA{+A@sxg@Z?bI)33ofW?wXJa_r!WZ+u$R=6( z=rOY;u&Z^+yX8@ZT9tOU5Dk`XE&G4N)ts3jwXt#>Nak4J{W4%&`>JLLAHQa`B5!_< z1C7aZX7&H%-`i>LpBY053sBhy)Mdc^s%*_+cWugw@tWQp}=jM{BHKa2!1bB zx!ZJl!e1pk-!^a6#E?I>2=MI4Yq$ztK`}_!R|15N+V;Cx$rj(~Wd;uG-biTi_LMgu z9GGlSuZq8c%x`CI+p7Vyy1tbtwO%uq?NOlN7zW}I>(F6`wU)Xvcc+=V&>A2Z955ET zCgIKvlc%UMo01r>-KL!4dDq~YNysp-IZhxHxuSqiiHumQE3Y+Y;7Akmj63PQa4_^B zOKMa)2NuH75V|kQBq4tn5zo@<$mOD}Ff}^c|Km;c?Ua+Puhm^C6o06`;_ z#`^gpOgbB7)$!ppDbYrFc!Lck78T`U@BEvw;6S$&^d*}#Jlr%r*fOx^c;b~4*AhO<$Yf@5ff|} zokUNjSVD$~pJ32)U9D7>QsX1_upyIf1RE_fqO;`;i;%#d9@ote8f9rriHO%aY3(*^ zkMWP2W2-Iw%4*yZz4V*jrU#um426e;DBhinB~k|m$s;#y1*=uhx8{QwU zxd+gyux^&FwBs&FjPQCIBF5Kruh{nc5dC#0{B07J90wc+eZ@+l=SvGu6zV%NE3j&h zaG__vOzAba-fdrozx0grA^s>!^w=7AaSO^2cVYeLJNCaCkN+8%_m9LNJMG927P?aO ze?bd|;N180L<*`+!%00EwIikao)Y@{V5Up#FLi@#lz!V2zl}(2{EAWiNT6#2 z9<0!I4);HJrz=lr8r4cvI&vLI1S}(LIA%)USf<{pviya($yEJmZs2D2L&og=ZXZqS zqG1Y{)k^?}%)#F4ZI0!Wy%8ROLMNBLxVE(cjtAFusXolm?3S zq{dI!e;&>^`^!3OCUN_FsF!JQF&lD2R)*f(TA?=&h+e8{)Ofsm&N7rF$OpI4k^Jq6 zbiNv=(La$1}*!VbZETJ_tj` zf_t`Tuc>c;@wcY!uWDGSFp||gyXd4_i%LtuE}FW9(`w?`6uu+x}H zOKvNPd7-my+@`M?uPT>)+8Y^rP6jkH_)Qm>Cw58=);=C?9O@47Vjn<3g_8B?+maJc zfi8n-ck)-33V--EAWY1BWLXm4g~(>VW1R`dPVd_vcoUVMsBR%TDV*gKr2bcbLN~pT zLr%X%%8c{5cPXCHso7GLpl-d?SLCxD4=+})Flozsq)0wfQ0P&(^yeC5D|G*QY+5gH zNV^;H!q!&>exq+y^``%((ZK8~y^BOn{#h4a3k8S)=eAL*Y0dcZg%m{Z_3fqD9=?VJ ziV@ll{+O;9X6BsxA6Wp$t%WUNNN98t56N&a&vdeBkN?F{=)hz+C>|L(fyb`{_cIo@ z@6r(+Fj5DX`rnA8T3WhNsj4)@n0Hl&7OEV7*2>m%AQAFmKPKg#BO{?T(Kk;#eF0dq z2~khIL&u{}SVy|Q(*x@2?&20=+~bvCaYrPap(+_I*+fzB3mH`-3k5&r^@SQiIMhTF zcP;$gt{org(I-AOP=37O(_q>2CKZNGCGq~Nd`^@4=c5%icks<=ZqmE7U8~(bV*CfN z^r1+wm)X-O>AvOmBCm+n4-w;Xxy;lVgii=KAASyh!$L~rQyQECVY7(&@u-Hf;Q|c{ zRal(pF%j)|ig|lHrjQ?Ax}h1)+Oq3t4?{Tb-_T6j$8DY+lAN4(c$sz)O-L_sq;L4k zk?D4_J}XL)Tafx}U~NN1v~u3@7fyYBQ<-Aj#u$rZlOre7mf)q(Nsm(mm-CnYoL0fe zi@Q-UUi2A}wN&E~UE}dm&w+kA!?hBsX5Zc8iWzt2zqCASe>K0C+{T|m?sY7H;+L8D zT>dgD{)Qhv4AtPb8p|3f-|$9An_H7UgG|Y^vKH?|@zu%#oynYZ_3_Gk(Ka(^%bsuB zfX?@dMvkS4ivWwS#1a@dKiSN%h{6w}aOPvlo)=ZhO6nBTxpr$DpLqNY9laD#I>oGyCov4F9`Q#80C!1j8dp%_~y$5zXgBJCd-N(G|x|ogP|aS{VuF_KzeKo%nBySoittr@M1Q9uraQ_r+(L+ zI%wD&2i^c1V@u|>zM-@f&NlizAZ>d}!Oj}}Vl)nmLRdAqyfPDUI|yzVkh#mYJ^eD2 zS{lRAas71j)W|Z#WqE~NyTnvTbRI;N(%&a`Z1ny9uoijkJ$?WG86cmVec5zIK zNz51KgJ}^>k;j%QnnL{^yQH+T!*%xup0wLIBQCyJn~VLgYEutLLQKbLHy~-p{`Qs@ z;T_q3uT1T<`;?~pv2eV^kfunHXQ5i2PsnEpWze+UK)tQZ`|<~{(uy!^a9%pDQ6$a4 zPruoBIWK#u19hLJSeeB6=%d^kB^J2uJO@8OD@|U-KcM0N=FLi~_ z42(2IN+wD*(t$M10(g=^xJ>?5`mx`|?c{(H#b_PEv=Vjx77AL*^OYj9fiAqBK-9ou zb3DI%W6E=^?j7%&O^xZ+%fijCtKRY~=hH7e^cafJz41}}(%DkD#Pek4CaRZlmJsMy zeFHtDu%>3y-$#erPnyDJz;7p(j?2L3O66O6JKpix8e92g{0dyJE$#TY@wvZ`@&Art z`QQB{{wI6~@z+$K-j_6fC$Z%)Zqqzkg~%c)AS- zbrB_-k5Ys!lp}0hbu_o~CkEN)bdhJ3H*A*xGts<$>u)_X9nrY`&ft3ykFJGg452`N zDH+jINZ?Jbp-v+Us4O4NAfc$xh$_tK(aBPJ70Mq~>kqgeWg#35Q>Q^-tsVTG2j~;^ zk(1qN%jaTzXr?Tsa9kcMIe7qq=%5RnOT2&ls${a?z3l=!;}y6`RY$TnDHxFCZ2{XX zu5*NG3ZSH>`b^C4D#MB#)sF20u<03^3C0WP%8>jjd2~JF__-GXvQQzD9QxHRUnG)U z{tl~jmXg8a3sxqd?l9QpkH>g~c~CBbXk7^!_s(zU)#iSU-zGh+wZ8y*X5FbRU}Shw zw+Oqx5gyz%;KQ+c{(K-glwdkbwqv{Q?@J}%IpFbp<0IPY`NF#=lIm~+f5_yUN*;5G zUH3ZNJ-^kqD_hG)-NbC0zNji+sUWatxY_0aE^l6Xcr{<09}8#S%kYgYmBdWeclHK1L-9{@~Ih@5f} z^EpT#iZCCZCSY60ZameTF$ILmLSsW#^|Wv4#3%Qy(o>ODJrm!O{E0$fM0pNzU@h1= zUloJ4pmw@um7P0fB(1K1!Fnfo@fm#QCu(XJlkrV1EG9F@_%h~8%*MMJD|H~=R<>g? z_~~3GKYt5i@}#@NE2RB>c;n6o9wA-qN4_yzD!@X3<@C>R=IpHQYp<0x^?5s@D$Xp) zkwCKrgggTDb1GlfDJ6$OXWTp03|(nFJ+J*AEhGcz4(hN3^m62p2~hSi=@s)geJL;a zFM%{SMt&<3PBqxwc(Svz)0y^(^FIJpkLe#ijdU*sQ`^Qt;;3Hk@X8v)&F+i1 z;><+80l}V$CFPFl)8E)bBt%9|R=8`Y6r3dK80}Yy_X5|+2D`%}pySTkT5->8I`_~P zMj^lc5U#Y4RN3yJw0mmkF z@wl#~H`zarpQTy%|1njl!Y4l4lmVtgLYrVYb7>)}&on0ryqgT8596jI#}#S$=UKL{ zv&M}(Iel-dac=n3C`rO@e;U7{J-lo(`9m6I@i%sa8fVo7#n5Oz=hl6l=EG=HW}^?k zzEs$hn-DqMX4_V$we}hTzB8OT@ci7M_w>0Hv~E2pK68H!llUk^%~2ruC|g<_7U);H zpPU^T>1INkvVgPbzx5#Qgn0cXJbVgDslxKULfywhgX25JR$F)#Nramz?O~>}<5_(h zibTYuh|dr9V$ZIZh%O_7Z`NY#-Fy$vYEq`lH=efqC%jqz@+lM_rd-73&5zLk4^oH! z-M>aew@A+N!FIij$83>DMwDC3`T?PEDTh~Co-EgCgJ zvt*CsyYbTZ^fw4fAsW>GmU-7AQ@A_q{~Q$lbdB>{9=uPWG_m(NJRt|zt*o7Z?G}y- z@z^^vpQ%v`O^iojKIwYZkbYWMCZ z<9&15pue8071(ciHK@Z*B;)NORFUPe6Jn(M(t(WQDQnz+|XN7>t%&VcJcNAFd ztj|)s$E_+)j$aQ9|3AFFRaDmN+Alm+3?wB5K@_A*xrl?>F$OHkZw@w zp}V`gyZLV3F}{Pj$Gg{j_t;XEHdfFk`%U z7;m@Np)rONm)icQrEh&%k&V%Xme(<5gGC+Xjr^Xi5I2HdUk4n?1enxut#(}Jr-((k zxob)Ew!}=9JjybCCq+Qm)?(RaebJ;YvhA_Ji22ZKvbI97eh``JIhLH}Ca{qOqS zr_Ve|rL+=GJ9p!I0MM$?8u=--aC^eGj9c)QqBPGSdb!Po2%1^y)UKGo=vFK4-7`A? z!o2hCN4D29_6uV=rh%kc;;x+gt5vB~Y7?0qmJaM#%lruu)m8O=(b;)}ZlUQj(HmD# zGFXvU7^VcZl2mE1{|52^#%ZF8Uj54H&cf-@*BqAsC3%UxxeA*+W_}q3h7*F!Ou-Q( zp+bNXMOUTip)$X6!T}c_(#}H1GDAYGyIe6>#K(&VCeey%n3#fSVfXUEeCdN#|Lgpo{o5lsY<+Wpn(+^13dCH2PvPMMDw{0a@(y2Y z%8FjAM#C;YG!Zwh*9E0*qV=~PRD!e;nEN8bZwf0y5;}CKN;VxXP7X_D6GhoWwbn^P zw?*HL;7KFW0d?ASy&{h9LX7u?Op_w6qT@by83>=iH|+1TH=Xmgd@af`^* zov(jrb738`0aIH34!97|3549up)Yd`pmeL9javX8h$1s*6Np8KwaAh2X8&3FUKs<^ zTqbn}WfK-g0M3Yc!VUzY=>EPVThI2fK00aWJN9z5v`_zPDd>LhOz9;7}>dsNHs@!ulbC8tD&^ zEa2{H;KaxnIhA(Q%jov;j^~%_pP$0+^nM!Eo-~#^UXYAV_*JDln^89^**4DafCTx? z%X~4HZw_N8_n8(FcZOJvl2>mj?PhOrgo$?60C zS|>anwt%6}+*K=C5lU8IP@Os9(aXHsmk)mkaVpCQtx`P~*V*ZsGTeP65es-fq`f-C zeoMm2Rx|#x0%BqKFvjxW8Pq%)ey^l*px^w;=)*8+^6$49O_h@3mNJ&NDD>>fIC<_L zbuLk)uo2rF(CIP-Tqpw0B38%B4n~ta2Vn=bS9h_JCDCLJnB-$6pNdu>aHjrQy;`#Q zl;pPOe!?1GyGdo8!l65~2n+Dxy)mOn@SjSU+Bhk;dfWMPQwpzchs)M7ydpiOMd*~D zhwB7YD1G9_x{MPhM_V}Y5311o^!62;;8O`iaT8C^w?#jvRWYAzPSo?9xW^6{QlE?i zF5Exh_PvNo0vFZm#OzS*pD2{$zhpkCT`)bUk{nQ9hE;TZU3UH4Yx(N%KKj6sLtxlt zAuOmag0S&Tm&^*C84i!fd<7=zU-q{uBnMqQL5$Ldw~`s|fs*3VCGV-Q28TNcD?$lu zBMS&K9cT{T+%v6zz;1BIbUVe)FG9GEaIltEMZHoW9IHOAEl?J-W0c9_FWyGI``drf z|8A=O8~(r-ZBp&kmx#}9a6j|>ZOi-bkVyC^z>-t|?4*xY&SeDykK4<1yKB#lt@7A5 zkpUC=tDqO>!}sR*s2}+T+hjBVGc?X7n{ZH%@>uIACp%8T^;k#)dgCZ47p((-=SpcA z%@h+=SWOwU(>Vd&tUHziojCYFLQPRBjkEneJfsrHl_-Gcl{$s#$D_w@1vqSUWLUwzvOe^%B?~F`Wl`J$(ArIyOQwoaPoe6ZW zRcL_G#dAh{aq2{g5h$s)S@i0rvYpmkzh>JM*E*au@tUa6mucoaO!`sZY>iG)mi++& z7QS>om%-*c5|!J=mlD}ZC2q#r2Uq|$?FR;&*n5hS*@2^`LiPMx2MI19a91sN`lR2f z!0%AByrY;b$Yng?N8WZb|Gg}>WPTW^ij#2X=g;3&<4FfAeUQTP9T*D*cgPSxB=qN) zp-P@WINk&KQ}pX#(6~K9=c{3e`bNkBJmB>*kK|&fA&RQib{Nsr*9kg0cGXz5u;lAUjbgpdPzg8g$Fu?SCt8M+F$40)o`k zWY*<-pNJXwHNpU@?SfUTQ0dcCVmdyc&P?hp+6o5^tNseV{MO?zhIslxn10}AF0 z9xgoBKzcC7ZkY6Vq>?izQPg$DQzt)iAOD8`jsNA>ahnbo5orJJ?oHB5!t*` zOvZoFuTjnmr*Bv-9^wdasD)NH9WWNUxh->j04bQNGExN%iK`-W@*-U=e0RyljPf>$*rL+g2?^|eL_M8$S&ujPLNo1 zk=lNyw>;Fp(l4&>#S6+SRVGUl9vuyuhrx?)ZlPxJa%%Gy6j~oUPBmYhc1R*gLHwm8?^bEXpuguA73i-2liej*cTwVv#F3C z_NiT!f6MThcSu#L>iDGqyH*T)&qJE>0Brj?ra{w8o=iu#!-~ao*@II$_~P6fx82H- zB>;f%tMj;BeST!mJ8;=J;+j%6CIlO|H#!c+%yBgYS4O^Mi0mppB|FgHv?`YWm2Wy% z!A>lK7rRb9Z8U7SH(OOa0;9I2k*%urIs+7sMBSz!R`gRXgE*ak4pTvE+x^x*7d>5~RW zl*C6>1^c}0hVUZpC=d1MYI}izhhIHf>nm-h%d~Me!*#F|wzB^k@61nclZL(;%Ibc- zGZjIsj;9zV30DkkyLeBHKueMIK$xm{;J&e8xNIirkSbNNk!5h}o7`uD$vb&b66dOY zE&lx={h5FXzEAuM-+Th>$X=ph-f-weUan6`jqvb}KiM>(lc;BiC_JWLzxvJY&U{aZ zmU?0`F2O2Ppa91}uz&y!LvfAG8*hSc>UjyD@0Qkt#JHhi4hhJ<6DtgP(`@fS9KvWr z=yx!~CUCvGWxw&9Tmv= zAEoK`F1`l~<~xYu@wKu;zTtG|yFB?uxf_#ZD?c?~Z9n_@8y1%O%<6Q3-{aEgtLu?t zL!s@XO3Y5BK0#~8i_Gs-4hCwv0wT4hZiy3rL>7jW80HRWSl7(VIKHQtPGNNuS<;08 zcopMbObN0HLz$V72d-3PM;6EKD9=jxkQp$Hjdruz8C{kM`ve;XfJYo-4aCJTbfg4= zfK}85+bm!ue_=e7e(U&bmfPc=Z_cIM;^(Yt;GHzMM2zp&@9b7DExEeDI2{VCl^0hK;53%X*khn^thu-FyUnD$lm3e<-7T z9k`s`9chGDxfpU?#E4{0)pWJxGF7jczPy&J6IF9LRdyCH2wAhe@$BW&oi8DM)-` zd69#r?7W%2>n7Sm*Vvqca$IdniPLzKk8~nQrfOl+HKztmirbXmt|*a#ZMzW0MX!@ zOL=8M%xB|GRTzzWPBD|B)NX51sp^<$XT|G2H^8EVQ^eAm(IjZv>Pyj5CL%xwOv8#- zKmn8SWSsN*Iipo*;tGD5eCL04f;SEZ1WF0VW}%Xqpvq?Z>N|lgU+^8sKW;hRbTl@-}4n?AiN5XBR2J)XHpsBITlU-uVN!_N&7OlvHY2Hx9oI+ng+6 z!KQ|Afi|X*t@`S`*oPs-Tu+3;*r29MmyGlD>nJUE&5}{RA71mdhnmwLP&c@qZp{X( zqdeOheb!eo{3E^sBOq01IIwLaW8RvQPcKGNk?#rIQxs3t7diC(6glZ+N_WwhO)MH& zY=rn&Te-rrrXQ$35SYPdp;FqOJCD#VR-h%*V2Rv6$8UbSHL!oupzQu6TvFsSfKqh` z8zU~WrbaV9JUsnXp_np2N=qU7+}HnLq<@loC~jg2o0-oJS2W90G5LYAyWhQEcWjM7 zWtK#-uPg7!V^FyG%`I;$!RTzm!^X{xR~oZ*FZO=|GR6Cds_cO{9A24*^iTI4@U(&Z zCa0CdP;SgcV+)K5zZxHe9`+=gARro=O_!ti$-;oYz>%s7@GeknKNbLzrJk1!ZT`W3 z64_3!}Tnt ziZF2PYyyNDm)<0__uyv#S#;sNCvbubJWfFnk5bLI0F-EXIBjl{2~FyXsX(wT8cUMj zo2y7BUzeZouIYog_QIbLPo49`>M2Jg+qEpvHZBC{!3cX5;LQT@;5ohie7{kh9+rso zDWwOpy=O+W<~kbj-g5xe-s$xP9zgag?TBWA!{w!c6`088BUq7VikRJ3l_bz!p*N`r{qX0umM$n)B}IDfQK$oT=p}NUTXoU0)v|x zmQ(byvH4iBm`|dWzEK5oXIYI*8 zS8rMjJo4nx7HyRe)a9xOr@`n0iM`TAqU(=>>Sd??r0}zZ$~}M~GrIn9FG4^n0#-Wsuq$PTc}NCD^>b+-FOYqjC|Kr z_=srq(j4ER3&rul&=vsSk?|(b=PYDwEM(F~(Ng-t>#Cveoz@nXy`eW0&Yv;3O298; zRzE~@p;tZMn{h0dTGVd*B^M;9fMI{mUPEAdBgYsBod_wrgNx9I=1mDpXo)dQ7I>9Z zCOr)*HBio0O{Ts{c}#nZHm%klVKB|;N_rx{$dynDFc0SStIuR(DcKm7HmR zGEt++4T#m**_KmbNov;1tn8^!qKx7x>`kRrB2k%Af6Hb4W~@YGTz%9HpXpn=MKEKU zQ99nE?JvJ4D<0@uBd{6mo6~cwxG|gIE*wak#h1%{Z@~%0n7uibH9eM*y7Qw6@qvu+J=aq^h^zysYrg)Fr zlQdKl2>xq*1)UVT6Df)GONWni8fPi&>*I=vp%Rn8Ksh`t!sB|6i%B-6{O8;G>O4u2 zWTW$?5ZAzvs#Mh3y7EgZkPO+K&|IvKd&~C1RP=r#JH6e|l0>4QjXCjFqY$xlKc5=m zjf^`|HD-@}A$Eu~XP9#Jw-->g5`%NR3zI#Sm%o51Byi=s{U&zrrj&)n`Hrw)5N<#f zH029;U1K$#0n$W>bU;1lYUKKPg06T7Jmha5jkdst1hPWQ&Z4JxX`KYGZz*NPcsAc@ zbi-G?5umLVtNirPN;!o7roAhM>z4xg_WJ<4ucRI7`0YtUPHQ|QID2B5L0{I85&2Gd zo?*Vpu=O=QC=)x zY!ZGs4)fSu(i@G_{TL2GWL%_O6CVj!anIRoyR>IIn7H&_YH5DqLZSHpmV~tgt>|Uq z*#oG-exm^rMKEfo{-;-T%42(e`DJ->_ryU=@=8mHgl;|N1}NZlzJkt?8f&t{2m>C9q&m~v!iV>LSj+u6qHGE z>bG(nVc-S)iU2zanuq40bk+o+02;ZUaOqbH60{2frB6c8SR?tCa6cnmY|jzGgy!1@ zxlitj8;xm2w6BibhpugjmuxyO8Tbuv*vYOtcLp~*aFNiyK@eFUF#BP|H`@17AF4t= zdU)V02uh>osHtWw$ge0eYR# z0RsWH<~pgz8yAE-%7E+^a*2XZQEdF8puaMRzttHQ%A2Sdnh6m1Vb4~>|H4jOAK>dA zzE^Vo00Kc%7Z7Y2Z=4Kd!r2x1k&jqOS8MB>yuSw?(V%6g-6N~45pv~bbS|Yowqp8a z0PFN*Lkg&Si!%m>(6NW+pXD00dwq){^Q?y6pH3CpUEJ#i;*om^FKx|xlQQa!;;A5F zw>+?8t<%m6Hyy0jy_RTC(*6_q8!#4a_6P4lVi|8bpI?@AI$y%^`~7{p-BkhH&k#SI zB^g2?`Aa`f)|17y72B(s>Vpc~1M37j#}J(#hfAE8+)5lyx9fW^ zDeKIY!|cVseORo9>rZJGq@38x0JeCQ{TWpv7htoC6mrZIUF)4rQ4QB)FHtO6FlS$A z^*zh_^{w@%VccL2=y7izdUWQmO`DITd;`v`z)+`ypVVR||3w|MH8l~4U*K{(9t1Ux z`{avZN&pFz{?Q)VM$PTpKpLkQ(^hW(!X=ZqYOk zxj7F3!nUuVthRg>p}Hjbs{n$2b?}zB-_>~Df;U(Vvo;O1ORygEaeWswg_<7{K%4H3 z_>HLX%%jsE=TCRTMdbMN>RXU|fGK7&oEFi0G0w8NLk-poFV-pgMi({n+R(5mP|z88 za?!YzbaaZb5mX~oepEi<2Wa3ehHO9ec(f~VI+q8?!##fz3brxONLJXbF}GV6j=2jj zj6X^`tncre42;@MuAB!ro$VZ#U0s6C`Q-=1+_@>`D)AptA3;PjLl?>6?E##JwZdwn z*(hR0{dLhki%Yg|M^MiwAn*_nZ~GzIxDLVz2A46_$lcY)jWD*Wmf5^6Ai$)dP$8AV z=-C1r$OZ+q*b~84IXf?!l^$D=bZx$C0&QVMk+%Wc(Swxh2zHf|xeRGU_EMG=;X#fmUYL!xn^;9Mg z{6`RSyjpJurm*Y)g%?Cs+bSc>u`BGS?kF56|@K3z)La%lSPn4ptHuB z81^TSbEC&rph-l2D5LbSFoITBvFP24||N+}sS!WN})> zGe#e|$*p95pQ#T^C!xkt$<%s2zMRPI$W&>es!^1njN%o-G?h^KPH)(+#>p(+1S&&1 zkgs-d#Aw#bDHh4ahyBYUL^j4oyN61>N`;O%6IcD=ED>tdQ}^-Q2(Rq@Dv0sSQ^@^R z)&yb`zo;pO#XdSU_sA+iV(2iyg|ld^Z<{he%w!@2D3{5%NAyYzlv()4OM?)WT78*} z#p*KDOy}UoOLg{ozB4y5izk#Of#?Du>xM?3b1_Lk#092m!JfLz@tQ+`*u!f&YA=P> zloFG2A|e!z$I{q!bCb;%S+eEQ=1xlNSLd(!w^|ot!S>_o=8%#oT&;nM{r2IS#iW6# zkI(JRAF2y-l85Y1nwS8<_Bw=WykH81Hhyc=F5mxkR)e%1MP!;xF#civVgQP7W?{SE zVm~rJ{ey&lXRj9o8qSUmntHSAQ@gSmdvo&zK}~!!{Pvd~!-pP99kHxr)uiwUl3F!T z933B4@Ko_aTj&1kA9Cp|W$Rq0ps3~Nffz>V?a2>`zxRm~&GalUf)^lfnJwozyDlPP zV|Ujj!tUi(+xKRe3Zg13XPD3NSkrNOpzg`93C~qNB_@icb~T`bn~sf97q@7kB6hke zProE~0}szom@;%u`i+)ThmWS;g(&daWGv~9(W&o+u$oytRIF|_4^;FfRDnZ51eR`) zgCHn1hrMm@tNUeJB$wG8n0gtbduqtVvXyNL5RqEFo9|toT$Mq_o~vwFA@tyK#BVFA-pEaWF6Bh8S57W4 zQL{>(SKvL`-&R0Wad>&#QmwGBZ0?&d-WfJ4+c)XO!W=R`2#VEhvp;vo5&mY`(-n7m zkIJnie)(r@=HsCJt_ecOoCcv;6RtyIKr`c>g_!a!g!UwiaK@pEOvwKaCy&{pF3C+fPOkQ1>j}}l&1OVblO2|OEfVDF zV;M)s=OTm4Cpqz@F+IoFeA!O?uP(NdrPUJ5Z32j-Sf~1_c4?DVoriC$^KKhR-@Wpw zBMM|bJe(r1LoAI~G;&GD@i{JyKHJH?JgoVINj-b!M0t-y=J9>g5+#tjiJ%u711VEN z<0daanb*xb_LB0)BQ@)CjiQ`7-LIYK2NCrq5|G(DQ{&_3Wdw+uze z;0#|hkGMmA-4|*-JD!!$emk`2uh`uivsRAsKiH|z7morTUi7bKmj|O7ZS2tUSjsh_ zqCRzm)A%QP|KG4T{`G|DX+sSn+&^JyAEMBHpnl}c7K>CL{ypCgjUO3|OULJ$hMF%V zFz4x5ZnXM`VUUQweT_{6o%2JwcmsMpz4E(3L69iYj$+34LUbD5R1(Z#sTrMs)Y-;> zaG}FZ-aeJfF}|ixo;-r=_%`7@8!%I3W~u=|z&QerIiuxM%z|Bzm|S4?*$4S4getkY zv(&X$tSk#J6UH@MwPVEYa+@R;4O+{4vuzY#KiUA={RgJHF#}cdN!l*4sFQl+wNMCd z+M`lu$wAXv)aNI#Bc>Rw0j+cp4S~bq#}@|F{-6pM!FX*NKc{0K?r3E&ZJs*MxRnB< zowAIa@CG?~xFIx-f+|T6*}}4py7;8okT&mI4{uI^RAjdr=o37}88aW(QZN|aw1{F1 zpx4wmhi+|7WESSTpF9Cu<3Itu>I?2BWdg48ZiVTHPocStHF4LsR}4pS)#e*-6p)ba zC}bD*6<5mh3&Ig0cvOij!LMUXGOTKxci!7?v!!4Sth1V@E6q1Qd|}uqQrP>zaF0do z8e%_A$5{Ty=)HAg4a64tTu4pFTX7ENOn5b@LZ( ziEx5@S0lRd^acLvWbw6ZrL1)z9$Q9tz{VF~X;+xSM^d5Bv1S}Q-l@1 zv>slDabXY#)|%!ETE~jV(kx^_+TYd6kDH{YJj)q|UUig;%6*c8=1tR?_srJl^OUNF zZw_Th|A9;~2JM1g>TY@C+<2H^ikO843-Ol$vpCP8tDG^py7InPBFj~bQ8RB4bW5bkG+u9;mz)@TxM<#3oybZx2u9JA zQm3Smy603e?z`3qZ0c8Q;8hix7l(MMIqr`v%GhG8vB{7%pHHt*2*rEqVmY(VCqiq# zEUcd014U=9Nwr(yG(}=P62y#EwC%?mJc)Bg7`#=m$Zxt2%1+cbxM!}SGZ1y>04Iva zBP1ApX_s};$%N}#>Ld5~Y1YGFe4Dk1PJ3{%P5q~Su38AHHS1GCJheRjFzbTK2gf~* z_diXzRL|!?(VmGH`}q$`B!X6l3G>-ZTuRpUFGVKVNImTA6-MeI9pajNjt5+2hSpT5 z@2f>I2MnvhxxTZ+69_d^8KxLs(DBk8u-@gXt*}sR-MXZ`I9WZX-6)n02rSx_up(en zY|}id)@+7Qsf48JmXN)*WUaq{S<&NSP5n&uqFVO;_Yy;a#@*Gb^BW~09DiD+P(%uz z+CSoW1hvhDGa$e{rbEElxu`at^FeLu{b+7B#*CCZereeOB;|Z_^rxylZa#%#nXKt_ zjmc95^dr49AK09O2F$3g!dO#Ie}h$N)*yBsUBTHt@hmg81W^4+lOQxcB21E#Kp|TT z2~xDqDj5o6gH_xWJ7B9;8hvUHz;9KtzP?HI0J(}2Z)tv?yexW~A*KY{hf6GqY!Vy_ zJ6tMzOglI=8kU6~+buKdLd~~@ONTH7!xtwdK#*M~2t{RURJ0KE*(wFGSXtGQQs$V>HW4P{)R)lVKxO6^q zz+yg?kjja@%Vd>6VcFk8KxPnZ#Hgdqk?Vm?)3%YSXeQSG4zPq4D(BV;vg~aq!v+4j zrUIdOBA6F3DD~&-@0^tXE^C2l_+u_)WF8-ri_Uty5^d_izeE zL~gMb0~Q2mom6i!5s^avCc!f&5PMbO&}z}%WYsWIW340eJhkP|HzhB90;iNcDnT~e zn{Vw-)(1uSJA>WGM-7|3OPKQMf~4&W5n(+xW9-tY77|9v56l=J`J5=nTK>-UJWc$f z8-!%@;ZTzg1tEGN*!GLlJ(_O(;3;2`F!s{yyy%llRl?7+Sr@vI?p6pIaNIk){Tv|; zKUx%dTWMI#(E=uHyn|*8wm)AVpXM3e1O)B9%++D|YRDe9i5fPrB5^sTE*KO7SLG8q z;Lvj4CGx&Eh3GfWcW4)Rs+vP}FeLmWIW82v-ddZ5AcX)}8Q6|Z_{SE`E zzEpx?V;*ZLWxm$1?R!b;g`V5^gN@kw=2D+}#(e`H1AHG<)QI2&-O{p57nw=(&JdO~ z+bdbR%N`QYN$w+MV36A-=Ab@fF+vmi{nmq|~gKz=fI8NgkIF|D#G5OROarN)oM zA?_*kA(U6n#a72V;}5-S-sTuux?;zSb}i8+#((1c+IF{R)1`?kX?c$wtMb(j&IR`x@ZI6mjnlj^*?Je8x}Qs~1=|xL7W2npTMD1G zn2(G0GbvQaJRIs=GXpfRUje?X@MezWTK)JqBJGb_5~=SIDa>Ow14Lsh{J%(<#E)#zoS%0b;L##3qrBF zBhwucFOtU;0+we#IlBD+Spb;vAdyhlSbQEl#-L(;=2w@;gKP062OH(%A!Ki)@mNX8 zmr~~ek4;0xWG?Mn5Kw!S_QuwzgLCh)^AXMI(yimzDbVLQ81QV(O^#Wywmw^ykKX1o4Ua=0U2Dbe9HCk$B3EsYuhTN<}Y)+S=>wnrXVWnr0x=mh;dm{$;eJKAK_8 zRG?Y=>4=*n@>u`1Tk4uVcL@GP(GtHY%dX<2hREr`)a;gXlE`V;Ol;Uf6?4L9iMU*c1L?ll zm$qE_C(}S0mQ7J(obQl+(_4ft8n^&=wIHbS~ z5;1M#aL86{)oj~wmcpO#*7+K?9Yz1@G%$WJ9mM z#Zn-n!ae}TJI11#wOIHiohEBHkp61~mZOu)e#PZ!KmdEbl+2osaZgw8!rC7#56W(U z11g3)5Qj6{)7RM=CvIglh1?7RQ_=3dTOCun19ioU`()B`o3%Ug6h!?_z0Rbtz$mjW zTE6Nxvv_i&YPm=#SH)Q_QQJh+APFAN&Pn-5x_LF<+WjFXHQ4YA+(ydslb-%b!*mT< zVc``Hq^z)7|3INsz&((u1f42& z*3g5^YrI2;%@0MyNED2KWKhP91!{K0SRL5-n^MmjPFT8*^X-M)bk)f#CUXw?LQy&9 z`B=W}!~zH#w|3JqlJU{*pD3laU(qmAP{hszy2=w0stJk{IIINlURrEVzAs=;<#ZD? z9Y2trx`Nzjr6*C;Q@#kL9&fr)R*(txb_KY0_s@Qwby-j>oqZXqIw2BDba}z^AX`Ec zLhd?Vaqdc=;(8BR=43MF_+q z%K3o=yV8|*C@{JvXdvl6g1MXUdU9u#@x$s-P?+w%sn=yGuorEDHf>Hooo>%3jNj#IbjED!?)^% zP2VS39n|;y8ktszO4M0f?#;Yr7Ik%7yWv;mDw8w10+~35hUS8RhkEz*O?8UX-8HpD zV!7WnVoGs{d%6RtBAm%SB^Lf(*w{Tv>HaRA1Q%~G$YMbKHn1orCR z@+Q6`z+LisvTs(M1S$qV4fqyJY9MG;=zJ%ylBp{^rORc-SdUwwX?Gc&W|sUhS{6fd z>mLhy{*+bEXDDS#oI`(zH2>W0(9#rO*}UcThB)dAVPHmo&g)hE>EPY%_1QJZD6tvt zea48tC!uAw^aH_%P1YdjGT+Q*{h&ekgLK{$I|0JN#S44F8T+TVzApOS%iFXaNUz~O z%osIr5O2G``F`y!HWZdYwVK&!la*mIfI?eZO9F=OSA@!xj;JC~FTQpR3kT)qPml(`H*7fyfS? zX@pz%^mfb0zqA-2NDgyHO*s{ZEY~g8K8McaQ6>KQz6sIwB=}eEJ;J@CXZ?9-tBE8( z$0|tQXgOZaFNgZl+bFqrjLI0%rz^S-c1?J*@qr*U@~0tR+r^p{-Nhj>*xjj$z8jms zO1O$?f68p+6x_+9`v_Zk0@!L59hOF0f_TiYb1poz<@d34Ws~7Qu@J=(qs~K#ZvRKm zdz$i_(3x%8%EH)mn`{J`{N*b$h1ccQi?=;J)nx{f{JAL9xqzw}0)f%M=RYE6=sUqsf>o)ft>>rObzfgr065p?8g^N6YMf?2@>)oND-X z4tUack4SS?-aRW*u2q*T;yHuI-@VS`b`iyU433{ zr+)N-NB0}2B@kkJJy99fdi?(AXrgA`Q9fITE)at}gR|$<0qj0`V1xrWf;Ok;6Ii}L zX|Bj)ojaumf!ed#c|Zo5iS!K++xnqCaH-sy#AKVccpT={$|ek45SRNKX>NRad8BoD zxU^Y+EI_jk$4Nlkub#r@Gcf~^amZ4RfI`COn*zHRL zThXt^&{6Wp;SL3KG8?^#`N6CkFS(tdX2;$s`gq$vm|)4#6qw&D<%S%H=(np&iyf~n$JJc7c$|#)nG__|>?=x`4z_Jk$~!ajgU3GKBzswY zpqevVqVI^X4_=G(O11MYrP}G)89u%DDr|7_Te3JlgX)B~Etge^lJ%^IF`d3 z0Vz43LaC#9q_A9Z4C(-mdCq8wLGzP8+(9S<k-#UU^uJnQ{2Wpc- zvrs?4`4=wVTH(E+JbDIP1ymva&02Tf?l*TN$@Nxar8v`|4jV%Y=CGTG*M!^ua88UI zLd|2_AzvjC%fn{ymHxmdr$;CNO=YRaS`r$ign_KRe6~{!`aT2&r~x%vit+5L%w!0B zV_ZN`jAe|DWo;>&Jmz0dNzZ99>DVe@c>pwgp0=Jw*=^mO1V3O8v?_#sYItr>83ZGA zXQ~*(;zKu>HjZlXqmDu4Uz(Zb5HpNwnJsG^BC@pkX=x2JK#>}cmn~>?qZNO&;2kV<@c=ECHdK+sM}U!=(yc#JU?I>TVnLa3v^q7V9d+5yp%E17d*Qeyo4PY>N%l1ysjuI@^i7JC@|v6c9P1yhbi0GwRUPt zN0Swh7O|@sy)qe+O<7GG`Z113&1H*w>pc0TUUuUnatg?BvVu5&ssyGu)|gTi>kGH^ zqB#JtPcdVrJ`?J#%5_dHNt)A^IuVR@u-{q?XK=Vb7EeJhD?6+`JfCxIt%-yb7o%Rh zz-t|rYq@yqu`n%$XW1{;Vl6@mZm|VRRM_zkHopt$Dt9Z$U^IfDlih>4IgZ=B$6*}g z-NjIY|H>p3XCzl%K_*AfeXCX&_I?G!SpbqSv@MX?S)!=od#5H2xjq#M6r0rjjnQ`$ z9FMp==LOjHt?-o(wT^`BRfccIjAxbXE&J%+mjeYC$ZQsy;B8{@`Wt!u#$*ab7Aq0>(wfOb~0MGmh{&Nw&KJ0d*BF0r&K~2i{e^w-kzhh3;|f=Uz-)#mz4;@#ItFa3vX1trUBK zPs2S($TQAguc6*ZA_HihM(NjmEiBqRpFUoH*ft_QP4RU&Q8{E<={}ihQZ4(XHP!=TUJamU_-OEjZjrIo zb#CeyMo>B7gOpLl;1asfmIkwy0p_c#W28jh6^2kh35#W07S?|AHMfeoKAz$v@~DRw zA0_AmkPT70bJ+s_r!V|`v^AKsD{5Bg{^#ayng1e7Q_`Zi(U;t_jo zVx)4+I=(Y>FZC`lMbYox5HhL}!m5ArRLiP{Wr`W*e{+5f=dmd5)*omG=^ zUJC$F8>xenAZ7L0Ns;R4%l9dVt0j8C!3EP+5-0dvEj5nwfv}W9hJ?-Dwx=4C;4pP zEBwmvIYEx>ybe-!ORcS5Rt{33bWuTez{%{#ISyvj4O@DbqhqEVfQs|S_-VZx06wH8loo3)o9t0 z@uMjOfO^Co%_Yu8s}d}FG1OrEj4Yl7W+HSY9_hc1f#jaehwp$fVS!e_vcvKM*A^Hl#m*FF};Y)fkt}T z+APacOJIw&G6Wl>X{NL2^rGgzrrQCm=i`1x=BjwI!dd->)`Civ(eyJYj#x`r25^@` ziFyP@6ty^cr0r}|8hQ!}!Cd1{MM$$ZyB&cT&=F?<8bR)g-gj<3|GEj&XsW>caXcC0 z;SCnDjTI@RKs9GB=e75S>FnGNQ*|I$kzm@F6qMYu1ihyY9F$;5I-hus!3VcnOpoD%~vY}EF~T4CKW6nRsh7HBP0IN~jCtz#uq z?~+sQZ^Y{~P1t*at#x2ot6gXTuH8{>u)OfY#;s$fnXQQvC8OIPG{cPrLvGbF$;XhU z>c@SC>oRC%DBpKx*_k>_z`e3NVY|EzOZk6vH~l{@R&UaO+BD{7wD3o+?iF|7 z4deGgJJFm-XHa$r&Z(EE|{6DxPm&%wpvh z8?w+A+LbxUR^&i(hxv<hTVDvfj5?O4`8UZtF9s{1F=R1@D$zmyRT9}nUqg}L2x$&+QMk76Sh6sYHvS%FcGsw#o z+3XoyQ&9FMR2fKUlp3t2NcyhVtm&EXsc@b5oq(lSA^%E@1r2r=5oSoI`!#cKCs*c8 zszDtraQ;4)EJ4UbtWW|bdB{3kBE*2p^etRBCTjgEZY8OAD162DYMhK8Ne$Viw=4|i z!FB5o&ic%57W$f#rk^tfs`+qd1k7U9Dn*wScn86-WeWSctrT6C4X=iwkU|n+>(fQbs2Auj!j-C3c-WoS2}AJ5yY@{S8WiLw-WZ z+v)#U1bu8`+(vs}xq{IkO;xCekUYU1t`4X?ioWl#U zez8hHoCjAqc|3jVYGRW4cn)8*QNy(as6voTmi^PRefNisR%pq(w^tMUD70ISeBcQj zYmGd@SG8{JOXH_`@~4++Jz@D!EyOA<21bmo6TU0;?+{nGf_J;eF5v`fWFA9!8ZefI z&YQeQOA^XRc+xc#Y;nMg^@z(T9(-#^?R2~+9*p%1>0i2QG5fizNPtYpTv+pdZ5g&|aioVeU4#mXC5Jj)e(ag~(Z_Io3rw@LTh?wj(Kk)80# zy@BH|Hj)uG+@_rP0i<-Kq}7*xS2;$jEa|-$frEv7SJU^>WN>g^&peeg(326_=_fy? z4s_WdGs9M$zFkTgNu@Xz$h9CypQn`HxOOQB=xwhmJiF(U4!7OtecdaH3W(AuEl3MUHwZ{~Hz*B@kZzVpNq0+k zOE(AtOS-#b(cR7caLzq5`?vR**=Nta`_BCnW-$!RcdgI+^E|KTd7I2FXFBCFF+VaU z!0_iW*3Uvk2+e7#^6oHx^*NC=s>DLs=ax!Ia>?wqAsdmV2ukH8*?43bR|VS^5?Mc@ z#bHYox>!o2Ft;1A-pMURSe>zzFKi=1@Z#bNYucP((I4%_25~C>}Q6JJ2@$ogY+WC3nL!N#g-*1CD0`xaOoN=jPA zc5edE-ZZotv9&;Cp5rs8L^xAsf&*S5V8uUIEqrF^s@7=h>wLB7LaeQ-Sd)(Urjj^a z$&U4Qn{(aWLaAL-rZ~LF>FjEn4A0KB2jaKSz1N^}&nOPP!m(>S(CP+EN0xE_4e{W? z35ot?R5D}$m30s3@qO2q^>(vM2b_ihZ30a%1U@)yfl;U8Y(d;~d*NWYdfrNGJW<~3 zq98boa@^`xyg|0O;VF@tYxkDO%w6~0fz|n!#qZ-fU;Or6;njC;A3(M_o!@dkM-R-T zfMlAHXWayV%(IUO)w?sXW9ni#3;TxtWK6FO8upee?tTW7*>$9dh zZh0*}L#)z7?65ZVD6yI_YE{r5qb+*u^`fh@qc)6S@_zJk*yhWBzt$T)39mf>E?S;) zPWaGF@Ls7Rg{&Z`Z9O@6p$;JY8F#)niDIf9hs&TdEqQpUy?dQFMe8v9q{RIkw&Qv_ zXCA*p8E-E-6Vp6~6e7VPL zJ?{{S4DTm;7ZQtRN0nOe7uxclE`>-XS(w7t4WJ48pMXZs@*Zoj<;fHp`QT!0kEJ!K zJH}q08y*3QX)C5Tf|_+_wiPmwh^wQu2)v4+R;fOT_CWkVnQdLO{?*ud?eM*>J6ZYA z92}34EzRnXlPuw5b3Sx3k)IY%ri>?t5I3qLA=o>$T}tx)0;C!vRL8r-A?i7FGk*Jv zoJNJlZ*5k-+rhV=^egRVYdGH-%kE0L*R!8Yv}Rgv=4Y9iDN!4C&aV=%nX8$NmsQbi z91nLnZKxqJ;I&@TNdlbpp5XvB03VmEXJ+qFF+J3Gpz-o;sYbM~2X>xYyr8A7Qyh#) z#ZdxW0+dl|&FGMSqihjOmwyMdX-dUFB=^;VnktYFH`;amsLik#VDE-EKs;R$pugL< z;*qZy;@SgK4mf*IGRyXVyh&wpP!ru8F7j_oI5s`epMeFT2UnG(NSw6^*78^iXi@&M zE&m#{;X-$GU~e!k2yAWTpPH%Bp@|~)wDNFdVbj|P>7lB*rkVtpZBcvq)8UKxV#P@X z#77MrXbc10n=dX7uEgn8f4i%dJ4La0to0}QIQ4BH`QuYkNCW$lt16Ey*xqQZs3$43 zd4UApjrBr~ovXTtwl8hul#$&u;ymHxfbnL(gT9xCS;T0yZy6loyUVMrm{~sEdhINj zdr}2B?)agcX#Yf+eAe;!-0u@y`gAXBKhbgs*YaO`0RQO|`rp04^JD7g*#H(WHM$(1 zi<4BIXT|gK_oX|`b_@XV{9UDHx(Sg+?Wf1&--$)531D^_fY2H>n@FVBZpzy#h>hok zaB1*ay|UKwx6;0KJ^cn+_NDYGuV4=&nZ=WssDtt6#4XDj+%ID#v%3j^AibCfTsL8j z@yhYzAR{=;W5;%tD+Ba0u*J3Wl0>Y6LYM_9Fy}J1?bOwP~p&f(c4=Qksp| zd=;b~7)Kv6DrU*BE1v=pd%bhm__+Im*6ynBQ62g5WiS6m2eIP@unTCQw7wtICxcN?C}V{=SK;%&EoQO^ts$2*G#20kjsN#cod9N zIi65gj2>N{OrteRp6&8GT=6|8VpT2g1BUK!Zp%&NX# z@T6X9AbJPm(X{<5F#lAce5AI7_ih#FH`t zI(_iZtSR64V3sy-?{#3TIqXSD~h}g*EKm8hToqmmNq=uuXP5ilXTnm?;Bi)jH5F@16D>zTKXM z^KBHP=b7Ljk}L5XR#HA{)Chd>+jQ*Oeuz=M=7U4@%jbW2yQ2Mh`~%vOwflYaQ$M~i zwxf?rLBUW(+?}38IY-co#~fmpSWgq94I~$51|=R6>Ux}4DpSsz#YETX1$2Ro3<=te zY+zN#Mn$Z|%IH|<+B=U=w^}gRrI*TDG#pbM>4&i-XMOwK{Oj{|LqE)T^BMJRaUe5M zSk((NwF|C0-mFbqv>L-w=NM!DGWYJVR#xLC0(X?VZwOhm$@i7GA=%ULe%%LkR}Uv> z<=5;fEw*-Ib&`v?nECX*%S+@O_hO4)o*(l(EMojnqTINw*FdHAvE-)!(Op=;Nv>RR z;2H<9&!&GoME6A_a?|ST-occ(T%q08TNlG~QADFYeB-t1qN1-i>s=~=w`7aKYSto#sB_BAa_p7{pX)%%ISyn!$L72wxDS65gRY;O48W=X_b4e zN!V!o{<-P#a)x-Ts8!Qi;cl2wsA1Y~sOCPa%`80u9v)}s;f4ATw)#|;5yc{pZtf(6 zv%i$qZPa4PHg!PPyUZKAPIHRs)++gnsm1mxTWDl@c93PRMPaUfrT}j!>YFa1=D_e^I`wvh>Pe6w$kO#;cEg` z^?>{9ZWtio~k#EcovBfQxH`Ij}jervwtUG!|qs#2e7#TB=Z_iJy zMXWU~F5hqt@p$&k1aqO%a%C$Tz}|_6Yn|ykg`eFI4zZO>#)S^(shWlC4RGg|gb=(Q zlw2^GUP@>Hr4kcL5W7uWw4yBl~paCjfop6RG<-? zw_mBmdO=+7o^%A)o;E&v*;!AJUZvaYEHpp5o4$TDxV-j#yv_OqFFW^L7zWR&bVBLS zt<3ryU3s3;ft%+@U8PY>$)rr<(~D-Zu02To)~kTXhD<$e5*^)b0O;F|vzLvzI(a>K z_V|hCHsTG|8dHh*1n@|ayI747^qYk=@bCR>P&!oRm^iLiZ{y&_OQ?j8nO!7TSU#R_ zikiS3-E3nQy3eEB)Zs7NiBJJyzQgLdIXs=^9(6w*vscUop`qH5SM&M|+U@*#C$Xrs zu&0|Y)(w2mP)dXiL_9bhh1^h$}B=W7fng+iyO0&1D?Rp0P*VM8F&9`W`nlq-`{}T}6SGD*r6Gm!}&e^VS z_I*@`C?|yi)D3E63_WO37|bFpdZ@_$Xb*LL5*CwZxWiwwpMU*2{cNRgG31r3<(5pC zG8VtiHVI@};y1XJk*hFcP%E^3&?I06gCn!H&F1f;hZ&rn`k!^q3k^yeLRKGS4QGj4 z*7DfOBr)Z|ZK%*{9#`OGBF_-5S9idmfJiz{LWoOb5l7HNwNS`0n*1<*pHN2B&}=Ds zqoY+U(XQ80q)C4U+hm2oedW;pNnqw1rRR@y%}ObUonUePn!hkR|DH(ZW73BqKF8hR z(Mrwj55O+%pu89|K$vdeGNxbD2+oOP4&`}u=dFFsW3f7T(tEig60-K*)Q(-!`u^S| zoFk0yCEA+>l5(8|%rhZGbjZ>~!%2AKS0Nn5?bYwVyE6Mil1&1d1A;TA>3;xXuyg(y zPdE@yn0Y>)F=63dtUdnO0K;st959(zj7Cpyg>p>6wliecj$>+UQ_ZFI1KYNft}O7* zTuD+QbbKQf_r7iIF{GiUbVWFGr$2>%_*7doPjg<}?&OkCnGgTkEc(7oPuzZj05}4Y zw%Ml{*W^(LZ$XKah&swh8lJMm5coKnoXP61qBE19`1u)|t?{GZu6~kHi7sD=nF<}8 zMK_tzc=2T$-b5>OSkah)Istz4QwDXd^sU1Vw@fA8u|iZS`IJ4r{`B#mwfo)Bvegs` z_Ip#VTAx8=wVc#~?EtV33HGRC9!aj!awnmoR($>6ypFf#f-G;XW$jm*ik>lrGwFIA?%(m+XVm_{x*KV^ zO+du3!sH?}WY#fZ6|%AKX_2QLIAy^4#01s4Q2WZBta6LXw}*h3VA=lm_~Gfq$C)a( z-F1#V+pi>(Oo;dY;u9Chnge{ES{ye2Yqk%61Icg)aL>s!V* zFuJ(@e9xGGVYFq#{i{B2Jacw7Q4$^+OoW*`*`)m$o90;Q%`d5=^Px-+!+h0x9y-lN z={nsZu57N;SCqwXT(hpSzV?-~S#g`V;D#n~$j)9#XD{c_o5Z{Z9ttY)fC_W};Gea= zsuM*}$RsdyBA49XuM}aF`vC}|*)NJV#l~rznV?mn4%%4HBA@3RJl zUOX2pM`E>Y=8!n&MdupHZ2scqje+3S5EtFhYTc-A{HU4s$wkOyDIqGw5W2VQ%QQE) zdYb5u0%JIWxOE!hB+-G?Q-gJmrBiMnF%i$3Xp`iU{Wu~mNWJ#De{`yc%g?K4do|{W zvD^MceB0TtOOa6cDPTX4(k@l}&Z@V_=79r8Ar-fx3BEd^+w=0^y>>#MP)_4RF@px% znAgbLZUmM%`Rvda0kbP>q{BW&j<(B4AKe4J9neAA;$hlu1VVbcv*4qlwc>O)>om6? zhmAftJ}?cUr;luSBhSM7nT<4MO>EONeFXphO#UVFb=>7kRM3V3SAv$z{Ou8gvbqNY z&D&?q!>xOkU0Dt%OqpjPX*2Ap_mQYD>u0Tf}gSavD2*Oy+0I47>Mc8;F#B9xr%TKUf> zy#s|}=}Y`=uR6C_5Phys_KBBDrReGKR3j;cW*mU=o$CsF!eV`iEIhATbmKo&eW*O~ z4Widt!La4ld8Jxp>3F%bQfIYG*j=~eZgSyb+;BS#HhTGw(^=>2b18#VqJwd?Wf3j7 zNS@kj%xEyuJo5ZNI#8>vjmOw`XZ(nVfBA&h$vq~Fs$uL^sAw{VPAH=_>1{r*34H!e z=ds1pk6S!^#2juKgD;6NXQ_=nZnWi->bF#tc01bqUJ{$0tKD+`Xx?v>X)hDLMkSi7 z^Ei^d_jN|P97>C`#x%l+b_Kr{=r(##N+*{NHDxc|TG(nQ7#GggB!UhBiW5IrmGy6K z#jze!r5jr}2Q0uXMu$>9Z=l!w^o$tO9`B4?hs@h&Jn;Z?>$_XCfn8Xkq2Bb`Ub}{| z&ElHr8@N{N*>n{l-mbHgdm5=8;p^IcuC|Lq1EkWUM;A?>@c+rQ@plizw{H&^e*W7L ziT{b9`G5QxM9;VW%fn4Yw(D~@FuR-86uYfHcWQo@iro9meAkaRm96~3Wo^e7lcqks z(I11>W6*pCIR-78?ybtDJf$_9^ z$0r5>WE<1LA)mbmoe&1?Yy-1J$b3Ggy%B?LP}zdkhWo-Vsu+;jzvnQVDW!9NPGf){ z$plH~iHOsF&=oORZGoS{=bm2dPB8_(1M<4l)xDMk9B#fKc_#pq)&8PkAU3bU^3xFo z8K14Ni&A&D=f5~p(!IfDN)|BVAmdYlRFcBv@$-15%ygh=QESC5-}9%oB5=;aFUS=B zpggC*Whg^YXvuaWJ}9X{i3^$pf7+JJEh@5P{RXniGE^hisPj_TKGL{2y?AFUuOkaw z6o-PGA=phk$!b6{VZb29f1?dnmVKOdAd=q}`F3udYju{5tSLuv{z|j<%j00;L3OP= zA~~=dZyTmu_0H6*4Du#>N1w897>p}&-usI{8yjC zrjg9HMQvBNs?{K#byE2WHyCnstHEyGmQ!FbM6XhXL{nnh=6sa^a#x;h3DW7Z#ai}j zCD4B0T6v!p2D9nZaKj?NCJq|tNLr7G=c>iRN#)|+e_jXp;PLXQSAKJ3>_QqjgKlFs z5HWMhoQkpOe_USX*gQ{7GxAEd1K#a$<^BNz(=#&|nIsS*`TPY>x~H=iy`q{Vu|}Vl4#ukm%@;{RXG;)p)zr@%b!$ z;KAD}Bo3y#4A!6R`R}1Pz0fYuFs0Gv;TQgnHm7q_e&x44t-|iKTLyTO%bPCZA$x=V z+sI>JZyfJI88VNUMUG91np+<{{t zf!tO8nj&ah5CBF$$)(*z4g#d+8D0y4WOEwu;q$tV3EoE=F{sH#!t7%E6r;U7JxfMa zitV3_iceM<(;2xHo$udR4Oa;%3kTrz3G?tX+gj!!*AMF%cnDs5J^lfTU}><5>y~dx5Y4ATY0`cIS{FgQ1~l*oOAty@o&iA9zA5h zOmebl743&d>SVtQC2qy%{Uhg5N{bOiyg8VoZdy$x8D@^M0v0EDTu0z z$|^@0?pAKLDcHTgTFmWzgvbuMf!*or) zoXGu^&M#(W7=`&JnslnTxIym%?X-C=tnOtky*uJ;VZ;*DJz z{!~82=9h8i-kJ2`a={Cafyh={P}8sOx(L$>J+GM}wW}SF5xo0v)ZNz z?|Ew5C_uSzCVVq=S+YA>Zh2AE!$V}Ri)S z6Bv+Taxs6v1+=0#$W3aERsPZrBABc;-SUjM*=vicC}Hdii%$(piRZG@PCT12Y9&N{ zdS82T;b*x$Bsv4+!>7lq7x)gY3L89rFD9XA=|nEnPie28Bv!ZWMdSQQj7DDV&cBdx z`SR)0mJnEBZ8EonT9tX+xrcI3ntVnvSz3n4DvdIn-|`sERou4ixd?qA$;2?3ZomQl z#C4ZhXBS=DmZ0~?Mf-P7QYTSTM8m;#6$NW~n?g#B4ar!#kKhsPsua#lAEssR+(jCE zGqk?B%pyAL9#^qjPL^nNX8?elz8~{=YN$)|J_J8z8OK|o*DC|6e+U#IqLV0yUZ^^< z%1uUp1{japc)XwypLOp0FCH13B{wvIyw+$YD>}S#-%ZGa_?Pp>aCTU|_xX-$$=txC zZC47*L8%5%KtL&dX2qEHr@gl&{_sCZ<3MJ_7}|4oDpE}zKAIA-$s4YDnRMlhnuP&z zs3ip|9|nYQCu8ZZn{M_9izX~7!WD9J-4#70|Ku-k?!Ozf{_)Fi?4J8A^{(rLf1y|Y z!YcoJ^q>Fxzv6=&`ZG+5=U{3fp_Whnup`p?*g97=R)olcS-!Of923;y7N}rb_dQ7| zwfNhwJih6ozn#`2^R?~x&^^nh{xKBCCmSS2f;UytLFEzNC4_UOE7_9`JO*8LE;lbg zi3gZ~@@K{^Cxk$h8hH6R(lQ>b-PGnH{(N3J!yu=bRA&gLuWS^Y_J9?K&EKzkHWxFX zx#Pb~>pZ}|fNao1vwq28R0RZR5DzqEX9q{4k<_-Ze1_AcMT`A%Pf7Fe?hU2VEM&C8 zw~K;33Pg}j33!m$iN+tYKJA#jiJGgJc0H*)?$F4^U41g# z{UY2M)ViSSk_8t>?#|SL83rBlNizF+-uFt;9AD2_yRhn5Qgyve`i^HRvM4FP!9C8l zHr`+ksS_ak;@ZU@v7QHAwE{#pE+LU~`el>jJB9atnSE}bD3_c^V=5y}4+7{$8gAZ8 zzb)bpO-E_g&e_0pFhi50_VPN^$A)Ix z2y?O3Ckvop=)`wGl2O5~2VFS#ITa9%Nd@_&+(V(jw9=Ye2JOmdur!-&2V?%OCt*eu zv{bA~wFvz0iN3A&jz521@4-PMZXgh_SoBhBo#nqwygdHf)0$)iW54RB@fqEDmv%}g z=96j0=ZE1IAs-YLt7d-CHV8fd$F#ef{{1ms4vy)Ps0lVacDByzQY3^H&jgWv3h#NOTn3Fa6{Q2k zf=T{^4IS#Wsa4fTn=evtJ_&!_t3Byk`)cRVK-HsbPKPW;PKB?Bq*jZQiQ`(UYT}%B z%dcZ^G0y*84_AxUOpWH-{sJ-QILmRx>QAK_*Zlr57mVvhXPK~Hsfm=&4|(I=HI;P4 zsQ9Pfb349%<93I`rAoDe;@L_e@P7GJ5YDeeNHyeg)^sF%`zGy>ktRiqJ5sZcY39?* zKkh#AM<_mCC34K;=bu|c_vCkxQS~@bGXARzz|546>pdkJcj<=;Z1MHN2Nj)X4%daS zq*iD(vCos^_@Z*Y1NR=bw8B&I`^-NbE%Px)|L&8}`x64C%+dJ!TLr)@ z+*4Z3Z@y~cGR(@2hS4C-$2_*;^w>l=xGD~5-J>nVLn@(@14$J!_StL4y$i_v0`=bf z5t;7ydL*~={czA&2op4$tUTiYPz&gpl8=$PuF=&!Pr5DQCmeJ{Zk6SY&wmOfV0$ooz!fbYZ)`; zX;s5Zx7!0wn4abx<=Y0;L=Xa^(cr)(B?Kkj$@qUibko~Zvw8{XE z3ZlpF2QaRT+( zGxqbFE;{8Kb*3!&$#02^fPWZCgK;QV>oj@@-4|4WN+|gZ7xA^sj9K%9J$>%8gw!u< z&JsmW8aH5jl=5xguaC%%Frv1!_kV<^s85WQEnh5w4Wg*yxlwzwWuwzrXIu?9I+c48 zf3!1qon@d}t+7hOz?@TM;t+(PRi<=4ilDiCk} zf9;(1CP3JA4WwJyW_J0fyNLcfuI4ZL?!Wm3QY6s>?_iTT9O zx3>ZYk3lWHgmJ%ijCuw8G)sy2@5}16^8-BycU(o46)JucFW# zEetZ#Oh=XSQn{Ufp{Y+!12zwf!=Xa7d%PcPmN(>pCb+_xWq z1D)1}Qd(F1#GRJP+!p6HRm>3-ijax~rT*lU1Pjmm)p6jR@tvkRU;0d@({b##8T;mh z`C>Omj!SdAraLM)Az0cpy4hi*!QKfUfSyTZ+c9FdaVTw{jVTH4|36k97jpt>hMs-m zS4n!eAso@w(NqdFu&D-%g59Q>?oVYqwf$k`T&!I*<|>#f#nZwlYeR*6y1Vaau3F6z5%`fCCqkIz5begcP!1b+c)70lgBH9EWoH9Pj}jnWZYqah$dALs4qBncl$C!e2nxr^DoH=nwZgN zSt7N4kgAWOd|s9EdWCE{?g133R?5UqU)9MQ4MB(E@}k8%G`X9yQA%Bha%V=6QRJ>bQyJ(p%G}emN-X2mQHJU8wlh+r0 z38AiN8sNe~KE%acPCDN@SR@Vo5oJ4So;5$yp_SH*%-e~C8c%P||E!VbxNd-3uyR$1 z-FsGy6vdBSMCQ*^&rebd(d*NeX=?Ptew6!^0BN(mE)ZAZ0$!^d03tl~& zr8#aKSfB{}=x64dt4PbEWMxtiv!*Cw)A6U}_l4}o8@M+;`X=p2P!GC{mSxiGHLG8K zC4@$XzF$_FFAho&oh)-G2Zbs6u?yVnmvF_8SF4~NCn%=GXTp9L!l9iM+%d!Ou8dwtsm0{v{#}qe(b?s<~FOa1zDpLb*vp#b2$zG_x z`fHIR)?*ODm4ePR0m|dzZszN}zRYft*rMOZ^*3ME*BJtmsI^G^NC^kpKz9+AGFDG) zFfdySej--4m9H`6Ib_Tw%x;pnmS_(z7L-~y?&V5#Uc1nPA|`B4Q2Bh{8KC6Ac1+k> zeK-a`&qJv&J^A?i8xPKUk-VOoryrqHa0ECboolcSPuy-2*_tTbRqF#uy~cf!wwtK9 z&_4SASFg^R&h6BCpj1NBx4NnlQ4oMAkLS6qHQjnx=aK}KSYT+_m5@U&nccr_9FxT_ zJPR1tw9$f^tX@~PjmtVdBOXs~cyZ(!1Il!A=o_P#`#{r4ZkW?rwE!Vx%Y=Z-MWu53 z4ZLv*&+6I7(o_c0;B$FQx#f3+WiuNE82k2|#AGPTVA$)vWUe&NAmsTKe+F z^Qvo^_`tcxs`puS&0}45#g0XVn^YtosK_SEi775SS@6 zmr?7|Q4+bHna4{bO3*;-`j0eq$_;?SDbp`nbm_!{O0&qy?qtzbr7b#L|K6_0ZHo4^ zKWGM|Z0kGb@+EYP87q)VII9eI4Dz?9l}jO@d@k#rPn+M}b#wnX z=uOiCG3P2~?Sv?S)dCz_C3#$LpVzD%YlYjB2?yfIT^K&C#6Kb6t{S9X{SqI;%ZDO*r|`>y>D z82(=mD^IK74?w>6*ZmMHxfvx67dHpY&fm>=|L?y1AV#v!^41Q+{hxRGd!|whRJ!wO zRPIu8K@Sr0X~CNDv|U1cxq@s~D(iHod^gqSAkLPmooKAEJm$3l7S$9h31mE}&Ph(f zH;qZ+$fxB!-?Ewl=wsC0eIjt5x^Sbw_?>1xNu{|$(kjEGi6dmZj16^XJOL~fHmr`H zHCa~;FEf%5a`)>=y+;qQ61gjh;a%YZpP3UEZU}iZAAz#%R&(^|`5)9bx%TCFH1+Dg z!PJ%6oTCmsg$&l<-5jm(-&avJs)6*usf95<=xR-$8ts+?z5K?Y<@3aOvldjPvNU0-)TZ8}hsFBG$M z#l!DIQp!^c0(9}lj6lq97*}XYi-6N}YvKEW0U#IFS-JT^v8rzm)5U09?|VD;`w+p3 zpr-&{_K)HRn9Kd#-!&fK38QLC=7%0gRKL?U_mz#^j7KRd2}F ztMM}#kOjtjV)wFplNF-t)T9UqQT#BR+~HBB*Wifd?Zxk2Ma>}axw)s39k_MLC_**` zPt0O-fI2d@^Kf=yYXQ!@l_z>feUEFLZl2$!0e0!MViL6prq1RVS6r`(06D8HzzNO- zjk+U6wm@qfX`DCECNAm;+E5&-hlV_LN={dqBTxSlV1D@Ki#k@a ze%UugiW`F2E)G1qA?Vi1n{EP6qE_jv#r)dCeH)pD;y+zWJeuLd!kNA_?}{nYUtzgh zhFPt?X*2fX;@}RJ%U~diO~`#p?UMA&F^bA!wrTA=~8+|Z3_R(z@+eI=rd2fblpz;X6FXLF3#L{CvxO`07S$9XV~P0@+oiNoKNKvgE#d)@yazA5QPs67~}FXy0D#Yc=?^6D}~$vF&M6SH<({3W2(d zw8UrHq%4tgytSFJuX~P+{BP~C5~e=#U+{g-9>An<<6Vr9R^pn*#7-=<_1)(tJ^mpM zbqJ)li$=U#SnB%GOMtn%Z6zuHx_^VBu3TXR@oyd*v_qtKy5-s@M2?pgof}>1<)QmR zd|pQ@;;ZUIHz?Pst+1sG2X?mx9-c`x0$S`Ik9tt-iPX{UwgsQ2`!<6Gqfpu z@fR1b1_As(GyR1suLy9J=qav;_L@%8VcAntZp1Z1O zt%ddIq7`E0tN}_8cQ+_lwyKMov*IsM@pPL#B#{)Za!;=>Yo((oqN}@z)O@WLlS=@I zS7AX3ZC`o)n$3t0{POcgI~_;*T<`H`Hp)R`I5w4Y19H26`kQGSe$PUJw9j|y(r-bl zkU~Xn@f{s@v@=yHxWj8yGp<7&!a+^T)B*Ig4?!k>GjQ3@&@^WE3AMODc+9TlM z8!<62gzM_bvmQUDHhp^+^<4}pfaO{DA;0lNd=mSSnc0yeU&`+p*S^}dxw9npv)QZF zou8HgaL1zUm&zWviXPSG+xx|*t6#KZ=9LNVcJ!vX)W)Q3cB82-J$Gxs=2S_-x?q)S zKDD%OwPGI2($XVilXI8Ba+SBOLln(BWqP+%mldNA+TTBUo+xryPib$qewQ7P9xepG z44yV{fbt!1JM+j=8%koAHI7S!ZdGD+V%GB*f9lUz(K^rIdE2};b=xhE3~Ok|r%Ms2 z9XC=rCFX)-ZSHLODn6B;*xww5+y@IVJ*z`QxhFsUOU%JDLWJA2VN{oYGK4%t`!4l( z1-5;AxdZ!SC&q#E*BRyCTt@LP{YC%vVpIf1{f^XH#pd)-NvLI@iCQ%RYp!jApaEm>k-3T)qmshC-9SSIjrva@X0xUvk;*BJ;YR{>WE( zCqS+E)|%U5HON%UlJ?yWd}q4)bX1NSmmwmBttjE6YRQeMbIPsr{`bSRUdsu`pjWpQ zE`zUrb66qTS&n~yLBuEh@L*Y?T1Gn8y}K@o!rn&Mg%h?^4xLz^RH|F?b89k?JKv$D zOBhRKN^vt_B!Bi@)YEEipfxMe;*CEBq8vRRjJpyd##wG$Hc6(DW_7lD>>Enwa=aeX zU&sziVRSbO9lp8RXLRS*&w}%o%d)wc7+=wJaXqGqqL$L9pd0Zg0exDJl<9SYd|z&U zI9Tc!3`V8Paq~!IE$%wnL-|dwm?dR)!84vGpTK1J#l4ty`vduh)fO-AHTih6osFCA z_&kj)3>x|3`0MNIT!)h(uu57b$Co;SGEIwpnlJlw{?bGd#0r)KFqtu4s6M1P=CFZk`&K6E>+RJQu0p*|=Rs%XLxlhMcwWGJs6O8jfc?8t zg#Kgq^-TPDMVXPw;Ag6&wZ{3N&KoJiFkbDuWI9j@bQN&!bg&er#VrwgE@y8Q^VS++ zs=|f|``zTokjz--BbQ22b;m2gl}i?@sZVA~C8U+REI$A}BkFZo!8RJbJS7&w>98GF zX94F0z4x`2L5<8W_O60#x^5mgB97}icBcK+^cvXfSwJDS`O{HrTN`#4f>Qd-o&sd> z1@{7J*KRYu!Am>6Seg#3n9%*&S)Z|9+D!MSHr9AawNRCC7|#l1Pmc_|~}n^2YDa=+hJ5 z-Xt|ci*aqu-y4#6vCEUzoAKX_whaZlyGE7!z_hZC&y@wH1? z>b6%bw@JH2&ybYNR7Y%GeD>m~`P(IA>1dwgC66)&21SyDcwLrwZfd5TH=tX6yp+!p zt9NpSjY~KHM0?2owy}=wURoSl$?I0WBT`&~@3AoGDq9Z69?qv^i)US5IbY3~!RK_@ zmYb!A?lfOjI_yql_v%Qa#9BDy*aj=1n*u^x(GcDgPMI|9ll6n)flZ0Z6j=3H-c;|a;bvV{ zi9K|KA~wgtC(24N86CNaajQ8Ye+)e6>|C)SVZ_$MQ~H&9c^UJ`Rl(lx(Y^*~^#j+&>^Wb!MCwRlR)6nbUEh)olhxH(Rr z^HUNIhu(2cUSC&0xx1++o<4!zt;ft0n2uW4(1Fir+jUs*u(^HZx9vT4D@Bh}xT8Sj zSVairMi9}~v?KonchLNBGVJCq6@3_6Xm7xR1#F)Z`D~jN!5PZqu-v3%HPCz0@q!NS zs1C25)j}^i`W;P>hP~C9EZRZU%)fFzonoeM1#3p9Inx5$#B;wm?(inlMAJ&-DUvHr zRMPO@xXpB)9EjE?nZN(n^o9=xNCwwrODr6t z+o@5>;VJUvTpOQsECx%0UhC&O^C3)`lK1ZYP!PK4@+EfCwe}RdO<65ueY%me^19Hs z$oZCM(!$UR$H5|50Ib3*%?cufv^M6;$=wIDo9G}7PE%`nbbnBMz}WGz@GhWKK9GfKiFRUJlXhpo{8bs<%`b}v(dyKk`E!1_^>2$MU8ehtAQfbSw{VY<|?O3 z{kQkE_MT#bB*3t+yInV%9(*hQL(b71f^z(mR3Wa9%}k7Pxb)N$ z@o+5_Oc;toZ;^y7`jtz~(d)jL(*ab$4?M4C`~8VllQ*@nD7a9@vPxG_6qr2@r4aKuu zc09t*>uO=QP*go0>!+_+JS-Nf>)_?=?HY^+G%qD*-lH3%hHvdjjkyj;ER8qIV5)HNt!N6V==?nc`-GgFVcR*d;myN2Q!}hlB(T=dlM|#t_w*$g|z8N3=FTi!w< z_SA)%SnQ!IHZLYqL}4{eekTtKc#a)YMq^3GZLQq-+&E=);kQYc1x3saqbWQe6MH@~ z)sDrme6R1mHGjf*x;t}<9bM)|QF(aN&X?gTQl_)jav3qYonV9s%QgtkAL{FU6l*_E zGL}{d{pnzk)R#|w7@ypI$zSyK)0Hzf6oH=Ic;|OQh;p&DjZD`SfsP@{OY^4?a?D3j z?rLOX(G+@(uSt1OT*CJ8s-yeWNFW$0&Q>$%>dj|{grCz7UbVYB9Q9l}&U(;Fs zQMWO?V>@&e>|KfPFx)}MPdmk0NLwvT67KVBy4s2wayu39`yzeXgv-?+TC_R#@Y0^d zev3UkyI(!y4;}Ue{?F5*O)gNy1T=y4#Of6Xf$s)gVO*K%iUGv@F92C2KuKz@y)m4{ z!uk~?)`otIiiC>AOJw2S1AJzf@4xA_g=wxN2VN7&B(8SZZVxW!u-GQMWno_093Bf} zu#z#A6a*jDBiRHpE_D{DmXOV*3Vm(^ZhyL^JEh#G1^hZY8^TU2x()wpqrQ%4OzP>U z_E?|64&N;2Kz6zMn2w|A_U`eGxtpf}r*Mf*i-n(&^o_8BzRBXCT(L=V8{1q^A_3%|Dd1~?+IwzfZJmtkKwQje3 z6R~`$3T2L^nbL(f-Wc7UK{cL%E*Zqtwe+rt+qIq>-jAmYx9?~kvHfKreDoycEbER? zR}x&V6ed!5BTJg1G4Rf)qj>~oop_*tJc$$Pqf#<$y3r(-)=*&(;#Ne&`Ph}{ z=cjB#!nbUaaKIB-8b1_0|m{K z`%5CxEJWe05aQqXnE!)vH_`_W_pX&i9&^Y&NB`G;@*kPN|1ZAt%N-$jQ`xTBn!_TV z))*&L6o*~LJk-{^`thEjjA;5?1kjHoO$?$YO7#^QH4LQ*H42ParQ0uWHaW59D2I`KP7QbGfr>O!Z<={Y!$zZxXxW}i>T10IC zUd3B}Rn0o}KgW?Yp%2B=a}&h1%o<>{i=wwcc1)-n%~o4cyDb9|9AswHu- z_;jxx%c>%@`+i2KBL$Qm>EJ$zKgN?V&~5dXf9EeU1jHJ92re^$&3~LlxHTFYriZyz z0h)n=tubE*jV{7l_OG8`FL~&r4S&B8!G~u(;ncG3jx|P6x7}i)$y~-9#~cfM!kAoR zrRX{_tYAC_*5#9QC@mF7`Fc`^#(bBmF0w zJk}{^nWddo{v5lKV`&u2+DObUA1DT*4Hn<4G}To1X=?oDPJ=%qzk)>G%&@(t{Jf(E zwRjUh9j1?Oeju8gVk=Y^@xbNhw1;LEv zgXUem*=3RBrxa6C3vqFUMyqTYb{D}23r`;sqlZEKdIV0MA9lOxA78}UAG6f+Y}FRB zm2|tPt;Qlcl*(7W3Vx|Yv>8T$k#&0a8&T)_fz$= z@;SYen3a`}s61j-vD3G$E=jE91uKwNyzor=mu&I=4_~gutx_xz2pR0{^l`N_hK@`> zDM;uiOyv3bW-T`1&sB|JZ<-$dud4OJF-Qz?KNQ@j(lB`8>6KUQ&fqMg}b9yHaC;k!jBe< zuIPSrQ4V>PC$q<2XogI;UCtOZc9RkYCKk1mwpD(E^T4!C4PF#8M9!Z{1C|mB?c*Um`!ioBOE8+`@*>WhI{`9o zH8{~3XfpBjlr53ghuiTkyMM|<7+f`a^3*~5sp;8EW-3Kr78yRe-#5*7SytI}jy7jI zmj8>pw+@TC;nw{h6+u)$MWh?)kZw=`LApDnW9V)~q+#gpuAzn;T8W{N8X8oZp?k>l zuNC8Z{hqp2LJ=A8UEgTOy!WtN z{jQXM<`r%uz|?*iKTnX1#LkyXoPHYsiGvd;oY)M|!MC4d~kqS+w%{EYursE*PgZ6>~XJ@fmT-Q^yLTRxhf;7@`b82bnGlZhBj_(vJ$<2v?dpAL`om* z2Gnz_>6WYk$tKUyWcwp8>JI@)UVj`F;S@?nWh#f}l4}wS*v-79qVq2r$yB+eRI%LJ zo~(b6E&$?|BcqNw*^mK-A&YMjl=1D;MPVHYAiw;?tVx=@rOg)m1Ggf6sQ2dgFx}$6 zw9)@?kNwt!jzZKP^B;=S|El@^=?C_|q9pwXYq?bZH45=I2ttkfAGRX zdeLI{e@->I|6$H|lNfIEtb(R0ri?U!R$_-^%GbO+zbf~|B4$1>!OtahU(pBcgl?v| z?<8frrh`>~_Um{Bh-nRvlapE_te9C_YSp>)i>h1OgV0x>(fk99UPs)`ScPVJ(qF}J%XEzPnz<+4S9<4&hhi;^aY)1k@E>W-KqqN7OO2)kG0e*?0Aor zlo|98z%}$@x(~Kh-Cwuz5_zjxS=BGHPlUu$pDDZTE~SG8)r$rz#B$fxUTtr6ARttWK;8sZpvSYWcglA94A7<1&xjdWD!PZEydvE?D_ z*y*W3FRk7CRxb~MnngT1Ovhkw`W(~fwOIH@n&jgZv?9i%vV8bp!gT54Q#)j7YoqJp z`|8f+BX*ByCp`j-C-_En?@fpMIvJ5u2nfE`LPFkr6+s!Ky3T||(D&1|0uu$vG}}Hw zo8gX`5%ZzP_V7hrsHWZ5Uayr><`wiq)Q?mrleP=63t?HhUxhE&MAlfVPW)673U*LK z*gx>Vu`T0@Z}k;KutVA!lb)p=rFz`*57KhNXh1J7T{8FrG*<<`#6Un=fz?c2xxYvZ zztDgTq;@;s;mh#jy*ZSBY}Un4V*rsPl3P6{;Hji-&Sudg@f99jXokL%^jm*TjE z%mr-$MblS^_ke(Cc_npSJ_mRrHxJcTZJG|KO~aptTB9}9+KB_Y;#>3KzA3Iflk;T$ ziAH@1Pfxy(Oi>boRcmXvIwf5A5)d7u(+7k-TLseVi z;NH*r<@7eG#g1jXD~(F`{i|pd%at)_tBi~^aXQCtfw+gwarMKKWG~097>?t(7f-TE_hwMh1M7o;hG119KVr8Hkt_J6pEyRERC(5x(&#k$6$2 zvE>B`>hVs7Y}#~^K)ubUa?hQURlmw~MCGD1kdoy}x2F_z|Vy_j4Wt3w#qF*UJha z&jWdAYf|Q#JgK;^udnm|zGYd;o*Mm>0Q7VQy8OAD{MoZ4+Q{8^l?E6BPVdBZn;uOd}Typ^nGtHSha=$FG~y)uJwvb1-{r`tW2WDVr+wk9WDF@T9X z??zZ>Y$No^w#pCug%9I1)Md`=%>WR}I4f1)+=ugjpeNE&h;IM?!{7a{4}O1o1qwhM ztOcftQmq}_Fk(8_`1N~#{CyeodFESPkuTg3EnT75KGq)U`IHV3^SGhIuQJ?P7<0^- zcvmnFt`TMTR+ney-peNt!>l*0-=5vP*_Y(q51$K}^8j0ZqKe`bJMPh&5SJ894#A9~ zG!`>d#KgLYM%{nm`$+e3Ku*`hCMVft>E?NN-C_rM=E9V_J&-Hi@khWs4%XH4Z`b~z z@ATh1Uml2_Vx`&Zul8K`#yA~urOZ;=kj3U3zTihTeEWtvuQRcq$w=~?mpasb&45o+ zl$dTPnVmTP&{p5gCgh^pD3 z>n+{GR@<}RE&o`28Zun_XwV$~0wv~Dpt^-K zjR;X&(?WTtB#@EN@2xXMqDOLXd#+J#$GcP}_TE?uAhi*~5GdP0VQ)Hh7FG>3^+Efa z=iV{KE2(sqW=Bb@)7B6TP0Bz2j3}jdz{%GN)rYK<6{D?FmVlt$K8Qri>~nY2A>Q@* zxS=O-u^S~BC670Nm(vycVp`&BmeGZCNwIXGQP{nV^AoCtX12N7XCW zse%b$Aq+Q2)pjP329{hZ0xGf2k>g&GanpHFKEIIld#1NLlh0*^(#`rr0zsCqncL#6Iav{<^7YSxEXfz3w@ zez*p^hzD{6G5}lS(gW=tAXY9_pG^uIUKh@7m*#6llwJGkpzCGlZhZ`p> z$0JYntDP*mreRJq-VyO#ya z#h*e8>reKxMaoMuIt8vaYw*KZanZUoCd6vS3eNZh+|O$V^!hJkCZsa&l)LL??e8m# zF_i_9w;v0qmM?KKsFWmAL`t&eE-_#YPA9W+`l5ObkQ`Rss|@)Jm=usl>a-nHvD7Fg zN38AuZ8jzlse0fubD#p~B=dz!(R&s>^L4BZoL0}YPK7w&z1KqU5qNqavcw?j)dvD* z-xS`v@FzaIih~p9>s|s|LYGBp?k(@_S8zZJ$K~t z9mfCqm;Z;K_}OE$7f$5FS~5-3Q@CJ*RU_iBg1GK|g$aF3sSDMM_`uQ`EoaX8o z-z(oBBf^iCxXYMPQ;%>v>%Zo|A>J_4r3!Gxd3slBazfvcsfEUzEGw#~v}05?F_~2W zaK4mpr151nSjloc-6mXZJ2MsRbYH2AAcOaXTa+5|%BH(5<;6?pZpg#Psc|A#jlpVu z_fjS-*)E=+$*&*-TB1fnz^=CL50C?5pNij|qR5+%049IC)_GM?=(}O{pzAW?^Pr9A zk&eLW8P7&5#-*vjCOvZI2j{eVkU=m%x_I@4RU8~?$HCeXys&<+U#K};4XM36U`*fD zCm~tY&(ApJ-vBYor^R@fj9D8V0~*9^Zqj#P5!8XQ{&@0*P5Jqwl|0LDsiA7aGG(gk z-(P`Vhqbx>Ty{Me7Syg8HqPjpjprsW1CDC17C|0p6>V@OB4=M9+Fgvk&%XAO zm`Rf52P?hS=sn3O7UO2lfSL#q$%unApjfm zQ_9nMQ4n(JcPq0Ba?R&lf1fyd$Mfi=6~?`JYNuSYMMq=BW+M=l?Ge7}P~`@6->kC$ z8U>o10Nw575POpi>$f7_vL89()mBiY3dBI1cE$Hs>IpzkIQp~Fd~8Sux}zd}H!Cdn z|E)LXE@aX3jQZO~^8N=LB&67@hQnlnS-ajdjaNn6(Pft#j2@X>k#=@CN!)Z({F@md zyY7~+g~Qk=X~Vr6+`CKcR*FCg3o^687;n9FlId-)v1_0}5@~6GF$pSfSz#-WF)z0}A8*={4^+SDl z7~c4*?k?9kg@J34S&1@j!HmiZPx0O=AlEzZ+xJpG97#9KI1rC;Q0}xkyu0;5&7uhPQHTJ@x+6BgQ=o7gm-U$ywnbCg3qsqMK0WEyJmRui* z4(dx?(g$wVY#lb~g0fgVM43^98A3jzh(O(N^+9sevS8C+7m6EKgCfnOFfqh=weh8`9;>mofE$euw zd}p>JP*02WS2IIXfy?a^n`GhKJo@v~s`~-yRzvT*Ujb7ncrRyr2sa$rue4lO}R?o##(pGemwoINzf z0cO(Iv0lYs$CKHtTH`ae$4&)~5@I_dUvrIB|01dX!|e#gQ_P>CH*da1Rs0$A`R6{z zKmH=IFQRYt7+3s~!}2jgJMaJJ>sj_$Z;v-d8Dt7;kB?`bNW=oY6Q0X|@U5YuySM#> zdi^pi@87?uM;d63`xZRaW^Tr+8L-I10bSnM?9jjt^qYq22jPplOS_+r@)`GB+~XU5 zIVh5WKayEJdeiGL-a$Up!M4kb&JKTim9tY}{NvZzHV#)vX#eh0bd1~S4st?K5PC34 z;V#{Lvp4#az)kx10+l4nsw@k}NJ2H7i1!qA_k#Seu6|>4JjYF>Bqw%eT|bs+PVUkr z>z<{YR!=mzHM-_$+}#S#3PrD|5TtV&R)-*5D$>`vwW6v7q`i5(yDm~)$UtTY4G7rC z`MN%837$|5@!5%VT`kaE>~ESMHZzDvQR5>6KN&N46-mz!75(P0xrn8%Nd~Km$Zgirs6Un2xJaUvx*$cdWi1PY)!ulim@!lLQkP~w%ibo z2^_5TVV^UVmEgL1BPnu!1Qor~*7Z@HpREjPYaH261^P*;kNzgyLcJUmIq!8DriQ4h2ubm>tytj<%NV-H@qzQm{s}m3cx%ARbCtiHi6bmv^=P^D zY6y$A#?>t+Cqix)M<6V{>>+6+`icLx+p7LF7TB(naVf!FM!Gq=7ze)SNU8tc6nm~$ zTZWM~|0%q8@#(+OoIZW&==e3hImkb=7}VQ(iL+5tZ!o$k#`HeoSM5t+l?LoPO9=E@ zwO3!dC@|5<&-l5Vv+DecI&@D(AQnePM$}!4s_bXXCe7+f6LKYLf|S0aK^Gv3VMC=(`2xghlJY-f9GD#u( zH=Z_wfOHZM@MPvmW&{p7J_wS_E2+_#yHdy$DRSg)%eKV5REF1MS-Udmww}^WTFu9? z>b4XDh*mSEPqDAfo^N4>0A>+7>S=frF zu2vzyLybBAi*h{OkKZ*!6Mh@2vHX3ENZ!318I7B4k{J$dxu(i%uloGevWD?GBxM7C zf%oPid7hQ{&c9{>s8aZ07uBnnmpej%XZS>)naRF$>!)~8wJ?*?WnL=`z{CA^8rS{i z_iJt&76a}Vq(a`Qr3j?-!=v?l;D*3~c5dyjCi&9`0KZm6+MCgQIEmkdci*74LV>%~ z`?oaiZy*TuQ1?{CdoRyxT=33Ls zdtPx?FtIXE=ZkIAZ~=6Z^Hq(&&Hd^cF5_M8z@c$zZxOdN9*At4etRQ_JbZa~u>@0& zXhDoSFg=Yt@oI2QCPoM|LzD>GUdQjPc{k2h^4i4$xyW@}cL>4Nt*^@9)ak-prQObs zwrOZPz$wNvnktt+o2I7szw)S2sgr(fF#wK+z2CirT=`At#Gj4^ERLJ*0GAcR!(Q`qj`1HDcNqMkWT3R_s5h-c#13sZGJ%SG*J$wl!?dSVkB zv#N4iap;^3=Q)&?fA673QhO+jRArjCc32(j+dt}pqpkS3Z!U{?$J`{c#iFlYMH}c4 ztn3Z@mV?eIPlXLhI~doSv}Stz)#T6(em8ClR2NLUNyEv>^g^GayF^_(D$qd0FWe+- z?e`@iKANjdFV&S}1rw1Dm#9Mp=paO;(WJ0Q36jZEd>1 zDa&@8@Rzddl7jflM_@0rI=-@@h09z={YfY-yL*C9$vpMpB+T@O@cdtXm!4HW+FtZh zb?Go4*2}@T6)B_%#Vx+*3_k!KCC4k9PTlsUYOy*_i*W|v{#ViruqECLZ8gG54disa z$ZJ`Gti?7pTjLwIO}A8b4U|+zF=Yn5?^R=%GmxH~LtBo{$oG`^M<)7-rJS$tA$M*4 zmCN2ezz3lFT(Mr2(&`#E!;+lK!1z4kEr5YoSlqf!R7>`16ak`C_DR~A;`QvRbJQKr z!R2@H$!hXo0X5#><#bVMM;wOF3ogi*7|}bAK!jx*92U#L_VB_bU;rY2}JTq z8mZv+jl%TAxbdw8(DYl*NBW3?QbMO=!i|PTzusGfJr&aHInT%Hgk}QXn#y~KMIxd% z`e|&!lnbeYDxJ~%-4iNTQ}i_dkXumuiQ4-6~E#h%OMJnj=&X7&@4gTs# z*;!o;)x0{PKsKq5=1(7;g|;`lX%cs*-Mw(-2$yt}lB6$c8UCj(FYbNcASz1%8dQUy z;l`HypdyuP zwabjE?Q9j`{jIR;IZGcLNP47O?-GUK_u0)<3i;3)bO-nP-L~c~2CRV2p2b{OF4yrJ zUrf+UO$7ui%-sj6F-e4*VdZ_rJieXyJ(NaKVA>DU~3&~?6=4~$qT1AA&Ntj`*=?w-kQuAC3u+$BGU z%A}_r5brJ~FQS0;oy8#2IuUT#4Ku%FTWr2=F7g-^xq2QgJd#L?@$vz&u){qcL@{IE zo_0zMU>?fD65Xzww~I$9>~aeXC&aD;J1{PrQ>&u*ES}Sks>js(NLP z1qvN_AZ7R_L=gSP0^PS}7i9K;^!L|gYlJSgYintjn-RBDh0akgiMGE>(PZ|KK)lb4 zmRHqH_m&NR2j-=xU7lFGWxY6)npLRJT&CH@;|Ve2}RhrX17w#YE*`c#2~kuXgn$h1;%N` zQuh&riLs#D-mA&4Cj_8Z&4o{3-VBXxF$SQANu&m|Rfdnsj0>lRgI zc56^w+!GUA!M$p$AzqH9p!(i6iRmmeVYp}J31e9cTlBtUHV4k;$UZOR4RMTaJ1y~X zTgbH|7}Uq)`e>?C``+{U%uF~NXpjS<*6Pk2`qa_J)K4ZLd4J9K`-6)xwF*;5o6YX6 zO`>p>MrOxIz7EE{v_ZJli>$~GQ$m-n&|OhmJNulgC-5!3W?iYkACJU;TB8w_u>~_a zeV!+Gm0Y>tNOb{!SblH4HzJVk@(0LRy~b%ciUh>wSRUt4Si>t2FX*IqdSdpPc^9_( z`&){Z$^d&WiB^_Nq-qOu311cy@{pZ`?W}wufq34Y67)o!lgg`*3(`RP1%?E!exRC*Oe$@9cFr3C?J(cPNFC~#AqJeLQgVT!{bJQd-OjJeRUq3c zzRj+2H|IyJNYW;k%gll-z@4C&s@jM0mixdDHO&R0hxzKTumVWVa;S?eN7|N;*UQ_P z_W~egDl`g4zoJvl)Mn0o=#xdwEuO+bKE2vU9c=AmS-gAN;E#)v{D=rbWu>0uy~Vj? zc4PMf(K?@A$%l&#`%YKPQo+y$>v_jNSTvhb3Ke$ELy!93M$;(cMvoNdsg|jJH;S#h z1{BoUdEjti5qoFT^p@F^;3$64;pnAL!@OxazfIVvFYzQ}>KympEin$dSjAH!4`u{K zdXs>o(eu%eOS2iKq7lp8Y8DVNNTj4asWP#y^g_V-t=HBltfZ8UiYVaA3X`P|D&PIx z3zzr=5Gi?);)h2HFmf*2uB61)vTd0Y6J!)d#(ZDgYgecimfymY8S-!z3CA5x5U~g8 zd}X=Mq`C;OJ>#!<;^m5pp!FtoB!|Bme8_p`w7pC^;HY;E2!HVap?k-Vw4Ivg-x)wl z<3Ey$DMjU@Nx!`Q3^Wc3r)ONIa-U|-lINp(J&u=qENMUlt#va&GJaoh#g!{{qk*XB>D9vmg|t|Xd*QQmiy>BReRR!0r7FJW`&BOSacHWv;ZU-~7!(04Bnu<6jFD zPkHLtJAXAxK?|7=Y+Uw-)ajCRP=Ie|yLk}%db-8^O_NqXJZ!#;@So9E%bQ-OP3kyy z>4XXms`QCpMv#n8h^LoP;xvBa3HUHNot0Ea1(HL=LKb6((&>LZ>4OrlG#dWI+1pi+ zd%FJ&er#TDMy0-Z^aY|J*QG5ssC%Zb8KCFAVEil#eEk7rtR>pabjTkK8X#;&qu%K+ zYlLu1_Ma4UfvnYqW02Qkt$#eoYN?ELF)FMY*$`lv%ISmTaUZ6eT#7>QxUMo&1O1O3 z5>JGX57n9Cx^%%K7j#T$XjG5=KL{!2fpQ_$$26>hrZ-^b*hHLsG?1mb7O#onNgxe} zl;_eN!qMPi->D^8{dm9=G6YP0VlpeUJXv)wkva+TM}{y{uy%g%Lg1R*mbqdI^`C^?F&`mPYiy`Zf}@remp?VDqoxVyzGG%JRXhc zgQ`&rI9`#+UD-0+O)AfqHScO}B;g|9@Eh6O;DCsFAAjxfYySE{E?P&rhsq~{WIm=; zH5zU=pY&Ve5D@Gd(qEYL#V0D$DEv0Tu|tQS<-f}~tfyQ&KdLBa4s5WSv>j)7pU&v- zZ)XADHF$aYLP8Ws>l7;hT=BKuH&f1={p4KM$JU;Q6E)@aN|zlSZwknQ^ z4@pl@TRPGijD!UrGtxzF-teyWrv#cQ5LzhJwfHS~y#?5cJir>Hv)EZD1Ha4RpLm~F z%VL{8O><-(b>o<}mZ96|9?5f6l?3RYAa2XHdW%vYVtP+!Q6gZozB-T*N#wn#5wi?b z>#!yt)4udy$6C}LFVTNv`vXp7#?;rc8(TJb5>AyG;Ea|}unJFVhxF;{Vvo43l|Ax> zL{^G6ZyN%tC^Av35{vl6irEjq3NPoE@!F65ccegMf#*v)dFIHCV#~$WGx`$(il~oY z+v1nGXYxmdTM!Pw2n}3NSObz0sU(I0-_Q8SoS90k#hPvTR4J{&J*#lYj@j_#B14C7 z`R|pl@7{d^e1#K`>YJ0F@GNYVf>}zhKeXC2MQY#2NR~SSB^yX1HVp(J&r~*A2RC2x zC@?{>3HiK<^x8Z-->3l(YXCFH_Qry|2XZ0aL^Pncc;Jf9xsm4D0oO1yyat7Pw2D3u z0;@>u1U5ZQ_F!!%&&!j$;ml)}gGkuHzr>|PV37w;j)p!d}ot1j{;fkjM+eF_KV6(K+Z1~d6dZdy; zRFGk`at%>h#T{sJ>uLn}O@7H3;UO=S)o7Q}LJ26iN8e-V(itQVv|X0S(zk6S^&F3% zr*#yT_d99tismaMjX5ed>@kwRjuoyEbOe|`iJI8%$BkTP3`Cd3v6Om@vu(bNdo`6R zW#CS^Ap=h__E~dLzY1MAay9Ich^VM&Ly!lc#ac~G-c%d=Zj`BOUHC35gn2u%$?UG; zF~m=CGysT;!mox($XvcPlL&08Xz~LB^E6gS%jmLnU==VJ3Dm{Z+bBLeLf@Bd!`g{;TWq21R0OS3x%Ud<~tV4ORQQe!j|JNK~QpbFZqG>0ja_fz2%ow zNHVuOi8!8J!$m>`cE*Bqj%mO3uzQVs!L>jml`(wM|V?h5ziJsUHN~R_!NDQoY+QT%p z`@@uRs9&{kS!x-W`+30j_iek+1&d^Ptk0xm9lFrQgWC?7~lo%Lmdx~l$O zwM|;sf>o0Z%XDjhI`vUh3^Vs*`*G34xr_-5oroQ3%>k?P1?~ZF{;w`PNKUu7>AC?U z4Rt1cWln+VMS%$)J-qq=&7qbvu(4$iy21zszrw2S;;@zT0&aVYL9Sz)cc*94qzY^V zleUJIJ%#=re3Csx@4IjL$PGheeI3{K=^E@5k1cVvrij=4Q5G$Pp=G)#e|AtH{iIQ~ zg#z}}ah_{GTnFjHIXY29S;E(x!oSZ2_vzM7o7}jL9hrEA_zuC*8j_O5eaCi()UVW6 zZp0IBo**ErT9&Cjw86jhAV_)9LY3Z?S;(%#V3=tZ(GM zKNmbB$;o&frMSl?S~Myqr~(YSg|kEHXTo>I6#yb(CGMC4fI_NPK9x|a#`q41mn(F4 zSOwjmT19@#uo$^n2HZu~PD>vFgI=xssXd5$z6~(jBvj~WEQ(YpN!Z@PXjRNB3;CZ+ zmGO9@4n^rMzcR>dT*`^^&kPauVDG(87#Ogz+3PPlVHyQ6_SQ5m5|cUT@*j~I5N{F- zM8gAmKs;>91Im<>}Vuj`_K6Id+H*X#6Aq=2XY1} z!^X&od4#>UnYnF*doAUxC+qq7L%Ul$r6qgyV{wJoE@ilPp+q49sP{44Y>1^*rJe{@5AeVu0AkX9uicA#Fb9suG%6vdO4pp1GGd9tH*c9@m zAMWj03K8PWdIo=<$Iz-aYo^iyRR5PQoOmb_w{7+hoD&XulvBU1y663B^9(Z{1Ba`a zhHmCvfK-+!4s+G4fcc@#kIm-?%ZlHw_!s0I_VzHsE=6OdDjov%&c+NCqQw@UsNDs> z?B3@}tOqZ?Q=MPZ+oM((Vugz0~C>2JF?V${%4w6ATJ@LC(3rgv`|BdA@;Z zGv^^?7}q}xbVq0Ma_QSfjXq~>-!r*FFTF||?3TtHgGb_NvKri}f#qiaFiO821%SP? zF2|_d0B?SJfbKf>1rNpxgU|&~NQo^`RWcmx=P7aHg-Tv%lr-oCZfLpvnMIDM+&iKu z7Vx)0X=A(=IBCxsQiVK)-G1@LqUQ8hND^SLr46!cgzZ zaQKJq3fb1VM@MQMR%!0!uX4peVS4(I58yO7@<8ixvy#MGj&z-%3c%)AZq7fCXD%5v zhEWolf|J`#aO*aOsJe<(Vo~C%i1>iZerl85JJG4m+U5B}T2)N` zgv|*ql^t$PTls?M(m{`q)(CU`!OP5d6(9ihbcC;ht*U*$X^%z92O8KQvgR$y5G&7! zkE(4AhYDV08zBdHMp2M(zSNEPrd4|Mk;Ubhnm710Cotc7=`snWG_f*D(3-JOEC1fHXtBv4vwy<{R_qFr8<2 zO_mxUb6QK&-F+7y6-=V=Qp799=>pW&`UoH>ttU0Fj9Esk{Nx=bnK&|QAZ9MQbF|Lv zmp1szq@8wrM2b-_&`fN8gt*`$M2Zfbc{46yD{FLe_9`eytujuu6y)|czv!~i9Z&UK2 z&{genw~U5U;jky+n!*|D5Y!5Hs86>zDlwEG?^#}Jgt1p0(w+)Vk#RvTAW~Cdz*prz z^C^-~LkpCD(8Ld$;-sSd6B+O}o_c>x?ish8=-0%`m^rJ8zH>YLadN-KoNj>UfoQV3 z5Ras`gWEP(=jhK&2EY$gTi@|s7!L8?CEX;&0rO7mFsYUtKy%AZRV?LlmBcCmNC&+Q zk-{@C`6= z44Ea4bPdg&S-WUF0cPF;^7_3ZJdkVjpvs4_%YhL~z{Y$x@a8F=V?7e`%V}{*e&atM z7STdA1@a0d7p?F~(C6D%zDE~m7K9ad{BHr*C8 zre+<2i6ZXMAV~(L;|DKJg7Rf!zOD$2!jcXVw@E;_#tGwVsWk}&@!^3zvvNo2(LxU! zI^w4>Q5}(KZY8plr-^_YO_C0j2rPrgD&)pXbT^~8RkmlH;u$BliZ^+eqfh)w7;QH9 zcLPPVZub_wCLEc~dU9XY-2Px-)GEQc25uJ?$PkO1(zRdv#z||~NFIv7sDVVle3vxe z+=Vpri)C=)oUPTTYc5 z%(N~`OAa%A;ChR^%}_Qs67d77!*hj|B&xu}vCwOo1(6?OlEaDzkIP@~Bn=Y2>wdhh zGOb&FbpyBQk8LQ-P02C)Fw0rG80zz!1`Xwy-+}z-88! zQ;;Qz+&iQ6y;g0dF`7NHf!S|I8L8HD9w9f&D21K21(x7e``E4uk>7Y@%O#viT$O|; zB1kcOaCvp)NT|Y`w`DHODS2ZUs3w*L@Urv?pHMZF`vy-7aFfO<_lVyf`iFO)DY8WGipSfn0<8I1ULoK{JU?g-7oe_ft7& zahS8d{gemRw4@8-gCJb?UzGV)?gU?Z2(YcD^|(cUp^Isn*ND`Bn6pZRTu;zkP3wNM z^YojKDw(iO#jR~K=i_&X|aUbacv`xJF?RzgQ7epE9?Qoyqg)Kup0dDZ0fm8!9;FFuFgxM`3-m2O!%ml2m#_vy%mrp?ourd}?@#sa zk4JpZ_<%_!w27%~Y9}A4SK}+}r*j`o>mRgVNdsva%0#4AcfJX)vy%oEud}S|O87{T zlGvd245`3RtM6zBn@0*|{DR-BR{>rgxN_^+{YbFR<}Kjd#j7vY-~1aNS?-Jdie*aK z0lYWQm(ic3bSqtIiF{YtnN_U0efbN$EyW*oIK#0uI~nu z@J10$mP_3wpw;B;gWm=tPAmY|)SWr|;xJsHK&Ly(l)V;|ad6NBbtQTlqoVG7RsqX(~BJXoQJmzopxl9CX z2Zf&TOj9=-CY1(d>2X7Poxtq2U=!vlLi?jlO*nN36w0|?G3^=4outbfgtPsr2BxCf zXw9kDSnPdOq4-TVo-Jyo^7Z^Cp3V0M{=re1cST|Y2(%`{DZ;F5uefT;oLD=6D`YAy z6do2wwM@4a0ILkbDl2Zcn6mx?C6fWpCOphBi~C~M+P>J^bASGH2tRFwe4 zkSJ9jmOni+|Bx4dVpAZHvDp#j!~j@6KKv@Z0U+a;bh|9>($XfL)1xD5ttB-ei+|RQ zR6@}8)@UFO7*4n5+j7cpF3B6LO&N+aoWlO#WpWf&kISZ5rM7wZ&W>fu7Oq(if*F%+ zWj;?9F^{Br2ZV>vOV&p`)={lo0VMrla=r2}!~H2v%dY9@%HHtPx@b%$OM1zRG7;nO8V0boY$XN7#u;4&{dCtvsi-iSasyMvdbluhC&6 z*{`9l3EcZ74+iMvtghis=EIknJ+j)x3H?7r{Q77+3E+Rg{4`+l__KaeWOhylU;Rne z`>qG1hB+Vo=qFM7Se7ynQ6Y5bQQ6TLrXlh7HA5dC~dw+!3)1MwEe zG260>VxI}esSzhgJLq34U2v#>2G4Wc&c9VTL(&(K7>aBVjGXaXgYD*yR2jOS2oMd1 zoI2)UKaYk}Gm+g6V!;)0ss#!B$zHTJRR#=9Mr1q_pKJzG0qV%8l@9I)-zsyuU|+ZG zZwht6E@PUKNNG2*eJMQHl;R>-Hkk4b@=LEY@aW#n;PR!Yp!q$zx`XZmxI<%evzPyS z2Icwi=4KfO7I_CI#oES~?f1JENW&6;D{kX-FMw~obX?hHOx)sH7nXO=TSwMy%obZ> zym?b(Y5SZH-x4!z#XnE5F&lYObAzyY;FS?)tgPim2xhB(wcBlD#M&I(@r#A`o|swIP@Fc%o{M+>EpdTyLu#RY zwgAWnA*h~*-{6=@zHfx07jS+i1#hk%>#mUUiwSUf1Nw;Hwo5zUVVZA{c-TFaB6a(# zl$lVa)m1SheF-{}NihC&-O&WR{Je}h<`Q4SxElk^5o~lRx5zuH1`(|)G-CO#9m)OX zHgZLHxHO)iKg53@_kqZ;Zd=#wIAIhUB@4rz$?I-#f3n1`q=b33yt(jqEAAvq_r37! zXL~u182?O+=DR%_VWo}<*fGazqYC56GKiFiw+U@d zt+mExzb`(PYGzDelkJP6rSZFsa$a83({6I)j7)2hYUsyQd8JbF8&z!Gch$5hdQ6Z9 zvKwy^r~@g*-5snq?7a99jC13>zT58nYs>{eiqLmv{NBgeolo;mw3*6Dr}qw)2Notj zGuGT~NB|_=5-U4E%u{s`PsepXml9qj;I^V!CzQ>%UG$9xT*<~%K#5$2M@@KT3stBM zT;h;htm%r@jlN@6dcR`>8m|v1mRM%Qc6`PSQOTqdf3){TxR$mnj4-1jQ%k1WSfc2S z;mY$b>@)R8Zz3~lqj{`n?3g7G==8(y>}9E#$VcAO=p+i}{*mc>8pYO&qkA zy#1Jxi5*Qz?N{K*J)j)q%y2(~_Pt{ZV6Rk<%kwGICL(@%4^3qMWFcmI+9zH-Xt=KT~=QKT~P-Mq~;7LSPh1f#$s z#Rf1Iy#_cUQDieq=QeLZ!`9L3q%sfTLpa@BP*_Fiq;A>sUA@Tg!K@N$>>-0qs>w_K zF~7=peT^PV-$X4>zi`tmTX@0jH_dV zU-y3jSA}$(cdyj8X8fr1V6HN8b~`}}G{#_Hd2cnQOURhS_TIr57cDW%(|^@K9xMyATB(Xh9}*a(O?KQxB%tE8hLhq0C-Ptg{#R@A z#1?`)EBfO%$&(IXjsj$HUeg6m!72`IZS@z1$&7vgS4FQCi)sbsTk-`9b zYrcXkfhA#y#}|MyN&DPo51IAblvIi$@XIFm-Zk?M=iC1}Hqe6sbT=Rw>&8u40jC~# zeKaWWS8o{O3L=*MGK+Saqkf#~?Y3;0vm{t_RBbkmyy~L%LO3U~n_@2(%EYDLUG((3 z_DM*DOb^1tMdmov1b-C7wX4`SFFxF6fB#R6v(IYLj+b6On&rvn`QMhL|Gr@T-{!sR zXr2y-_Uo*yDj+D_F-hMZST`%a=*^4Zdz9tyNh8%K;W@^yGwkheed!s*xT1XAQbjCj z(}`Me?6}0YB0Op)<=v^;Y1XsQ2q$OLR!e~*FTzB}`c??1)nnJbg< zZJMFf<3XZFfphQ{1r^P?rfNG!APj!R_gjLLpQZZBd2+8niVFdfUA;``=UXOFSI24N zy{y4)YIu?|)V@n;nOs2(CY)?jF|zmn3s?B|GVltXF}-jBgyvlh_k# z*axuX&$>hg8h2vCufukz^kT`0_Az%@H9RmR)~n1+c6w)nCLvOyLS3vXPn#QSis^Q# zsrbr%K9No9x+LKw*g12x4JR?rjPH?u4C=AWbrd4rj7yLpBwYR<g5j@>Y|0>!1C<`$FD2{G1Uv-Cg07 zxe8+<2{L)A3^E}7X>6*&;CrRzaiSP#4^e)e3R?C+E^_L!7g}ZzKB-=OTY&pD-uby6(z_`pOG7{*zZr;@q z`P&>C@vQ8QpY@Dw954BZc7#2j&rQ`^UZEd?tmi0&2z9DLZHeM}Eod(a=a*gyzj~DH z7KSb71cYKq;^fbj(`6pr)~Thhey|G1pY1O{@nTqL@KPkL+~#W+9~=S2PPYNFjNmp; z5c2EGLlrL?eGCX2`_HHL|NnK~YKYt3{)1aIoGU{g8p2=^R4xIo?<*aZa=gh*;h{-oB89xN?T& zE7kb+5{$!jVc{y(pBrgVWMpe=`I8C8;#UsBMXGhd{<)o+27hKGDfr@Imkc*v4@A)@ z3H3(3r7+kG*1;uY(JW4U?J9>0G*ekj@JAzkBLiQ4?s=SiqxKAdZk2jgvA08+v zx(3hdt-jW7FiP4Hk%^~ZH8*Oc@39$SydSGlS417%6SKc$Xu@a`hDA~*=-)zZytP0o zEy#N*k0AR7Y*}<8cA1!gk$eAZCBeGF*nC*0(jsH02elNZf97!@SR)|(e6~lFR0fguMO{fSYCV@>uxU ztRoe{whPB^V>mKK-=5akoMq7*p;-lQGUPbPVqmTCm5t5Ivp?hCL6$~gJbpBP;$bGH z@;5|9j@I>Vr6)ow;5c@4@^ou-%DnZzL-ID7-f7f7UNGGF{}+Pr!UcbSX+6|rhbX|9 zVx!(s6OAKA-2M1Yi(j+6wUm=j=w`F057woC9rF&uTLaN-us~l5$b6VuWNvMtW!MR8 zyAe^0&u`YHpn%+_A(uu!{f>6xvf#%3tEL%RZaBZ?UD{7z8_X4DSlBG!&BK!~ zh?mM$@o`|_@|)m&mzRn}Y+MA$Hbv;hS|R;Sv0{fS)IL>KxWl|W^;Cwsarhnef#(^| zuf0Cw1(OsJ8{ly;F6`5pIA3( z_E;1mZKDKB&ANG<|*7egu;vR+@EcO*3$<*`{;{JCQz$zT2%yq;zG1c@6$yRr0RHW7UD{Ors z<9Zn%PwZ5Fx5Avr)biyie5D!xuvzRSr#@cHiBF)ATaoQah=Qf@Opba8946b~E~Bjs zZ6DY-*y(@&m=!ts}p%R)8q0Fv((M3{j1#>W$f>Vo^cZjP0o<54@ zhOXOPnjN#`spqrElP}IXsO-+GEB-AR$`lTH`Ql^Pn|Qp7T!#Z2v$4v%wZ!S-p>o(; zQQ2UB9j$ULQ;K_aSSvZ)%eYHQDddh<9z8R03OPM~#%$~$n7@%uDRLgEdVU*&B>4*!n>)yb(N`;#OdiBF10-*#0_+!7b5|^F)Iq(VptdsL(P*+%J zs_@B&*jZU3e&LY|+lFNgXyqP89?aZcn!tO?i%R6P+3e+UX*38PsY@{|1B zBjrJ}2DEt z&hg~{={&b{D8LMqq0u5AM@q4o66vWpJ;O=qv+{DlK0h|DubyKmPpX>naH%bSH~sor zG|&C&`Wmu{XlIF6R;gq$D^!|wI%`}3m-6rr2rE;RXg1H~bR}nu-T_K&3q8i&C!#A- zG2@_3A?jMxi=VVxw%7nulnhH%sbH5>bG^^Af4JlWNQk83`pRVuPwf&Vo|{rPwnVd^N)gg?HM%fR#!wgO zDZ9JTg@csSMTJa`vlz~UA#rkQgH0H}jWT8ftNk2}Fomev3+RE;`5QT9cH@j4cpTP-2^EHT8nGqTWJOtZ<=Y+al_qiV2Hu^b? z6?E3ufS@lP6-GmA*9m#nw$A>nFe~#1!Tk1)eNS#1fBuVqywm7^U+$!)+2EW1=Y`Y% z#qarl^kWaj@7;Lp$K70_n65nz1i(w@x6p)sgD>ffD-I)acU}WaNx8+IEs&8`6vChP zc}f1`EY!WP2bxrG*9Hf(2qi?n8G~B?pQ6$i^Ro9SgxudTdoD`Asl?O#9eZK91kX^J z_|lt)=U?{O(rzG$ti=DTah zUY*iKpw<&hPx`z&wv7ZkVh0?2W``lr%GwB;AjOLO*wT)t|Mto9e)6U{cJ_5-h3$(O zfsiAdPadQJoZp|{`%3C9i9veYo0dw=$N!*DK<3J*sd+Y*&7Eet`+e*gM(;tTELG79 zJ|thkea+xsdIs`sOcA4pC|56?1Dv?1QJW2OUiDGM%bx{y^*tvBArDU7xME-8+ZfX? z64<6hI-QuTyBG>4j{I?Rva}hW_Fgo7aGLh2PnMWpbM2~cNGpVgBwr}1zBeK1#J&&n zF7{Nb$Ta!+yb+2VA%rt(;FS7?a4=!~&8ee;`=Ff`Ibt#CTqAPS{v(NnaDIz5=`>pr zp+}JkmN@ScsqfZ@NWcDT!d zgk`0~ImjP>rw*-AU8lm4b>)he=EPiXGB~zx7fUH#DWxrV(d}?D+3f-==AbDCc~i9j zZ`?a}@6mdTqRvMfQybON_d=%^A^L34U0bChvTz;^XozmN_ul8qVv}f?LmAadlQ|A& zk9&0dk-BEc@z~(yR;`SQ&r;xaZ19OsGTJDt51sSOb;RUVen|HFh~wqXUbK}M38^jT z@1y1~;iKY%v4S!_q)Y8|M}H~~C}Nkk<|@=y0&BjjB3kd1T=P9~ZHPZ9;=`1j{%6!q zpTHYvzLb)tICOR$!1Q8v{9Qpc+l(@F?`rWT4Nv?iZ+nAXN2P-nk4J_kbO8QCv#pnA z5ua&oTR%2>3#CG6PmnqWS-pH8s4#XH& zT(90m-kzW+)4MHetZajQo(+PK{uOJgls=XCcf_L_R+Xf6{VD{9f`6xQ89TZTwj!s;_eKwPP&8LV>Y&2Y*qD0e^D`?1Fj!ck*qlmRa7JWKD;XP2kUy>NLw>VrnHaDr%NIHN=W@txAf zt|^1$TxeIS>h$XD?B3(mpCk~Oob50wN>R@YocW64NniomC@Tp4<=ABa_!EJiS}M0s zq681|C5D*)SPto%cJZLe$KFo*H;>aG{jC-q#Z<&VMRu-=wqbaaCS(`%h+Bju0cDI4yax9N$Hg|E@EXMIg=HI2pk%EW&BlwWY z-wv#GE*JiJR(Kb5ifW+)*fZsm`;!Y|gr>_fGQrYZ zo4hF3X(fo8X!~uC{!Xd?j}T0|)!51MJ7QsVKyj8PZRmE7NY_^aUH`>;L3z=+_hPn5 z-JX#DZfw0N;=_B3yOriz(V#53I9CpFRY9nE=6uB-ygd+8Jx5Iv9kkY%j#1HPwobH~ zBdWC;7RUD zCtAfJSewejw`7(4#!{XUvDdDsOYhE&HiU@kpWp5OfAKe=&W_kBom7DUPyrlml zx%~fygYdn|45y=hjt zhbUOghohM(neESQ_gT_neEf7Y z+AC*qI5$t|b{;*T9=|T=ZNYpBp2T%1nZ~!>bhDuw{K^=tKl2f#Ch{i1-^!bh2-$Nr z>ss=RCv%j)#te}DDD}(e?%^WL0i;?UT{vJ(0j!)?dVixEbw+7=QmgCkIh1+p2muH9 zX8VG8)N7^s-*cAbtiJf?8|!G(g=NtkGoPTBHyX1gCoqA=ywy3{=u-gvvqJ=?^uK+w zo>)HgU5jD)RJdszyldM?QcySFA8rXgC00Z9j+^jBWsOu7-M2D~uhW$@RoUbgA_%Gi zY0Vwliq>K8w(IA%iWtCAFV+A1lDrad1X)%Y=V>FL)`~g;Y5G-m^NAFM1OOPmA)`iI;mqXau1s z>*Z~~dZyVrTUcNa6-a^A=WDG?xEAUNXX_Evtdn{3lIwN-cSp+n5GzkZKbNpKkJ-#~ zyqB{|hTao;+9f^z$YZD1cR6~LZ>0yiLsmeIWo=}X%nN_mTTdT|F=Y!Db#szrP+C6x!|s-O)bZGSu>59AJAkF;;Cp>Ya?G>k^qu_d7XfF2_cc{nqw0Ab35-F9 zwPosxd6L_i*1L`v&Mt;$3Qe2f!a8TrZMDsa9sT`6XvSODjI9;UDC47`(OFfYx#rnZ zAf!SS#BYoWgr-}&k+so@yx z5c(E+7?l>$Y_l6iHwRp)8?SnY9qCqfOqL+yBap=MGoy*ellGIdxWb|(69&;Ri+`0d z`4Zi^y{jKXLlys?DA4+fft4sh$Tt6BXC+Kn5@H+Jea3lew>HBn0Q7_)n4&{O8hmmD4x6VE4TVAcc60-+6%i3v_>!xp$eR);LenWg)`9^F034Ih?3m z%1&%c>kZTxqlXvNw>X9>gO@@O#XvW;E%ea>wx|aI3B^ldLx=0sW(8Z~e98LOi{2>H zef-V7RqX*#JE=73Wp|Qr8vO-4C1&!KRGTfh7#~_UUR1< zv+gpySX}PoTbJ3KEaUG8CY3c)_G?-`sG=T0s&HTDHJe)Xf}Zv6I20J|QF45`2aD`lmfabowrKIFBlf6QJl6Hrp+RSo^~qcy_bj5Q z6X_|e7-SvEQ+O@>I;AgLPFXF?wg<7S5+{d`xt5#Gnp0IPjXX^>A!f=|1=RLMXU|DE ztl3yKO7)`I;K{HsrF9`5Da6R;bS@m4lx6$LC+WS+)7_MM_75?_>)8r48}SX@ZkP|k zlPcpgu}Rf>^8L)EpXlqwzoI`wLqs`4i17_QB=3!7O0P5Yq@O}8D)W2uuRNX}o?z#f z-gj*GByVjVXSaVO6G+lwe>UA~H~%R0^+^?-c8U&qKorO~!|3ELLX8K|$ys50R&E}I z4HjUP94z*-LkoXL<#@N5eDHSXH{G0Ds$G$Z7meii*RHzTd8WykIkFwx(BkR&!+0Vh zio-*uF98B}!;+dIv=zCBKHbM%8-UqWazE<6F4DY3njFzeBEsj2z&;?M4^=FVXWyR4 zEHNjeMpi*s&d4*RQUVlG8^lb|weLXoAJxTP6tZ2j&(WFrh{e?oTB)N_233#^#Orjd z%J~q>&b@fl?VgvkXeEHFer*$J!jj&4-(KaUw*%tT&i?&K5`831CnV1`u$luMcY~b~~h0)UKFw;;47LcGcLiT={4QUd? zkT5B&K=a?oYHN;t+kBy|qK|QRoA$q>ef&34$p1P2{6YvCThD}9fn)>H_LUZC+Mb5P zq%9SAh5F5rEMPxkF)$GI@;R*x(WJ#%BI7v#BS2~{HzWr5a+H83NtIWuUiRZgis7vw z1VVe83(q6lm1`OBD3GlRJFi`^*SD6)&7WHT3XEmANP+VCM*zEd83toy={%D*}RE~RPAT-kt zteURn^}`?HbkzT)+~s!kc=GNc)~ZvjAaQllQROF(_Qw}?kH*(@&pM5q%Gn>9+1^Ff zc6ld%(i={D^Ukr0mimJp|IJ5x%p0I>LO4arYo;8(+GMopm;BYbrWxfea3C z8olioTT*HQGM_&#HlHRI6cyP-TvOza*!rC#d*pa$Qu~yxKf8^XKCjC5(OVInHY%77 zfKdGGKpWXt)-(q?YWUQmoe*>xewKGiM0uL-*ocd-&gryVK0sQjnJjk&j)uF*WZ=dR zFr8hP2tiC=F_=84`tbtEsYa~dEgQkEQ5Z2r@^F>6D)F{TJ)HI^eO zL|?z8mSl{%^!{wxTw+gsJ>0f{-l=t>y1g;X$nqhJ31eHx+=%T>YS;jrF*N<2&*|sw zjjbeJVL8Od~trLTC6iSUc~}HJk>IDX%YeRn7p@#$>Huzk*}46 z60ea-msK6KOyw_|It+7M;Pt%v4R11}p5|zGVYo^EScu_*VHEGJfV-B*F^Vlk(GWA& zpLue;I94o}BpxiAdnNNA4cRxhbe&C0_S(PKAxvvDTV5g2GgXc;QZSXo3lQ29R*2Xb zlojOpFEixdS`{wbnNl%QP)V?XWHkA@d)`qm&L6TeQ$iX~Fi0Hdc$?1!6Be5uV!1jz zf6;P5x=9A!zQ&S@%F{!LYXQ-VQ4=ik6N@k2??-VFd1^Ay_hRzRwF~|Q%tpG}IUoup zipKVXJSuN?WpgSd&|~w@fxVGeXu(7d-_9)O?53k~ryHvv&IEU^eO+x7kNrmw>D^(D zRjf}63&8^ywzeMXIs}jmtULDiQbc3BUYZ9|2nTh%xQ?TquD^aEpI9*(L&m5qwl$m= z1Ez$}KtIZTX>uaK7`o-DXr^4lXVnO7a`SmIv9I_%3p6unbQ^!}mf_K3Re$>~Q)(n5 zPnlYamRbQy(TpnIz+Id;ZW(l~$K+FaHcc)XGrScKzk&*CWT)kV(+7xJ2$6SPO73GW zBDmpNYbGhl9x$ON>f!&XyTi}uSwBT%5yr6AT~c;CB4qY_cx~S~&h6Ftkz}}z_O|u{ z2pI}{_)O2S4wp`dFVD<>NaOn~YPpKjzB%-Yq<*oy^gaFNmEN32UczHf)bpN`4*bLO zz)K$Z>k>nkpHm++C43()D!D2T^Uw}3CB?*&-Tag~Mqtm% z%j!N?->q3ALHum{AmFU0m;EA7C!3jkP9!!XoP%i;JuBP(@b48I6t_h^EZaYd%9ZMt zyx%2}E2Yr(j*w^FB_7KLE||z$r75Fvh$(`K%o-Y+K((edGYWIGwtPg$%u)=$AJ9)d zM}G1Jk1pUn@Hx=J6o7;X^D{5e?MNgHyBS@-exE2%ZjpLA7f};*%W*};_gOW{&tUz$ z1sA;MykPG#M5A5H!L)ivM1|cWkOG9aXJR8iN<)S{hp1P!$YEilrI0Q4LksS0X+rdI zdU-B+)96bN9Z>kejjk*BdosgQJaj(N9{?5cOl+E?z9e3n)RTHRD%iCsti1Xm3Oijf>qZ!K!CdBM~e!;uzp5)v@SH!XXs3eg0$xJ_dZf0B*ny2_47`{rUHP6FbUH7gH20b# zSFJ*MA&+w^rf&JnDzCC5oG|epQY%a|_$!0f;op?n7M+A+8wEf0J5RBm){W)r>dyRv zHsuw7Srww+Ko(NlvI2v%^VlVX*xij)^kTb;Up&DmW?S2o{iD5CNN5P*6tHKvb_=p0Upp;6m zO=Fv1!F?wyCTi-FGyU6ReQd>?OkIl@nJsV5g;60;a+~He!qcbd=5Dq@cW+4NUusW9 z7KAVgPl)Dsp^}^S$;pvTBrI~h@Nd3~SeI?s_d=co6t1X7SpB3L(?|~0=CgBCw8ir6 zE)kA}6b(JlBoAGA&Db6kf)p2ZvBh<-*%o5!72T$~wx?g@nf_~9zsBSsBaVD*THj_s z?@0FZ%4AK=U6G{XltkC}Zk2EA?>^Gh_B$r$7`f@haGxvLG3) zk51>}k&mfpSVBQI9SRlSZ@8z|xA2>)XtGnA?T{f7TExYN7Yb$8p`5CD zE+R5;7I+Gh&?5L5<5$1%Yv-ojJAuUS^%#}0z+0K9PHN29D zb&c2d4;$Ps5)f7qlGf;+TM}`Wufi1U`#Io{erbn|i)?fcDUJ}CivUBQaG6SCK`NES^FlrP;*$FTbIceLqZu+X7BOMenp{8S zvw%M$( zO10A29AlxM#mRQ2o~ulwmSDN`)31?Eao&VJgmO}?i07AUV*OTTOq#&Dk{v4WX5a09<4X05r80ujhO`YIU;Tr3N@C5Xs$@)FS$31i_rG5L%4=3J^&9G`CmkW zYNNy3*_rRkCIfl20B-s+2_ax#l+vACu-`dHI{5eI?iUIdBiH4#a&-%#w62;RK7Srf8F<$Tky`0>l8^R z=g#&sA3PAC3p zUQ!`REJ*w_=uy;Pr^=um01CDWnN$$H%Dok&mn$O9oqhL@h++37ckga*yvdN)-{>!} zOj!C1^r543;)h!XU#>h3+}_-K`Ck@Y{Qczo>!W*%#Vn1#Meo<){NIog@FVaI*sXI= zxY#*BgHt&V!mVFgP1^?a#`N2ixibF(^>AC`_LgbE`W2?!Yuzy-!)w({zo*MUL-JP| z5TdlgZP{-rue-PCl?D{X=G#SBw|1`eP^QT6@Nj1JnToU5^VP1CnTs2C49c(gXk`;# zbmxTwpfQvj5lB-0r#P<+6)vjMd$@C-&=5vzd?AJN(Z30L( zkFyjiogeg|>mM?DtBt1#S<+soK-f!Cm-0ieu=E+11a||?d)_8dC#|AHnT;9wOCZtX z$Q2u@mnrM}EVau49`A49;mw)pQm{gPFSgN$W~Gtnjb?fS0A|%>Y87L)?9|ID?C}zO zRTi1&eUfb$<>?|mo=OmY>qDwupskq5QGN&I!|;(}Gr8$=D1wbt5pX8s8EyY> zW5^S!7Fg|6XhTD@YhG!JBQ<;Jm*!ZRG?u+{Uc{%ze;vJc4}nk^J^L_q@)b38F2(+~ zi$Jd{i@O0LLFVf*of5!vK`-B`H6%3Qs0DvhFz+dhBr$2@OwmY;DEasTRqF^tRQZ!pQCzoNd%6Ypl7b1?i~QqksCAb`FtJv`#eHjrzVy zA_$*wyXiR*pauQwni?wLn+JA;o^lQEOK($qq$|0ajF0#((w@p2x9V?d1yLtPVMH!9 zZj1ICrKEih?}?V<&=_&?@l>m7Ap0(qT!=wG%Ozl@1vb1;d zlqIO?9E|>gPuylknUo6*}b>MQNC+P1JVKL&V-w%}dX6vJl8P32(fqTL;9FsB?uA8(RsKyiBG zLw<`9cyQKxiibZyBJTVgLLKnL=X zo4w6N_@ms_r4rVQ=dYaO~hXCERa z9zhqVm>KLP>vtiz3+{lWIuhej!+8fxQWH_LQuUwAlh)HZ2o`e5=e?dL!Ge$LU5^ll zzbaK#@o_Nai~wt#jm)ATq|E*0m`dK*YaV z<$~pi6!fN3(EeoadU{0*3~Whs^7=BO;oHWSvxeGl^)+sj^v8d#{dK!JwF!%UK96eS zwxK&mB_?hO*XUDlco0)v2Pgxc^F2`RG00o{L0O-}9t|$$8B4_~Pv~qOiMa1q{rc`m zeu_Y> z)DTLr^DPhY_SZToUp;0=5b-<-_VMXNKA(`@YY8vQx%WViW^7vj9c*`?r-uJlIa{&o ztMhG#)|$+9V(TbyAwd}oSr_iuoJvPcxD=5geA}SG=b8&Yl!2a7rZKcfG2_(!|iUqF-}19w|RtUVP9kY-0Kp<@nR6$tammv1cjy@{CiW zPt^7DjtAroMe=>ATPpc-TGU~W^lp7U;nrgQ{XhZynyOnDNsL8V;#o*?-I*hhH`-fogNcipOf^*2?QSt~*Sbs%!iYG@Ck^#!QMc26whbD|HWp z-hRnYi1!r>4I*y~I4LEgo>$6_VZaAID*^WPZ7KE+eDja?+d)qvrm7<`MT(t$<##(rwJsZoOC-8f8~SMb|BZ3x^V>HB*WUk0R>c1tg5*E`Nxt|u?+Bi4g2d!ox74aMzIo|2 zry((T3*`-+yS_8NX9{{MoM(-wL&M&v7tN2#a~akA#6WKe(r zL#yPxiqwf`1Ws(WvdSIKuYe+59^JF&zbbLRb34LF!wYJ{UBo zDlw_O4j=G;v;XoJKtbKEFGCC8D*Y7u2~<1g!4JBcNAUmdimmXdX|(eg)bh}^0=j<5 zmD|BKl(m}pR=YmC2XtcKxs=+(TU72R+SNar;m%jMg-W3Ll{tCLnz^jx(>$q-gYlYB zXM&4AEF5v!p~=-B##({5&fM~?naj~S>jettZ=Px`pX=sBk+%+x4DSSM(m=3y z)@fp|A*XBLYXWP4blG0xs3j*8x0rk~E9;I}ad;mxR%{(XY1x>a36c4-1v zRBq{|%HL0NHFgEHn(U}1mJN}>f{;fSdgCghTkVh>Gf1xRl*(5<^L|x8csMTke8rc> z;^{ymo$P0UCIi}$r)A4qDa=>!<^>6T*A|PK>*wF`-|)9Ow>SQLQgh8=)Hd+& z;rac8Uh-XhccW+5%y%A4B$k?_atuB~Q0A)NNx#U8DF5o4g~qjJsEnA?Rp`WoPZB0T zOiX{Y46|cYNnd_%?p9246-2f)KU-d^Km6;%;KVUTuW*+LDc1RP-Law1v0zvj9F~L# zfb6*u`Rxp@dJW>qXVj1grY@JRzILXapK6(qeSM_+eEG%vAD_X`IERTm?8{jABG9eY zSzKexhj+aAon|pgQxcNA!hd4%D-<&>)|^w;fP3>(ArSWZ)sOUubJTA_kE>K zX}w3IW`U+mZ95#@&@cF*yGkK{IvL+xG1E_^v0E6TGrP9%yRa1QcIV}wHTUyjQ7aGVj{4mPqVr9L`*#n#; zb|Ho6COFd?Mazs0(SiEq@dpVkU+35R959>txIVb+qp~x&AAdM8@AmG8Fn+la#qahD zilRNakW1e9GES=S=^m9ycj}Xt2mkbty@{O!$LGwqY8n1YcPixhpAcLC7*qm&l2 z8uD#Z!mk+%J$IG5TjlZcvwC9=oqmI7VpytB@yrI5pI!d)uEc_uOK}g$pn6uAPxc=V zG&7PvK=)D?<>&;KIz=-Tddw6-d^xQXU^W~$faGb2j1|HzkMB3QT=Y7K^!z5}wfyc* zIbW;EGgGpWV|@KsQ=3|AoPpb1N>Us3Ej;;saBLs7RYf<)T2BQ9Na|2r%ez0GUnDPD z=``)aq@MRz58v$R;qM=((U(&t>9ckB&2((Y*_}J@yq)=@7%l9YhZcC>de8Q22LI?8 zE*Y;6AZo~IPWbc1_EIFTR=R@MShRmBj0x&zv;cF&sYYF<&2dz>ZI$K1LoFpJ>CS?4 z66)t;oM62&Jy`#0e@e>_FDcn`ASVHa=5Ru7LzIqx$~C=N-c7ET_JDAD=Vs)R*BOO! zxhb5{E+ZgJ=WDcX5!%h-=>Dll-RG7$8VeStTjjrM{X0^y`~Dc+ew75kXOfv>Y@jus z{1FcK?NeWMtoo}bP6Ya9mFt^YQHK!od>`f=9#h?tFetRhs4P`Y)>LsBmEpyh3H#>dEa@Z*xe4)ulf8*n zkwBvcu1uY32cKKpjF;tyMkm=@@Fg>`Z{L@(X(WdHo2uskDMYQ~gbKjfWI1N*t8*W((D`K^633Ibkv7F%`K+9(nf;(8w-@q^m@`=Xu#oyTD#8jd(vASrd#< zMyF{~qw^?jV-(PCe>}_y|coaTK zpRU*_z;vLs&gKiK<_A6fZ<==5i|G{L7y5AI~Aa+;>{en1jDd;O*T1 zKk8KZw?>NpZ$FIp2Z@h8y#wPFLoUTT6SeX%>2Z8zupeo0TjbCO+2x0rDpA)(D{|ga zdpq^cyEmYuS@H)1oVrHW-=mXWF;&GcA^GkE8;Y~=Ae>TE%SWMVZ?VZa;f9v(^89?b zePn)fc3EDvPSkk$&h1>%>)*XWzkj+T$n>E!H|r&3D#gUq*T|*e5w5&-qoIVbJ7Z0` zk5{^Dj?{PLqi7AyLs?%F-zvkb>O#)9C>Tood-*dZ6|y>Pf*qnkXKw3Mgk1I0p~q})=Mql*dfi0GLS z@Q(Hyaje~XuklWNLntoqIwGf<@x?b|UT&|;k-q_ACb?Uo--T-KY^cJvwj6N#s7{lM z8}YuTf-Bt>xdD7YbfYAe&h`6Lq@Pw#e4Ao&Kdj_{Pnu8?32 z`t!7Si?&&9O0)s-M@GAr)f^afRSmVz6_aD@=Z&p+vEv9U#(Z(8JW$4(#sNoSxN=E z%}BM^02*M6`J;1H|*&tmoegY*iGzGA_}~BFsVNi<7*BCkWIRk`h*tU z;6fWY$Ta)Rjj^=g*GMMJM{5Q(-{J>n#;rx6EC;d41DdLb>~`xPIjvry&bZ^d$j{U; zID4kHD*hJDm!-zZsFWbHgnE8T@!>XEFH2%LOX2i%qB}h7$5I1jN^`T|slA^X~tIc3-7nQ$yc@P2JJgPUOT$7xev+BPHKJid- z#z-5tKNa~GuKRb$o1eb6$+UuUkv0@-C>7M+s(zDaeh)q{`pz7qjPg|L@^fttR!J*L zA_=s(9eZiUi%snF^z+FsF8wFQ|MqdcLt53lV=*lCTEAwEgH1GiOTunWW38i4eZ2nq ziA7YAZj&LV>_=c_*c?Q!K8@F^obd=3{4}Ri>(q7-)qbig3Av9dDpGyS9408OX znd+IdlDGE~-H?XNt?W^;v|~+!La=}fa?=wve|IGWxyS& zr^j*7DCDue#Upz*`)luaYC^ww6H3d_9;#9AP90cF&DkgbbK&nf>spA>r$0;2ceex` zcM6b+KdBokAeJP@tC)ah(ejL3NF1nCZ|&mC)1vT@N5ZrvpAukxVj3R$od*ti3jzcs zhWA6*g(j@I)&LQa(Al7%;wrSNV?EzkZ1)`*3wJNp>lv@q+S;$013j4#(w$F$Bl-ap zaZ1-srMv+tE--i7i!J#rQHO-tjVQguyB4s1i_|~T0QNraf7yEaeX{hRvfeYjK|M-< zQrJ_bsb53k=4Np6%ja+}c}>?y>Ww@m zfg`ixQSrAfMi3;HM>1*AOjCO^$%>x;zq1BrQmgxiwNm z&x;&h`JIjw!};?HDbU@?|2qpn5O-ui`>-~UwvoIfhJRtr@~trG*J zg8JX^ljS_bjzWHHNT#;)?on<2;Z}_rZ&8BSqvb9HolDE|V6B=&!Vl*{sf4L(l)UDd znqmfJ<=_vU+N0XjXGWoKZZp9`KxbC zfv}jlWLWMF3giC<=IX_hPmhG$u8zwpuQzw*ttV4iRQPLMkts`8w?n8X@9qz?GPO}K zH{S|M%7HiV@Zf+$$Dg`OyJ}CVLreD$2&fCw`G^j=cdM%gI+An%=FV!B06)5b<2n^k zy$l+^|LdO4Qz9M%5o!HT?0srhO7W{xw;ICUEMPi0)CLk2;~AifBNuT~8|wHp3)p5l zD-go>j82XybRPb8&OM!=$}2y&6_>Wr4Y)4^z~j%H2fewkB6 zGr|`a$jq0)erXTWUww@qNWfD%#tA@F8PDLZ4>9#T5Kk~e{W_)xT$TzLp4#;X-)2U! zT!wN6eFj|H0mp*qgSYnF5F@$Nh_GF~Hzx_#Qk-Rh{8I}<5D`Z`Eu&&l zzk|z$duF1w%WXm=c>D9pBT-(|`isAq60@n4s3d>V+WRZ5hvb?K?-S>JTAO3m$cxVm z?{ZP}!+82{0m+9u_XHB=TI_*c^rWH3eZdZ$f~kkf-KVNgZk~xeVFmq8U%$T5DiWiE z1((Krl<(aNd$uBXplcNMpg~gioFOtX_G&_sPXyARpL=V#me<9wnXnEd4Fvb z#AcDI%;P!ekW@dU79?|8dloV#Ydfn&Vwy^c3NdsXH<5liY9nuK#Q+~-8CCBl8V-;% zq(5nUMqP8q-O2tlp2auCER%YxzS@12xe>a|bYI0&B-^Mitt?ugGa5g;@BLbA!2=D^ z(wX4xNikTug3hJBa|WhKujMPlzfUdNn7TASX7UlHIo~{})KOfEtz`XVwIksTjBAzloC|=AdqlU5e5@;6xEIS@1pW+`XSn z#Oe>6ZL^#DI|OMbg=_fgR@ZSlm)tQmGKYAmwaH)G7{hQMn7OTISVkR~JE}<<8bC#A z{A)=P8Lr>Ey}tARaQD_xQTFft@1s~qiGrw<(jg$-p|nWnkka7LDN-T=(hZVB=TJkp zpu`MaLx-d=bT{Y2Z>_!8_j&ej@3Z$g=Z|xae<1_2U~%8~=epk4`+B{%K2L?OhTfGc z(`)yZS|S&0;$E}*vE_RM_M_aEA| zF{$#Nak3(OhJGYc2YV$D>A*HnRXznJYb75W}X1W8z(%DV?Pdu5%$FQDMgY! z5tBQBYoXO7oFw8-TZs`+Q4NC|4-{?P3XTJN)9OW9F{pS}8QF&&qsLy1{<9iZ8Flh! z&t|5byS#I%w@jEuIHPh)Ph)*SeevQ%V^-g&J!19EH({S8uL)^F1JkbeTgw{fJ)|2~ zWVCN3s!@YoCT4n18_y4`ZtWQBG@WVahaXW2$g&wUq4x`~yDtFIsAg+5-r-3xy)U%b zwQP;H+`KxZy*BR7a@@`CymC95!Fn6VyDR&ZbtAn9pf9_;{;`djC)o1ZnafhltVKr#X|8_wV@<=eJ{c(&xP*f}nI5~Ng z&0KhA0rg5|IQG0h2VYjyIM%#xpYpZaDPJj?eiFDE^T1Yj4BgM)fVbKYW^6iW6OLqL z+CsVcX^DGB81c{d*e!h<bD$3iFWe3wxE#LdfN|S!96CFT(qL3aEXKO3mP6q3YFYiG!xgV3<=t9( zN{y=%6y;4hbmw$`fRM87Oz5QQW9<4l_bclUPx0S{ijQ{{?ed5s6}t08g5yesy$h2 zIe7!xUv*I|#;P+0nFIB@T7BTD^W&!^_-m6B5FYgjyHpY|a!oKzRf?T^PK7B#K2fek zPXHkzAMCglkRhbhPu5b@cmhM74Mt|+Dt-$IK4@=GWe{ZOIv(6~`?>+hJ*(`Lu7_8! zWCGIymo(C=sgaZweIDCeOWnT{PVP`&mC>UkD@#_uAmNZsPRIrRr_P1Cy+d)|U?t|D z9PV%d69hmQjKxa}$9pDoZ8)w5tDKrUlhs>2rk{ELC&JL1n@#Cao;mk!D;JKT>h|*8>N&uEX(a8?GKDo1J{~05__RzU~C`P zQsrrh99wg>HBeWaAZ?f8xfU%^&a4;R0_R&ZSn_c||4^PODYsbPe0F+d_4;~;j8|~i z@2{JH(Zn@{@)FOj+Ycq-ee4NfK%q$$-*~JA=LQW{`>%2>QF&cGFp@4?g2n74tl#B~eQ(?{Y70>S zM!wu)&-S5TmU3!hXzK~N5z_s%r9EjCunnSS*-Ld7AErS|0w9|J30+{78g>jcwjVPr zjDVbZjmA*l0YL;=U$PSiuEqs%UNMHz;gW1Vdk*mJ^|xHXzkr|9+%@8Mqd53J?|uGi z`Q71r$Mv}Iv5T#_xr@0*Z}X>Aqx!-^)0w2z%}5*ktyD#a=9@SEgRppS_m+bq_Q-v{al5HZE*S32IhVRFxuLpb>Y7G|IUsCRDu($S!e_o(p zz?;hxX>Z>>EPv+4KeZFUc6Cc2G9cIyvP3o#oxT2?pmVZJf5iT9dA}7N?|kkd=ti%Z z=D}B3%zh)uKfi}n=W-#L6K^?=;JFFz?pL9Gi5GXeYFfSAAxo#x&>exo(@c_#eyeJ7 z*Kw1FtEBN|_@=~{%%J26k};@=R4-N(2DsbI{p6c=pYUxawS6}*eO_0ky{6Wy&lSZL zqW99{u_$L1*1C!JxwMeXhpJ5;uf7ko%cJs8pF%6KF;`j#5?gI^S-s^!HbXClFzq%w4bY&`l7Hlv=?o8*ldn}tAF-* zigmRxId(qT5GF-uX#F^W;H@aVCrp=3QR~I?_c3BlE+H8URwnwap1Su_9CYR5%Z9tQUzYM(x#f50S2yO~%Q)yr=@pkoinKE%;-q;FCDE(j zL_QvWZ8*A;ophzl0lbZ9IE6RWsc4+ECO=M|hHiJk{N+ z(=wc`(Z5}wk^cnXrb6GU+vK7i_2YGEZlztPS*;JG(F+UmW&oRU1l(^A51W{Y1}sBH z7ihA+ew4$KX|Eb*p+OD((S!N1WLs+3_HjsrEV1`>KLhkzKuD_i&vw3}?|n0gP4Oi& z--{Wk-4*#-6FA(ch6FsNMP$wt=4LLWY0e6@=xOMo^;zsLk?lLzEnyY1 zKSA8PCqdfi-E&6y0-Cj3yex)4{nHWIyF*}GUY-`IHBzd;pUOtW8>(qc&-TLn@GZZW zihks&OiU-C>~QnqWVNmTGT!BgNaLqWi2<{tM(k1ZO4y{%}SS66oquq zoZ&=MWaW(ky7yUqV231)s(fk>UskZg1c#W32tbcV9e^$Ltw|O0*(XUe0x1(*eph`F zogKnjdbmL$JiJBW&uTeIf$(->HRXqiW@M)qw@c6g@!n{O!Rp=$8;$XInWHegsnp5I zOpY_&8G5g`IcNQHA5~DL<3VVlx*)Xk$sr= zNVoJW0ZE)uJJ-xgtMwP)hUC|ET*xZ2Xupvpfy4u&z`MW1GV7KskH=2-|Lkze?bRJ7{OHj7 z2BIV^%bwzSoE?V7T~zr3U{Y3s>G2O2z;Wj6;c}Oy*Adc%kN^i6`0-D4V1qpY_fS${h5)-U4f>DS(@_iUJ^PB*_RLluG|_pM?!Komp`7)i1M+ONgIUrymO$3`Qra%c&H}XImVc3f~{C z(vu!&NpWN}>5RBvZ~e>t3RXpjiWT-n-NCwd&!<0Kd|;7%no%t;g3Ge~{_U7+tj!3f zn$fXc?S6gZx9(8T?d8h=yjVHaW>Ta8w^w?pp}6Y7okpUOhEEr9+O8C`-sesICgINv z&Mu`QkxW!4MUtDe$t>c#Y$<{-#irT(@JQQFOCQ|%N0sA~_9hL1bC-(keNcUbB3l== z@ZF^SO)^SbV@~Nkhq;?jb@XhH)cGm4&m-Mn+XfHP&ZV5gXzKoAniom&<#8sl&>url zp*V1xw0_e&9&kM>9civsTP`bfjt-iTAi&k$ZFl$lUZD`p5EQ3AqT#QEu4j@|_*oBf z-O4G9$y+~#s;{x{R!8rG16K;WE%Y+BGO(qc;PN-U$7y+(U4-Hoa#oJwvA)Y(08Jm^ zF-lU;M1HH5iiK9zpb_jl1uwv*I_4wkkP3zjIu6Q&qpA*` zxlq%&tWW)W1HO?e8xAE zbjL$zWA_n>R%+#)!sO92NO0L{K&PkJ`v=rVPPsRK`q+`WmZL6WBJH~lBeW5(_lYqI z8nxaLwXbiX&EW%H7WXe%ellHD6mqn^mP+6ZHB8z1Ay1Gj}NAl}Z- zejiEUaXfrZ-zvV`>Hs4oqP;_@CW>{JXYzCSxa4w?)Uvzh*j6Tgba1mVzX3g#+fuEV zJC+xkmBai9FX4yZTF=JPNv2TWt1dTuxM7hc&)5n1kHg0fx|2p^}`Dx?~Fh! z8V+RXa!$BVHwjyd8G$x(_Q$Fxjni4@kFHGlO(t|)3@fl~uql2}{CRT!kz-b{^i zxRJzBkq$sPoQry44n1cSjb8y|vDC=->zZuZJzUMj-5*FlgAHw@`7581M1mT)Ly4lA zhbN_)BI}3PRx@5ov17nd6x*ZzGa!6T`UfGkziWQYFYG0C|1G(Ms1u8UU6!~Y_)$7L zsi{GV?)Xqr=5eL?`@JgPf~In{G9i}+-#Ex2{#f;fCX-S@tq~h_QD!n%9qEONP>DvA zv=so;1B?kmHI#{VDwVDCyhA%n_bMjfO5~t#ZMs-cl4E035_l*uF5^|VJGFEgUn}aA z)6M`eZh=lYE?{&fQc2kr!K#Rs-#k|jl1QvI5g`N++MbHfHX%>N>!)Xu%y(z*8s7Z0 z=WBJAHGArK_3+b?f_}h`oKR9@aIZl_F@N~MGwzO78rk`eIcGNP>%ZM+p}d<~gAeI< zQ%+Dx)mwSe-UsHz)ORYcvyO&TI#eo+*sod8ND4rB&NO5baI<@gya@9~*1J+(Q*S+B z7uBmz{dq-ycEad!Hl|+n4AZ!w4LwCytOSczoR=Fo4kway(0RIFS_5#p7R+RaQdO57 z7dOHk+jXUsuJr0YB&}UGxMecAoUx7XSs;_sV~WItquh}mX^0*3$h)uxc$ z$;VAmrDl>+Pu4@#cPB5^8Aokr)SuzDSF8=8KG;$;dCb@i3Fl}~jQzKGaQ{ZK)1^+k zqD_M?QT=P;*1wL+{_W#i+BZiPPhaj5RNVFP{~wIo{_Xq!R$BebCyxbvyj_M9cQ;6% zUK!lEXl%3imlyx`O=5P`5lvHTG%Xw7?Hm3tYh0U;7-B?8$*1^7FTMyVwU)B)S@eG! zr(i%H1zF5`;`Suhx2v>-U^nLLbtT5t6#4-BQFM%Yxw5SsAz-~_>tp2(W{m4UPKx|7 zOH!e`|)zSA|Y73z38eLL#y^FX)mo zb7q4~aiU|kEP(;yLsyE_MsAfdUL5pD+>7%jeI^JI)yx|cw)iG`*!ggm!lD-+|+3u;zb*{#t6M;;4Jo5WQ)Pxh5IOT5x2>~imvw$4 zOu@HiF#IKqmx-Tw#2|_IO6Lw-*?AE0rQ>|mUs(SXOpnQZ{Jk_|rJ+p7?9fq0_WQZ+ z<)|)tSiFTmLc}`H4L7Bx?hTdU+g#?VA1cQcS(;8>xn%fIkN1h7;_*)tGB7m_gR*y_MP$m?X6(V(|pkHYpA z)->-8`1r}s{!|Z3AIIM(NQH`LaZdv$`LLRD$EBBvHc`T??;jQ(N|%UacL^h3 zp#wzdys=|fw3A5lAj==CsE**DF2Z71&e zC8~9esQH1Wjwo0$+RcyhW{jWWT0GB!G&R(@4#1_ zfadRzoYyxIy$fCOB}7ay4a+>NN0cIHCj~H=$(fF12i-voqxjqCDr;q5k!^tokbo+S zlgHY1AL`A}k8;_RK%v4lR1uO?Mc&Ub1oF$}p@AkF3QC0I0qK2ntBDwst*L|V1%Gv@ zYtp3%y1TBbM7kD{Tg}7R+PevPpTe*5>mCi}R|u+j_A2c}j)&hV{y@j@=U4kb#wix{ zO*J6Rgv)i{&WJV_Mre6EaEPSm_4I6qB8=GsWD?3EcqWE8N?md8lPKtm-}Q|2%2FW)r@yTs5k}rQ;e-_Do!I?uDPBp1J6(4(H$#cgK&Qt%7)M zMb+5*BHSFx-ten8al~&;xeEz@dI@Vh`L-_oP(Y1=(pTzFTi56?V!TaV_>)*h8qCZ%ux^o9-kc^5N#MAHS@LXKF@esy{V70Fz<9}98U z9bWZJx>iYkq_NS5+31Wl-VJ|u#8u@Yy#w~l1{%*$#yzRrEZDZqG2huM&Qg-D>H+VE zc4s6fOD-j3f~#b6Kp>1lRJ!U6Pxf|d0X<~!n8Lb*h;DRy4R59*;>b9mbu_cq*3K!s zGUdo|;1Q!a*OTIYZvHKg8WY#jxp?x zsMl_?iK3)5hnWTa+xClE<-o`C{OBh=<{R|JklfU@J`oda-K#8suf?N;UM5d|5 z%f{J=r@)X;;-^Q&X3(fSW^&F&FcZ4M~yfo|0zD@k2FO$lTsPYLh-qXYjh{_8U*A;v@W^>5|L|E_G& zB0S#zovn`h`k&U1|2y7kyI?V+Y6oi0f1Y&z{?i;&_}p#Mhzp9kOYyW1ZASZ-7k4F>1P{s7e?`;Fi-9{#d8~r!g}8s#LrKSkYZkEF z3-J#}kGu^Uq^=cTBIO1d*83zpA+0$i`MOQtP?GJGlZS=LUQe>{sy6rzMrl{UmNq#*ee4)!8l zJ{4uZQn!QCqSnWZMzOliB zF|qK^$$JjH_M_&BE5!yPVJ6*OToCax69u^J+36 zw~7UoQya*Hf1XBEmOVNNsq5uh`;!4nR=sj$FYz{yCaDk5%6wuaV|`d}yTDA4nuJ(8 zNSPj^zXer9v%#BaIi!kBS>_~emyA_6KDtbG=_yg2BUbP(Sy*5=xkZnv(T=aAhJMhP zeeg6mhVtfVY69N3cm*oXzmG%D|)@eO(lVb8;VMTRs|@L1@4@i`m${kdm; zx9H6bt_7*po`6O1s#ACp*8GiIWjvx%X|XFUTeTV8);&MkUhwDN;KjTU+CLRPqs zQ~Yh;G(it(5o?YWumWi#{Ck*6HFokTh7y%R?W?+U?zZ+N$2&@5_XDQhDX%iEDMl&mK1KueTCyi92Z(~09j}NU7N9uT0M_E94WrU2~DW@en`QWKC2{p zxIH5jtx-HJi71vs2k=;@9gVezlm5XO5%xU%GT}ll3FY|+jbnwPJ9BWgD;xI-~UGRIPFAv;IB|m3-Y8Xr3-bOZwMZk<8H=WIg*|H z>UE`cfj^01cK?JJJ#xh;!8pv{E!Bt44H9f5N(0>O;lZb@FSxbP{NCHH%uOx}VP>-| z7iJ}_p~Y!%s=ql9-CD)XU(686O@*U?P0^a z(rwBw=q)s0zFy=-vHIf+w=*5;MqDV6^#oY0m?P+PPXBV>-JHH#pi~&l2sxDHciiL% zr5GGYtw*MUJzD`MHT@eWot85tZIDRk-&K3uhYS>98)0eI?vLBz1R@>(aFW zjOb?f8))RB#LD{}S4xzDM8!R{{uIi)D!0;WpiaY<%>6xa_-L{=vGKxhQU9lYV#WXu z;rQrEo7|GH79wkh`{*G91IC9|PR!sJXlTU|nZGVN3L#JD1fM zqEBVvx}k3IK)_p@Iz9W&X-SFkiMt->fHfN?D=+d$_w@X7&HREC_Vnt_8E15YNm!H1 zsun7_B&;$43?owB#&^r%eTY{bn-1(G+ivf1r&+0=G6!z7Nv;`4e14@ttaDxcZ&2B) zG@4zgw_R(3nnyp5vp?#qrySyX-cc-%Hz}iBx}1!yjn4jy0g1d2`S@dZ_AUu|VqyGoGBCm6nV5C_?JktUK#TlKEeX2CE7Z~Vq=SIRC8+ooI7 zqXws?$4JiC?o{pv@(cFw4mEKY+&jmih052>@jK(B%4VUis7Buu&*c|=r`9XQDmG11 z3Gm?D5Z#pz6PcwTdXYaRp-(O~+B`%UqmUpJSyQ-(;$Aw#j`bz?6$)s+nhT`j2G*r9 zMa|c@{)3bCKP_i`=H5PcvJ)(S0Q^UPPM1vGMZ}N(LCHAt`rxJ70x4NieZ!hyS3TiM&kF(1DB=hA~Kbh1thYl8t(PTfcNt({}@C5 z*FA7UD+~ky!?!9TB$lY^=_7Yla3>SbgaH@#bqO z;NowGb(CDop2OpXTuHB>Dh36hwlYf`|9H5?40uOEj>G$tm7c<=2-e!x<<-t(LcKq0 z2ZAvo)*R17@=^-Iy^bz@3sAtyoo96e`2d9Eh+6gr5KvxZrT);Bt>Z%GeOj8Y0P*l$ zhS#$)kfZ%}LuUjrMs_=qx8Pmy_!Xdn)Am-lU{a<(Y5+-LN4>&MfSRL#z&qcpq zCRj~&*r&I&cVFO}hb|}vFcG|7YFWfbW8jmJgGFLNtLwqjsC(XyE_Ha(DibOEESQw6 z`3IAWa$xX`8Mi2|?T_E{@YI-5T`dx{7d-WHQua&^A!3SWMMXfD9bRZr`rCnZ#OxyL zw|9g!79_wj3zGEp$__Tp3q`VKjdKs%keB4-e8;x^`f%H%?CteS|)Pr^X5C z&Y5X6x{RTj+4!vbAUc$@A)5V+Q;$}@hddgBn3p~_iRJe@pBAEZ2u*QGFO^C*|BQ1| zfp}+>xz9PH9q98T&UcdGB9?yn#jdh6E4mt96%~XRR!sQR_NuJsYYpr{XL}{tL3E;! zs;m%ePJx0lz0+WdEGTIBA=xGI7#cR_U!1oJNExKgjM=fCUJOWXHfQy5ero=$DPPn@ ztjDP}{`fGdZ33O&#Bo?^_9)e=auGmt03#9c?XrIR|}GmLO@F{EeJTCw?U% zNJ|KL%52jJe(h$K=-->c&(hfIyO+KWD-n}g#=E;Cq#)(77F7$*10oI+nc$1L$RV|i zj9ul3W3n0H+4)S8>vJfoGBMf=u2hpMurQT*1%Sr`)9xJE8bNSp;4O?BeDask5v35_ zc);(qgGr~Q3F|uW%)fBnL>O6z<|Z;8{5oY6pq0zG(pm#cL~2D|is~acX82TwPajC2 z#Zl}Kxm+G+27#@VS56fT3YV;UXYaCr`l2%U>$JnV*Z6F*SW-U9QSPww)m90+Gnz?< zH^2%$DwoeO!T!Y1TE`|ZqgK{wttK_+f|^PacMKZ3K~`tD2SQdDJ&O}_j7LzzKBJuq z&!$t}1mI`KuJ_Ze)aypC^mgS^&6@Vyv5h*g$qaDfO4`P}zR9uav_)Ui=P6O_3s}Zy zPlO(Pvaa+}4wC!+{Jjt&O4t*u@hkS#5)|uQkc>oXFlkDRYz0QIlP`>vRHA0BY8;OY zChGPcR9dNwWJ6nY6_k#_n5TZ(aG!!}q@qs(;A^;se1mqT>j{R-Rp?AtF|A`c?K@3ZhvN^S1?fGeksl42FG~MH(n`9E+OJ0a-RSNCg}0YX$dfntR8-G zk<*>cnWJb}mVkvYtG6llsyO=GSBNuCAaxk?Y&bW2T>gOhOp#202{wGvc`e^zc(=fT zjqMqN{{{>@&F)CSUeYp|d4zOHWNt~sAj>$^$xiiAq2MI^WCx-6c>>H!%!;QvR z)1J-U)?gG6W+Y-*)g>HlAP3H9?n2#0FM?PW+7kZI;E>5x#}TFJ`tB5-&)QtYMh(wN zghahB-)z){<^;zta_VOjq1a&Tx5*+KCyZ!W(&tSo{198oQ_R|O*WkjgFkdvCC|*}` zwms>|x(cI%A`FO{*#lzlcFzT}DJwUHRDMsFE82H3{kJP5~oQU0~&-8#h_WeYr%pub*PNaSJCs9tv6a;1bfN;;9eJh3QI_jW< zLt`Q+c>zteXKgNt+TeeWpwa>Mu>6mNCqf!J?F#zv#4Un9Bf682pG?k|Hr&fefV}Y& zBKtrTA8%vUUz@vV*-E4Od?`7x+^#Vj*KPU5MP3nH_thZRRaqsq0@1aOME0HAw#YIy z%~fQdQXrbgX4-ZlSpBr_2P@((+Mnf&D8POJEj+R6dA%=?SBjBbJc*B6ta!S$-opX{ zMa(~i6{!2i$sgL03%UhrM4{-;LXhSB{5;S|9>C1(U0tC#NFq==;5_&MgsVMM?3aJ{ z{QcKMx-Yyw{ViwP_WS=llm6k|e*eO*=i!@wo8|r2@A=<+)x$?@Y@6L9U5)5JH$C+d z9v@%UIzFAl`@imsx`XY65sWO>t+(E_8L_;D_k<_-)W!A<%QMaN&PXbOmrF+%-h*Y2 zymdT)8QKV&dhWXz0%TFGmnsZH=hT8T&&h!?P>#DWu41g>W++BIEmY@dD31ItF>*s2 zoki$7F#t^73}*B5K@~uCABrukw%oIQ#Q6H0FOF*mgya$)kaGMq;=Bto*2N~#3hCbn zTa)BlmNk2qB7G<8of?4nlpP#zqqPejKi@%UxM?7uC8yGr0!q7jq~!fYrSU2D>oAGP zMw2ojBCyNm*E901e(Ac9$?4V4hFk!ZGVe{on?y@9fO&`IDPvle^Hw!an+>rhnXHNd z0b)WfoI=#`d!@q(RnC4}S9QVpOoL}GqDQA8vUs+p5K(W;p!;0VR3?5Zg(`yg^TR(Q z+3ZL+3zkfJmJ9&)QvK7P4)00)9q~eZFggE%5mb&r`@n-RkPGhWci;Q(pMh17Yd^t# z9bjt&HILJMQmW^3-#&-n>@2jQoj@0zlrtUO4#?!0UrrFuSa*A;y;pN#8J4{X8$B3T zI1J_J@>9KkN|My#XPjpou7lo1)yE228?Fd$)eo7)6i4po615_|r>VadV$;R`sc>$K z-juy4`4B!LlpwAMvf>%TQVBVe5#ZLDzR_HpoCq#JX zFIjyfB4f`V&&DJ!o0uUf{IJ5(E8)9$1-=Zal=9fm87oBXWe`CH(IjTnUcztR-;LMs zIe1*C>)U&XmE2~GNRWHT(lU{xetDSsfN`ai{{HR)2bI0&AU(HhhQ1s2vIT_$Y{;(z zf@K;sON*X>JEVSmn`r-fPmcl4v9iL2g$7&gBX3h-C&9M1&~%L`@YP6hw4H zwaR~Hg4TG}#&=ojYeBklQV`kqDCbKm!!L1Dnr$Wi)R$&NBvn4@r^BCF4QqTj;{G5F zKH<9zE-j4V!ucV4WpO6XW;30eHi1*&-=0PG3n)0Gkg~{~{y7p@aueVuA{mp(Ray=3 z9^JwIhNP@f=7x-xenNyhuV`gAk6s@4dgTlA<=-pZ-*~|7^T6s<(wfI4lHUdoz2e`1 z6|X8`v-uuNzNt$@2k#hrB>^sVI$w;Bir%4ShjM7Fu9(`;dp6FHh3h# z%ZS#+jC8W^8#eReKXXkUaw&^LZ(DZqn4b}Z8r=+CrKxthQ8=}7k|VU(Y8o=Ol@!az zptE^9CFM*OrXH@II&vD9Jom-Xt#rFjSA$$5L2>cmeXUeb)F;>z`>%i3F8RdY_huXn zH>zUwRI+F>3XNjkH@QX7QtY4Xk%&Wwx)UDJhCuPPy{IMbnPZb; zc10(b z`=vlz;xtc+^Z=SWIz@o82nQ$=FNqnyPfujsH@JXe0icMCDK9BdY!#-@OGb%ihEJ&4cpJS-KZnf$5b}?&z$h;T$*T_;5ZjQLF%7Y*b=% zaRwV1rzN}TJJ=ThV_I<-@63}=D;agV4c+-LnQ;dxAgdU(G4^lJ*$WkMD zi2IVm<=uSKSSpvTXbf;y|l-FP>1S_YyS|utmk8Y-xgF zXI7KWTFU0vj%pD5aX-mG%H*=%_=r$4mNs}v;};NfCQh&W)itZ#4@l_(-aoQ;U3)WO z3%@F!%mVj2iy-c3GO2XvGvs_Oac8Wsa1W$LKbGdAlc5BksXoqd%O^T~&7N0V!EmSSWx<%Org)BHH9a2wXW_5F?j$-B; z!|Gh}6tm?PX~%KeN+b@WOQ)G%uT`bE^9`j&E|3&VU7R(&+k{&6y{L6rB6Cn*6d6f6 zV$dyb(NUK88HZ(gb;z%9fJ4GIoi(T)a-bfB;-cax?wo=6?U`rZbSq~PGNCL0yHH7| z&-qstk2f|%cMmX{A10k+KETKsXUT1X?$kbwytrL-gmXJp>EBoYd|V{F$wwon*L{X( z2^?14d9D&R`e~hgWoL2A&)Y^Rwr*No5_p^X>_lHC{Pe?->srRo>^@oKeyM!;($aFg z!7zq3)ZyGA4mJrRg%h zSf$TkY2u}Z)(IJhX4rmW0KH=uySSiA@|egGePWnsNFnd~K!a;(ymY(SbD+@mbI`}VyB*WU*^|2~=g+<`sCCp^1gn(-fw z>;K~S`^QTUZq^@BWZstJWquE^10lc}F5~Opm*XXzsJv3;%=qT3-F-?4A@MY0i~yI{ z8pp$Bvz=$$0R`$z3h8hBxRTVGqpGZCUZFHI81)*Qe1ReT9q3YXz;&(V!CRCl6N_;w z|3zzex=xGI&%0r*$C=<@s;GD!DR4O5-Vdx5#9j{r!Gzzr}oHOw~AS>qfIPw!JX=iFi_+$&2LJ8_EfT-M4PO8H@=E(l05}kO1c%mBq#@X zN!sNDNo(j=hqL0jib=_!q?8o@7)G_{>(i*CRPG0EI-~oLS(}0*Z8RY&wG& zwMw;_B`TG>h$&mO&;Gs+QR-yalPP_}=rXNEU_-mER(sqNyeUtn_P*JEIWAiY0D}ry zYn|a&ej68izkf=PctRT!O|K8CxR+q+TKe@rq^95Sriu7Pi8(YG5v+OTwptOu9j4GC z&ZlQ{nu9rhG46a*nGdQmT0Ys6FlZCBhwV^&T$Q|VzY4KwCX6}_9MM?x`N^S^DRoXf znPWM2@Xl|aj8E_6frQ}Cr`F}okfo(%D&Tq|hMbix8#$}bIJAcso4Ihn`mm_zIVWnm z#I4vg_+88;&STluhHIP4^0}c#==n91*lY@&`{gKc&Vyi&SV3Hchcz9S88>9TR@%QU zn{2dcM~{%ZZ7P`2@1mR+7?JI_i;UzqBz$%sLW<-21l&x{BjSzfoz7_>?YeH`++g$0 zcBzBX%I=Ly*%l3YS7DL8zH09Ct}&})(Co$AdcOc_{&|Lh&JPzr>U~N_zJs`|CXF zJ_6sEo5MW*3|snP;v?149P^&e#6a%5PzQ~xm<-+8?n>boy@$VJYX(_Z)yM|@grc(X zp>I+eaQO8wO-l4SpJn3s{ku<=%Xqd|9?Qa-fBErr)@p?~6F|*Kb}^<2DEyTFwQZw%U#jwCJ?ed8rv%O@ppbtxyrULalRJ z^8JAh#>(lhLbIVHLdiX`mC-~RZukvah67=pPneI?(Nq@!$>mZK?Q3aNSip*Q($YdU zC$L+#X~yj^{josycFps~+Nj35#c?S~4b5fTLloEKsGV3lvtm5ULPCX`aABkyO?@qG z37_jz4b7+Z>iiu4>PbCjy8(gzo}|LG(QSWnh8$(nhr@(4;cXR%C6LN2=a?v(AZbL{ z;s|tULDn3dBkN=S(X+ltt0b^mekjNs8IxFiS?ROPG9v@1Z8;LyUUU$gXkJY^7FX|T zT7@U0OFSlhQE^PM%g0qbMyDDtzdZnLn zzAsnny{>#GK$X?3uxhS7WFjl}Lqe=KQnIUhupN*C!RB1d3q6M@?mxt+M>CNN!bdc2gSRTYPChcJ*QR7V=WpKKc8+KA^H{^$x#cs9-pEOC zTp|n)?;IO!%v>>u7V-U*gta)jT9pq-c3O+SE5 z!kqe$+hL17-p|mRk@4VjfhL!F2Rc zJG!|I*of6mnB&!;OayU(zZ@YN4KaCX102%GRBAMp^TxQ)5cQb`Bp&lY>l8qHmL5@3 zM!GXOdeiQGmY-ZCK5%94BRsT8+JNq1twK?1n6zg)OCp9d`##G#PcA`zCoM3*cRI~Z z)SHsotVr9Rdy9xMti&mZUlDNxb{j)Om< z34rWsUPt*3Ohj`O#duMUObKUW91-jvfa^QQ?Q^7Ygy(Oot_Y7^vKAK++M@u_^ewIg zttmSDhos5@Q~2OUhkmnLA-{pkFggd1DKXV{^7P}*d4*YQl>a8JiAP*>eVkgM+Pf}X z(*LAr`}gYYUp}}6;$nQK2^T)U{(n^a`|lK+|Ff@|6ZA1UH{QQ;66|SGyn+9>wdeos zJAD!Kd1W|UqB-Aw5*YLt_40}qJKI@$-s9uD>%3^72Wj?rdc@g9D>SWao>1pf7)k78jS zr~3(EWP);|HdErNE-G{n-N%pvePUSvFRH;?PAv z_$qK`Z#uzO*a=h3mA|&mlKuF$WfEm_~v3E#GSMi5FvPyoB{qwR8RIW~20D z$Ln&{7&8%9!~c9`^S9_FM@q9%J=hb?FX7A;JdNGy)nG!e89`NkUGMz@51rE3O~*yd zXo*kliA6oWkJofk!D%3CBYi|SF_mOUTJ)K_!xn2OquyGUTI3$!p6YXkCrhiE7pY`( zL$zd0_p*M|9u)$fLhrdcld8z}+TETbYgc~1}_NvTo5LNs_1JSxAC)y-?W(<2 zNwO6i9gkihzccQ=dnz4G6DBA7u#J99CAYWXB?qmC!PSjVN$9KYLA~PjO1{ZJF>8C6k z>3K(fV12QDp1PQWHtK0*A~2IHtD{oseSnUHJ8YiB5$%Yz?7mQSM(yI5)rcdX-9!&05AS6 z)6GA#55q_wz_?io2SgUQ&P3ij(;V?BpT7A<;4>`pI`_?Bi6FBf|4$37gvDgs?p+_! z*@y#Pji+Z9r^(Uwx@*ndYXzOja0bj{jYh9zJ=|at_siZ1q+QtOrSIR8%F%vwNVi$o zNG!pLi5F*!pTLIcPU!!^+*=04y|vrEE6GY&5g;-+)RAD7xqWnd2GbHx3mqwtk&3mY1-V z`dNxumfGd3ef6=%o5{AEyzY(+UbS~nZq^CutvV7dTogx%_t#KuRi#wWBPBV; zX|h90ygVVlY3&bwzB;W5Yo6%TSlQX{gepfm3L}SVu6 zziFh*u%-1v6J6^Nb)oiJf2UV#2g|zjrOQ!hFqX%C>GUfW5J&KXNvDK^Ku`Xsl@$vb^sEvTXoJ;FMHM(Tjmp-bT(rJ+5Y}|^RdJ;3)7OBgJBQsyjB(Mk^_lFTT`52SI?||P&}z2=0QCjv(Da1fZ2W#Xp0}bi^l_w#<(W)V%6@v zGE%+;|FS6-w+|f;O{P({u>Y{nZ+t{b%$-^Q%%4!#Rmw42p|@q^``3Tc8We{QuVoWf z$IMTz9Q|oKlkefXG!fPKY;6~2lzsOY`vA|=qVMgruYy*?sAgTJ%lh7KAYb}`EWsuqRHtLW95S8L9$qcO_-!Gjk z^Gnx>Yz_o!)RuOOd|}wXh@)gaT&h(ZmF5i(BsR!KSs*(kYs8J^cM3a`^?+WL{)DTJ z-kSu2TnyYqrl@!(;Hnovv*D*xrOA<#CL%FFuR}74H2ig%ai7n3+%52zG{o6D(t8H2{vqX|SZ zox&}shs%jewwt~bLF`{Szb$%+$EYF+XfnJ5bdSQf4;8wY(0chORr8B8z3k1A+1n{5 zp46$82JczA@(s@SW95b`+9P06ckHl?Lsx9(U)Mwgo@x!3$XSmx_*qZOdd|~d*7YUN z4(wcgI5CM3B!%^_26i?^e?Kr)4q8$Q4kQCLL#eUs>C-Gq{UnRjOR)u=_V-A}ATH~y1Ud-v&= zS0bq(I9`4>@j7~mA(SV8#tO^0Ki2;am~%JFQnmNxfX3_i2<9fh>Bs{RGD5@v~EAVTcsBy zsFuaZu8+{>L}0`y&1GMkPwaZpUyWPsskQdKfZ9g)5=q;6-E>(s7e)L{F6f!v`GQ88 zT5MLBvT9c-lX{(rKA%;aQP^6aXUrIJa3l;~`uD&_T+xn|5%P%|%;B>HDrv8;wUt!} zf;U0ni_`57WjwoSMT=YSF)bLGA069B-MImPbQ;?ye?4F8k&=B|8y^kUPL*CHn_oA^ zm_>leF#XCEqMe|N1^nnffWQ3?gji_SCCH?P-a~WEy`@!<77TzUiK0?hjo+?d!D@=^ zv^+qZY-Kgy9>%cwR|9xl1X{HaywTOBu122I%9?4_e5Brh#mHi${t=A~&O&m6veP+x5EceJqTDLHm4O)&x1`_ zc{>h*sOKg;g;M;VqPRp3Z9cctwOo^FW|Q%PT~V>=2<;~2%pWiCxMw62muc{g+JPU# zN>^n+!jx4BBzN&nKonWIkTR$faVQI_(XuF6ip5VTgv@i-!9kUt4%3d~#UejvTIj)3 zW_LN;RTk5ef&bs%yd9LHnly;5t_ z#ploU1j#{pgVaElRhoMAZuoaTedhYn^m34ubEZ+4*(qxjNC(~zUH_T;^_|iOp8QLG z714iluy@OAN$Ty2DAVUx%d@3L4oEyC-46|1g^OM*8Ozoz$KXFIt?h>+R>lgxYe+}R4PbcF-m)ga_cDe z@ene@|D7pU-9=i;i%cvMZ`X3Nmm!AR3^}3%HB(CZVO)@qk33r4d{Xz-C# z*y!!apz3PV_InQyqJ<)bi|r^eO~KcfHK8`BgD<^YYH?3_!?_bRf>c+%+^)OyPV5|6 ze`&tP`e)W5)P#+JgYL&8wJEdIMacNtvG*hYAxGD=%@=!QTYdPMD`CKI;HVZ4e-vlQ zi*ruWRnJG?sV4M81qJbn@EomL!B>Ct)$#tODYgpjDHP&N)@k98yppR0HH|KL>9CCV zb7YxxoCL!f``yl^$rN!?;H6m8ig5(q&N0*^GYF1NZLf|9_rqP*GB+G}*Rr#M< zl^j{kHzS)EL)2e!0bLb^&a)5#gds{YB1RyAzMFBt|79s3)v&^vAKe9Y1D`;YP}I|K zwA5ok)l_e|yuFr^8sOI5wDA~I5-^^oD+sDo3n=$?GoEVJ%rYxqh}Wzx)M*CmIYDoi z&trKuImhc!$#@DJC&n`$UjB=?^O@~=C|5~oaJyFRX@Y3!jpDd_4{;1=7gJi6JgA;O z94_B}&Ii(QcLDyk_!J;CM4a9T=ZT!M`*U%Qv&3>rXaBYctEj593|b~ETP~8pg(`r} z8|Q?TAds0^G;8E4ZrXK38fU+p+m)TuZ{5-Y$vQk1L_~p68=55*70LBDOFHZaa736v zv6YMqQCcykU0bh0LEB0AF#>U7E)1^z#<+eKeyExVuGLa`=2xAAL-yuFa9797Nc^Yb zceigAaZQS9r*%TGrTb#oSB(k_!R3FH65`0x_)8EdpajJHt|hdOGzsV|r$P2DD~|j_ zV48?;`Z})LNB}`mo;)U1NL-?=D~}$65rNtg{L~z-Io^E?oOtaaYlbDSe+%3r!pI*} z7arf3ZX}Olh+8`w3dxKbnef={t{iS=OL?ZvmUjTE^1KKw zo#pttJ+uW-!>J2qs8bB+#a5j_-+5MWf#nDY;5tmenCubUv|d#;0m~7_6k*4mE1nF$ zjrM#8$CD1A4I!PLx*(r?%S_HxRLQa#Lv(_V?9JAxy_JOn%>-p3Z+nKYG<@>HB?6eMNqC*oK`Ci{q?AS1ds zu?d*mvw=T_=}anx_LRL;c;IVR0?Uoo7u+1y!5I*qgp*-!jeR|J(8$RbUwuf!Sf2K) zp1`+vrO!V5R<9nSE5gF}OnK#n_ZFE-sTp}6r)iKMYKN}ZRUI`YRq6{g<0)DDg|(q{ zjcHmTxO}%@{I=)QaBi?Y9f49GCIG@|Xm45X!C9C6$ULL&WhWD61s+>?Px)>lUz=dS z)>CThIY62-c?Z|S+?s24&F%50_QZL@ep0^b=ktatMzB!`$7~MLrc9#h9 z0lBi8;fK#o6X3mIGT&{;n)AcC*>Wg@HN7e8Y^2ZWzcQNU@3G=IV6sn!j4el1Dj5ra z0!`%bnm7vNR!8&Ax$cai>5=UP4QsuND?TUq0KP|^(&Q&~avZwwY+Wg~@G;ThvXJ&k zrQfl#gYvm`UGQ*yBYu>n=rSL8NY>8PH`lDCsbwR~3mWo36{k(@?F9YwfLtj?i~wCJ z{yBf=xg|^K=^!vLGVKIpvRRF~JuiqAem`WYfwt$q0=`(;iO=J)wA=Y=QbKemWHk;e z(fPmex)KrFY?s4=bqz6U1#@yEuDA8z4w>7H*Mf4j0NyyZ%ongkxmu}LN` zexevu5e*Rq{Gd?@UW6YiS_r~dD($Z%!ufsOr3+bdZk77gdnc+Zod?SwRUydZ2)a2| z>KG--mmIlxK>Bl$3k+2*nECMaTq=GDG-S&eAiXx!%#h4 z;=@^{tQBZg@5t?MkCFKDW2FYV5|$P{onRV$zwCVDDNE%Y^_Ts`RvU+?Q`!i`iU)>* z(&0%9Cpr+W0ENk7tH!!wva|4M)3pm4B5?92=mDTFX)yiX{{Zut!UIHADnQj} zebNCQ3vOFsNdTIvn$*D*4IqvKHd|@1R}`uG0V2By}E&7X1ztk*{F(&KDtcM=9HqDhE!l27Lwug59%Rp5RQ71x<0;B@qN9{Yx{!;8KzSl2SD~ zed}d0Dz0UwfPf6O9AuoBf_(M&ihYxY?+f;1jLKJlOS2A?UVqLef2%pWA9soH;plw) z0L}cq_^IQXk-c}@xeifS(WTUHj7Lc=RH_7M6yo0+ICDV|zxY(g!BP=vC4NWlQLgFc zy>lCmxH|&IP`(383+7G>C>@q*b{tC&!xPlPW8sO~ZXzg>H5vp6*L+TiM{#TcCmX{* z#GhFxfX5|#xlj^uxg&^4$QMD|r;%1{DfX>xvP(v`)})KjADm1qJR+4C*eM@kgm7iI zxx?RWM05LhS2Nga#*IuzfE?`}??{hcX}3_Oz9sRf1cDih2txfGn?fy0;#uW{73is0 z%ZVN0^e6~=QN0b9HF*rO`B1Y{^@~3{WF&*%%zN;JAlWbJ#{$6-ClAmZYMBq)J3*(i zN?-K(RKsNm{hgh<9Jm-63BijjGT4nxCGj?~Nvaw5&Vb@^zHeQrv z!ZbND6h3Tu<;pPqT~!a&8Bi93Iw%#@Lv^)yxc(I$U%`S5!w7)yTn>1{3MUDcsbZks zs^l6cH)&T(k)y`D5R{z8L>V7b8LtSFngJr_Sbv-Vb@1!!zyrqM$uJ&br*nie?08s` z!;rXBz9op);%wG%h7AR8AT$@Qi|cQ&yPAopz}{3+Q!l~?s6f%bojz%w7IPaUby{Rn z81e)duMX;?;Qhe{QJ#H7QeFMSIa0T0vB&o|MaBtHaLii9@4QPIYJd$-<-aD>TH9p3tzSAtA{wd08y?iE=*1<9h&I7BPXz^?il2u7!P} zOaD2uKb}R!ijue-wSx_8cciZD6}`LR=;zV|%pM(jY~jpm0)cR5!9`u|UlZ@$P(v zrz*w_cB-OX;4iv|ac_OXJHZO_>F4l-DbH`Te?YG#L0KV8a8df+J^GN|$HubJP=C^x zL$MTtt=4)j$^Lreo<*_UT08%_XsRu#QEamN z{E%t$(>Nb0Idn|thfadlY0XZwSM<|R1bK}YaTnv^LsQWmeVCP|NmN%{Q;ooqqnJEA z+Z`pQk##eS+WArL^=1>(`N=!If4Q-K`6=-V)QeGXvZBPsQJmJBhn=Y+NG(q5df8(S z31i{EKoN-10bhP6^`;MMqR(uMaWmDJEI4}fE|tWxkX|F-puOP789U)3H4g^Ra1>dT zV?J0&zAoTmSUoUR*dbV+h-wWW3E0t}GUt=m#9kqxyp-GmM6o-yr*zzA_nuKm^2+RF znXAd?Gm?6*+pyZx6j2Uzq2lX}$=XWuq%7;NDD&x3H=GrQag8wQ&DvdIm#w3CA+gu* z=qWE%Cr>2CfkD58d}FqO@RE6Kk@iH&bDq@lz{E=eyjkij9|kbvCbQ+iQB1xhh%igO;Hs zwAtA7+!Jh~C1Ald)tadVR>N>XcGN&iO#pXnd*8y#Ah<;lo*2!|^YgvMjCCDC0eEFg zV}r?9IH&XUU*R4;R$}96J;^MPqO#-!txLJfW1b6Pgy}t6uHkQs&2w`}OM@+Qb8`lE z+75Qk6K&wbxy9ebOC5`Y{Il4+Sm#JMzX+tO*Vx1~=3yhC*$!}kyaA^gvkKkzgk|TRps!kErdWu zS-mzTA|h~6+nIc5l7`)I)*ZGJBWTIzPs0Cb&g<-3zkan1pHN6S`};(9>XPBon*)v@ z3I?y*`*16(>cm1w48waMVR~R<4RX=$BUsDUom|zc~3e=y}oGXNj+F{C^ z5DAP~C;&`~u29ys@z}3A?rq_tgvGSaC+PW#Y~U>RaI zqZ9hzh@q6Fq)FU`7fC34Rlo1RLClin6<#fS(r(^U_6gvj%tn8o94Y5hpX66r#<0&M zcR~v_Dql(IJE0k$3P>PyayWp*fK{#_AnmTMu-^?_23`9JF zx}jx@<;S+GMJ%Hq)uj{xyKAq>%zA=F;!9-P&DRO2P5g+UX6;$51Szd6+cpThtYF<1UEs@hbuu)3_H9KZqPllV|3v6+M zv7TMp9mPpFEov$k#D0ndJo3-7Zs%)GtJ9hY`+DCQ7d9Yni{eXWl+pz1G#l^HdsxH{ zF8fvc;CR{3?gcN8c%WeFcgxGoKAO za)puna1cK3)-8V#L^uhe4tsE|Hg8`A^Ob2`;wE6awiq_S0W)Bxw}gCxUByKrzt>pp z_C~vB-)7hbS z9^9GpvU3BmS7gu=lUE66rwiDlsba!frSOCv)vg9=qj}JWkQD6!tUq1X&Kp}aIgKZz z;uox`5jkuJvu=Nbvw12xVeDpS4gpIkJn2w+=U8MjT5RKLsat5JbGyWf&p48}Gmlu4 zW=9qUCRlQBrOlD#C^r9HQs8uJReyQhf7!NjX z=jDYNC7QVPueV%Q#HLyXm^i1dRC(OU&r7d7m=<$39eR@vSb}eES#UD2Qu7GnUYyGbCh-Ux|E+ef4)raNIP8RqO?q| z4+v1D0uk=U*W}At8?OuxD|7iNcS)K5^pTisXc{x@C0#!msqtjojWzZRi{gq&IS4Ti zv(#<3a#f4jl)t$79DP{t-Hc+;L>7-5_cdEk4>#$<=GqyJy5z<`M+WG)7Jr`olE1Uy zq8;1gY7gv21??Nt6gGVM>}#uC?j5~{->%**anbp{o;a>z?5ke9evr3+=ptO989=h7 zuxbJEb&~Mpp&t#hCd1q^3`flM&T6>py6RKkz@P1q`$nD?p;n&UN9vc9AM@FEx<;Y% z@1tmdP|tOlNN0~@Ue)V|Ros34Sn~X5l!9T>FRe(`_J^)TX11u9lkJbXKixuAlNZNI zV{pH;xeM>gsI-^AN5R>oW|DLVK=GXh%st|O4K(rn%V8<}>I-pHzzFEUCM7@bP^eVa z^WCvA?Y`jWu-vmyWqK!a(VatT^!Oz+p&a>4kdjHb0*zakBd2djlB!AyvPy+jKQ^8x zT)}vu>YpkXJEKS4?^gSw{3e{_Xf(CQY}Xv7oj>R)PsKQ~SSlW5KHlR0Td9A$?le!U zp^$nr)JiN^YTRZj;*Pb@9QPp4v#gPrpeMdD%iiZ|&oTxyNTwSYB~&|I2N$gS%F)Ra z#$*R>+B75^%cbgwEH-~XH;6k!|AZA-jn(R6c6?ts^m$0A?iXgn#1KJO$_16}2z(Jm zJ?~vd>7fq1Gz|JX`t*Q30xtf>x~g~haz@8G!b1H*edM!(nQ{eO=XRv4ez?$X4geT9 zZco#td};jA8W?s`$23eJ?6p5V_lGsA4irbp+=%zv&Np%dMnKB-ElXRS{YV+^TWbm? zLzYo_28@>jp-5U#^5oCAM?ATuIZV7wDLJ{!i)NXYeBd+Sz*`h?Tsz{90J?0VA4-A^ zs7qZHH1@pOVdq923ij5kqW07G#pTuG(j?D@=(eH>gj%~7plABhP2gn(TyNn!)flI zZZYDTSu5RF*?TxG#^BAy4w%d3gbT+|z;hQQu+X0t*e_(ao(IDT_#GVXN<( zjf9np>$9QT0kwuY&a@tN+u>5xgScjmUIFz2oj0=?hqnNWtXT9#Ign)8G)m*IO3E#? z+@=D)g_8rJM5h^+jdo1t1S`>Y$QXu_bQB-_&()1~nT)Qlb)ptcLM!$@u=U$lQ~U6tYHt%?9P*hGXpK@W(Vk5E%B zZUzJYbsOJ=N=!^FGcabPYp`eJ^<`Jx7W-kwGW(sQ1^hHsvn}{_-QP`}<0OO9%Ft;C zek-z->Bv|Xcrr!t{N-U9&cJei1BQ>C+yz!#cA&xfNOp07bc|C>R3RnZBUh7T_OuwB zTg%DVn(m6tT*+uz^E0=u%}$yR2gW;t(U(pcB{GFoTr%Q{lf`M6GnDodK}_w6wWM5} z=lrMSIlbo_gBLI(so)W^u-K@+8BBI&Mn@Zc9zV)&*ru_&kC%XgcE@0j&wsMqhmxv` z2({BFm-VYx$$01NtJ*n9z+tYqF;&CvxL3Hn*O*dg_JHezJQt~OVcb)8)BTW&UYYzH z_bVIa{$I}flMDmc`Xa`xbaosVA@SB0iB;uxH{o&shxW)~Dl@+=^GdJIPGUj=pEXo& zX-WFe!I-x6r4GYV;jRtcu5aJyWro0Er(+qc!+^MRK%jq>uH~XCEtqtH-eK(n){E|A zhm$p>jbVgB>NUH56fLohRctQr|nHN9W|w(tYP~MhCM1%TM-jb(ajMkdg1X#>nZ7oAF$9P-hsG*>JKnpaM=6 z=PRTLnQz?@mZ%m!{`zWu^;L@!D9fW+4FtzzkRal57KJ<3gU%EOSh{z}@*M9p_&V&Z znNK5rgO!kLEcLeR-JZ?+(nUGyi5R`;kKg^XVYXj?0(PK-9#FHvVEc7((r-a(RJX?N zkQ{6dliHtM57QBjReYLyX)*3ptQbA^(vRr-Q-WwPBU@AuS&y0xCOJu@NQ*r&;pwiN z&hFEbYw74O%hsKXE&Jq+6vMj(r1fD?hcw5CWWAf$0ABA2*M5F3_hu!UZ7Q=&6{(_P zdO3s{ax*Cgbm%dI$%<2TM!lgKix|(-wVj&ra<`>FE5h{FCmR;Zsa6zFPqng?a`SNW z;T>8q=jAdG3sj@qKljaGn{S9yu01E@M^P2%HA#%5R*;;A&pvH?f*zdIl{+GRqp6;0 z-J^xa=Rlt{C;aI4XuEU)hIFF0{|(GIlh*BbJqjPR129-u{m_mOIJcJ8+Jk;_eoGY7Dvl9#;+xl44@7-}WB}H5WL)V9#D0 zqmHkF|2(JWZ0yG!kBr!-%Fj}`8->2 zIVix%x+H2D?)7GKBo~hGhhsd`ng_ z1fN*zf3A% z%*8JsZ`~qU7R>GG$D1_NzG|ZsY)Ov{l-SiYEyXg7vLA{ai|ee>X`Wt)%V2DJX3Nj7 z&NG$6jl2ngPMW={nWUZg>Ed1gnLFqY8J;1_dV6r@)*Cg6Q)A)&khbaYF=0sj)23sE zhxD6~pJ#a-6Wu&0u;6p?VZyz<(EX{-bI8fILBm$-sditquu!-#4%|`55>Y>#6VOTF ze5_hYdQ0VT!_~pMAXcculOAvtOv`yI-9-Fd_2!L;N^+N8v5$dAKcl_4RF6Ra4Mo`} zlfMEIDdO0EJTeMuCl28fK$dR{ZJy3oT^_Kr8dcDR(-~zZ7VYZ3-@A9h;~KgocSgp( zh&#wSY)fW(opdaK?5*o5!7_HFCWG4lZTV5>_5e%1uw)Zu5mw1#e4WXCVSicfePFUc zmSq0{qx9%+y%O`XluESzx_(Ak`^TUz;%L=nkU^|d&`c@zEGT)GJY}p$%}BYV2I81% zQT3OoVR;3;7@Z^u(RR)uO%x=%%Uz5&pgWd1@OweIzNc{U`+r+jeBPK~%|PKhSE`Li zbt`3tC!p34urb@20MPD>?< zCmWkLW7ap(l~0%Z-XnMv)D1BKXDJNkh^z^&8Kn3npy8 zv=0S(>Mfffgweqb;dh4*0#nb>@31m1-&dBgkmYRJ3|*h}R>!yUfn~C+|e!?K&pU5xw*6p!_ShYFepjBL^=+~50m9($t_cBf6hW;6Qf zhrQO74(ii<-;daDhMJ@GTrsyajOWaPt=8%7+d18fvU036hm~A{V-_VnueZHaD)b0i zG~V15({vft4go}Q7qaH0OfxQjd+qm$CZ2GzJL{hq^Ljn|UrMfWXJSAOIHp-_k1lh0 zWurp$QEXYrYRHBj^b)F;Vf&?wq{>5sSftWj>Q7v`$82V0s%+fB!9^XPG%)9a=Tu*ldJ3`}frW%ge+McWoP6p!O`2Gx= zy*zx)qFbR0ohVh)7j54~HC>^sOu?nT#`7@B%+Q5wnQbca?gHac$CZ)dC7m5;1gd-v@FfurcQXYGaboSg*2@~9cjv}K3hcNQPc^YK$aUL(T@y1L`)Q86TdFn zcpy&wsI{5MJCg7*h|j=X>EOcW!E2%rg44{*ODGf+xP<~1(k{G0F+((+Y?GF$BpGZ9 z{=i)sUZGuD4(wFuz0|6@kx!*i{02-Og;WfhoK?*bxs6PxIcjcsAU)zmow+X2vXp2S z9qHrTe$=?-9<5ize}d1LIp@Yg1XQG)8s$sHKi}*aoPz^NpUMbX*Rb)}-b#_x29+Sl zCz#3Q;Duy<*6yz=ih5Z_!$E12t{xGJ}~8)moJN77;RW9W-MP-j&0X2f_TaP(cB%WZoc!fV2) zq!MUra3~~JQ!K(Xd^8Uyly|WGLd?`|md_$}-9oAmDbm7C_AQZrg(!1)b}Q*d1mJZR zmem-Zo$cdV&$@l~2~J)b)=|0=t2^gR1>+{Y4e9ySRZ6FTdV9Sm>BxYZIF^NkE8L_! z{(F*uaQP0km;XVEWMTp^(hd~{DKotJv#kNFj=q6Bz(MiGeZ1ss1>8@w1Gfw7ch8~P zTmhQr)+-#ce%Lv|Np$S#qm&aR8SL-3Ez1S%F5o!VFP9};R>St?{v>0PbIlYlD5cQ3 z(#Apx>twExf$Pd0$EgsS10`MZ!>u-q2o0-rKp9s2^HVMF!{j=@l;g~Og!XEC*!k2z zWr|Z4+3-Y>HeY;idrP=8Q`3(2&m|rEm<|_LpGaGR;{@{sdtS>TcVR-FdMX+@9ECU; z=wVe1o1>)u)Bl!{dJyN+4MCKaSLVN+rvJlpivQm~p6AE=3dxPB`Ny@xEfNY{IhTNd zqwC98nJ4iWw{=|6@3|0Z5ZQPb;9H0XX&vA7>x_gp&PQ^~!I8TKGhUiiFsgR~9)iRe zJh)lN@{H}e5IzZUs ztox+3E|QXyi2q~Wmfu?Qmn&R<3R0Ee$TrK|z25?lvT#mc2w}^i_WMJ$dV4-WWwFB1 z`$i!U81b_JzvIKWzGwD_wD-e#95H4CUvSG!Zy(pedW}Kr*$?r+1lu)Y21A#P>9l*W z{v+Hhg@mu~eg1h@wKJQ;MRGC-vN>yGn>@8}xtV9_;Dvq1oN;tDJlk8Ol1prqjhJXf zrptKz$lk+_b=g0tSk2843(A!8+HRdgU^`BTgI;gJVU*YHb!r}+N@r+1Cypo}bZ537 zGgSwsyJJ$w#mQT5GF%6@uTj5Xvyr7E-+|q!IX=g>B7zqR!zzQdBcJ#{Nh`Q5h#T=F zgxbBou+}zLDXK4EcstCMkC!vtc1XYUzWC#>wdM7v<(9iePUzsf=7ay3$7N0%aidB) zJJa4J!SC9b!uN+EzTu6=J;5!UuI*3w+_zALll=`Hc@saox?S>mjySAl-9n=arVZE< zK#Q(8v@~0}{kwY6{GgxmZ3egtFdo|10k6PF&VW-Hj5Kd1v+6+SVFp1)GCT-}K3nbj9-AFfPYe|Lcn8dFDSl ztK*{|=Qc7`kD>bRzP$S)C#Mo`g$9`oqC!|h9xU#?JQPw&m{lM-iP#)gTXrinvvi>H z_|ik_m@!+WAzHm_OxB^*@%@3uuSN`=J%R}%){B|i1r;K-11GBSKa2@+eac(Z9t(~f z{j6v8AN9|lvxik=b-{TiZIh(*t36Ww_FQS{?w$VbSp3x2CC0-;cdx2?XBD&T8kH5e za+(Nh*_{aRI-Q*CrRFb*IN~`Gc8kpu+bv6$JHQZ6&@|dC!(@3dbqu@J}dJ9~kc)wD8%y)3|Ei@J9r)(}qq)uhgSNKytZ>L_d_E^w8lN{~nwu5bNx{8Gb$~s+tt#Iy17nHR@4gq0VZZ z4DTZ8ul#$y_?=4fb<@Kz)0!F23zqVUVR537*w)0Io&^M-atMuwW$!pa)a1zZCh_jH4*5Ql!6Mg~h9jRT>j=DAeoSA@Cp>#{m za#c}@G%S#xO)ieV7<;VAw&UN)S5NwVSy}gI5Ac-b5_i0WI;!beo731N5^6nAy1O6b z;28&H)lp9PqsVU6R>qJ`WZc)gJhpjm*ET*z-%w%4HfnPQuFf1lU5=Swa`eyzv73U; z&$@YaKuxVJQTZcijOJ>La}kJOmowa{#vxceL=SNKO}whwgmf1(lqP!&uK|slb90ro!xf8TJ{~iWWowoi|0w{e|Dtqm0h8JQ>W13K@6mo@raIryzSQ zOd{k&eoVrro0Mgh!b_9FP)=DQVT@_rd{)9>lNd{Fc}qjbK3(e;6X^;{)z23w6Guh#0Qz^is8Y z83bGK3+325Zm<)31&cj4g3`{=y*6YB*3)ps1zV}rt>xMygL-~zHHK3ItIJSS1R;e) za7soJB6!G$1>;!<+K6s>WRxK6komB-bZmws_%%+-+j7qW$Y>>uB{(C(=PL&GP1b!n zZJdm3v$U;IuricdFce=VURxb`tEs))+oY3s<#6alat?*zfvN9j9KVzRv){mL_GaeO zGM$`Zbiu;b)qv3ZN$ANZgBIS|sx6uEu8Bgma6ShTBNrPhrqGH599t4( z^OpnUvVAjHX#jLGwKH$dXEixk{%Q4Xe#??Hh9_-kwVjD*dv*Wzh9cndM&9(x5>ee% zd2I7Z;emoM* zV0Y9V-D|p;E+ez`&u#Zi)oo~?dS!|3=yCUKnZ_ciMa1IWAWq!g2=!XzlR`077)vH7 zC5>A5)SLg@BjR+)ykbZ#0U$3~*B!63HKIAMz1SN=%s?nAu*3dkA$BSIedR1k*~9GP z9P%V$hJh4ukMPz6sbd*fmazFywZF`D$@WxeEYw7-@X#*eB}u=1CYIlRrSqYKG(cwL zG17R3wEn};UZP}`rHH)82~4XiWFdiyC(GBDUQpI)ILy5SO?BwMy-BNhWEQqv8? z?qh}iJnY*;xDqTWAQ(3y`)A31v`Sis(!d5UMCydeZbK9{8!;JyV=8923Rd8H6M&P` zI-mxqzvBEZdTEX1D{k~^jrbimL@yVC)sT_tLlcLy3hu3*CM9tIwGRk4sBPP z&>AOD=*TIS$zqb}ft;q^4X8Vb`(0jCGD_#z!x11L^XEF}`xDRq1_R`+%&SapKfM2j zr2Sv&-2X$qI7v5{Hbdxkww5<$FuP1cJq>*Q8^iMf;WU1>ePve5U2$RkqON(ZE13y?WAHvAmkCF}fPab*3FWbWc8of`s0}X5{X+WY5_rpwt(ey zFetj9x+PziO%h%Al^pycIO61IIzWN*%6ljg$5g)g>v!0t+0XGDcO@w6fYJQ=`}YDMFv? zEn>zdzZ(Ij=$+s(T0i$(E_tdIxTtfTGLiva2AJr;#XZdWHujaL)pzZj%Hv$UGNHS< zT=!h>0qsceafG82yVZh6Brr7OcHx@rbSmV94+Db)X27@&O0W=U*UBki3+B;BOeOxz zbbKr_<><@KtPyC08y}@$Q2JZ$!jjIjDV3rQX!U=>Ogzrc6qOYKn3&U?`Ul)t4*lZU z6eK4Lo^^o8WK~cZ{sm$b3wda);Q^5QT-wn7+N~4{Q^E@Voj5%pL6HVtwZ}3=k2zBkTNQK0J$$4U`t=QmP19nx~ z7YGV0#tPMx;^?r+p#c}z2?m?*sXPcifJiy!W&Yi^^5-IlBdql~kj$s+yJMF5lw`*I z#d5tuUM`OqJp&VgRuaq&aW?7du+_TjbMw>`OJy~1qnEcNg9!yA1!xZrF0&zpqyj5j zpbZ3*3g;vcNK#zS{1W5y3P`&<;cWNCWrhnDfSY8kyNe4)gVLU)Mx1eUD|aeu))L~& zSKN0-YMJQ$;eBBbcs4+-6)P@u*RS^RsZYPm20U=9O!XAW(eCNGGU;!|6hH?US9FPk zhz-5V-fy7RHC-jv_=<<`hPFe1l@?q{UlpbE3D1*+c+&AP~rCsN9%`Sb7yH(uq|9`TMn|ab?C%6KHel9 zpF{;OO? z5X~nf zj`VKU`}wY#GDp0!Qu2Bkt^c8icHyHx&Nb&>6J{)A9EmX z;vLh*aEeLzt1qI-r`s?KC4z_M_IHS4wp%uOHu6cA?^9{Owr-a*i_4V@wWmTN^E&fi zuFHg65`F6|ByZPnDpy6YV(LP>7mx)1TYx-tE(@rkKC%8u+0B&7Q&zUQNvHh>w?~>UjH*zqk@&p&w)}9^=Hgsr^Lgwt~OiE#LoxR;nq(@ZhK$1e{%ij zKcD>W>VN;~2oOVX%Vi+EgwjD(_h8?Q7h?wjD7ur5rzX$3ma3Z<8#nN~P&d}~MM(&P zA%X=k$21cV*CBNdx4&?u!|4l4op|O380clPIqM6lklJ+-Ml+>u_jMaQ6Yji_2<*hn z1`GwQiP~;0SQxn5Gg$TjtDz*=bblB(o+`9-M&6@e#`$9S-G0y(V@IR6D zK2Kc2CSL6jmr?mBXz4738B_Jj2iy6F;hZ0SpOl)gYTP)C$H zpTAzC&`WSxorM8B8!nlUlbX8oTzr-zH;0e(%9EiP=i3i_dMS)X8u@sBToYg7_(p|> zZ@J6`e~jBi3MUN(?8ON+#=rx^nKoGodI=?)mhWGX#=1lFDW z@zCh@Vrv4+0CAzYjt#6FKXoxiZAePL4SVP0SQUaJ{E*2q9wvySdNCi|&dk7cm`txo zsdV%3`q1ofKCM0g(C*y;{jj=ze5FOVFNlv{jAF1|y z=qneFsG9i6z(;}DcODHEw=-QPZ*qZ0K^_tHt!G{VZ3{2To~n1*6QJ`GcHESAdrFf4 zBwMTE6SdTAB3Qf*f$YzE5k^Q9`Uk+p*$Kx=u0N%5`gRmxx71pU$90@Qtq1}PH-!yN zaQF1Xqox3!wccHI$#yJPd8zJ0d_S>Q+x>AY4L0?m2-#_XI@j?&y>XWWv6+l-q-Atq zZxhcgIa@fuwlZ*k4mVH1kW#17EdYe*dk0jiBGI)V+8)~aPq-=T;;R8DfMzQd+HoM@ zr*R6a=m1mfY`=^;_%q+KZs^6)I>#v91grcu1f9fJ zh|#6-dz(XNVnXuaa8V3${tNY^QD9Jvw45?;v*G<`gvfs4;BZ1fH^n4RzTI1_?2$cl z(fyYZtLi&Oj_z;$&R?Ad@;&MYZcnpK`D^q7$fsFul*(C6I}LskLY~-j-{g4+Hq3$R zRfuidvyPVvyFGIkpjW!eA#fO7xx+iVCx9sP7`vF`M8GM+g~sC~uUfW39gxNIAjbXyDqJ2+Of#PgmF1ut}B2WL8_T{ zXBr!-cAL`J@l7-z^_6*cR9${C?3Kk{;J+|Js+6 zx^#(T5eQo$>2O_WteXoW0Mp&vl;nA1=6XU@rWwweEF)?g0H5IQ0_+ zavP@e-F>psV+l|B4^-@*D_l~Bdw6w<_4-T~BU(G?NdEyhW;5wU`j&*nuV(+3TrvI+ z-^S%fZ^B|ShX8|q>xd6@Dv@js7T!7Bntb;?jG%azfQ!7paVq zgKo8+^flJu^K;iPuKNhY@00#hPeB}o*S6G?+=$g(7l`69{!WrbUCC~7qUD7y)+uC* zB43xz@QofmrotXlEqAAA*hqa_4Iru=))~qJf{4}IS=Z-VC#>y;q;QFN2jJ5+_Yu1K z=n+0JJjg9oOn-!!RL0LnfK}7MG5$UELs2J_WhDUkN0;?)fs#X=2TL47Kg{{CVpc1P z#+11)_hq$h*Xy?Kiobf<=-D1YnIMRGAP0;&pFy>x{h8O6glebinW`J@6h2*FAn)A` zbIoY@+OO8I7@gCw7+Uxgl+d%e{XWR0Dbg-^$83iU*vDjePE}~+`?5=$Dh0kcznRt? zoFDhH!QGYM#wFb)kO@fPT~GEle%yp;sAhzn)GsF-cV65i_%!s^e4KA?yvoA>37zEZ z51B2mo*kxQT$kR8U%Ch~9PHa1yhaII&UubDguY?@OTDuj+9`7j@)g>ZFoV; zUaskMg|9eXFYYX15$2f#XhVi<*WX73V~LW(H9PWiS87<8n*iyi_nswY&057!&}&=l2|)D~OeHP&s)^AES&j7Z!4kp4P&aNc z<%?W<9_QUTzs{LIg%^$jqJrYYSiJtjP>!noM;l&WFzCsW4*5J8*I1XpT;@nc ztGbHGMEr4LRixpym~_-qiVAo5U~(0%40X&=Nuw{1wAQ_DppEn>XPwSw<~+r z<&$N9V`#v1BXU{C%DiMd$Fp4|D2bHTGL7-aM0%Q%3H7*GRxrsos--JQ@ZIUyQ+O|x zz^{9&5Ob_$r<~+K*ELBw&W*d;eb0mLpv0onn-{T;Hqv3s+DuUvS;Rb+rdpNNnt8^vOD;= zlj&s~Q6rrL8OrQ7aowx4g{0W<~DMX`b9cZ-9jB%{!= zK2Z~{-pr>rYZu{&9xHD3@ajj!2bFuf^Hjy@N)a2&Q6X^I{mEd*}VoPd+S2P#uDK%adoElKvU2XE%$V)_NxZI=zeS5GdQ@2_*;RC z2=|CoN0Qa7AD*gGIL&svbTmMeG)+58XajDx`%kibR2asZ?9+xE#6ONz)}rt7>(fx^J6H>!;4IBOGZEG56n7LLKiEjx?hd`B&7M-KzA#!>+tEt#?U zM&V5sRU@!CA(HaRXb99_4Hvj{GwpayPfd4A7uLs!DHHV@sI2w#35_qm_a`sW9Q6f# z92c4zXSn|nq8`H&FnL$N|MAoxGd2KHD^zJT-9%x#CbdPJ^)0U45WQ?km}*1>`nYpW z`cG_8XL<%ApvGdd27TRFlDX7vqqn^`hzDpq{5@zO9>&x5P=(OL0Kz#_W*E+f(>p5Q8 z-Ow|nJvq@^<8TB<&=r=77D96xq0>BApOP|G85E^WpKRLk;whsC}K%?p1lZ6` z30F$`GN;3yhTJTKTs2ojA*MPs3V_XTqNBdt>3RRv8M}u_F{67a(xau?s4_h;+fEY6 zIH0V!Jv&?daMikF8uCH$*^pEuur4B&jerGGmJkiq9jUKH(*QLk9Y8^dL0}|hTUYhb z?d{T|qtIgVt?JT3Xa&}$F`hAbh1fopZ{*IFKhdfT_}un-eLN3ALZnh7!AzpL{%gyp z>ctvMd|+3B#FRHJ^PphA!w-;5?qN|DG|524qUwFN)+qmNqw2-UABx0MH8aND{Mbya z8swOadxlO!j$yH`^3{WZh4;cmb4lVUy(3Y!7FZ`q z!zo$IFD;8t3>Y>X(3Bc6^0ORN=uUGrrtm)BimMSP0`}07c}XUkxpek`BnMgZ&cgOz z>8OI|>43m3^>TNhM2aKK65P!^BsWGGnro2adjrDOL!U7pY&YBjnY@zQUfq1}&RiaS z+c8Z6L||sqU|GmJPM-_OcN_vDXCOuz?=U})%|Z6@T<4NPc$|J;~h?V?aF_r9r5eshB6%?1@nieDW|4>$~xDD z{>1V9cL>Gbyk^7`qYd6Z506##6|*~d9!(E|3yK}+Jr}Te>cU|x9+MT*{u@Xjdh-s2 zz$_EB=@PIA1b2`yVm_JcDxw8UdrN)tc)`Ry2QLnl_xGn4#H~I&S<23 z5S8I(J$*@`7@#85039v2_8p_bNjsQm~np<6ey^3%BPgNM1G;X-*WrC zq;*kDd=x#f#V(!me%|i*%nUEx4$}_3eka}EU@RAewxG`m-;{|*1&9cR0|SRt6sJ1;KeJ( zv{RAbD40l1JgA$eW(Uf_P@kF(VDB%8x!^4Hc!YBDPVKpjD=Ux$7MX0H)5I2VNR zAH@K|KR#VbuEKniyK#b#=H37-3PxGWCdt2o$O6K0b>M|&Gpc(eFj^aCeaES(N-$Lhd#}8y+aCJVuOGU|BRdSsoaW~#ALvMhmC z-P$LGiwE$NaM?k9hHDzFnQEu63A5k`MW0;-c;Z%c`>X>vr zztF!o=pu}k)H#0aGF2*NX(*)Qy(~)R-)=wBLNUtT+^@fBtO*k?y@OUjEx~ITHl5lV zIs_SC5AV(Eoe-J{Cqp2`206wAqgTbIhQ>y1xSSGr4l$NZ))qvOIsRG_ed{nH>`;sM z3+x^rjMVu9h}s6_%r&gv9k`19`wrUV=9`SvZle_8tNL@5MbA!*x;0H#hqeVQ0y@`e z<9OxH-K>g7i-w zL`{k5==`zn3QM@Y^vT5Ab!5x*qm+bZ%cQ_XA`}sP>%+*{N9`3Uw-(>eJPY>CN_SRP z_4pfJc?^y9j+-;djk5);-qtys&LhjGt$h0Ury)JvVv%^K0*uMM?{(r;qk2|Y+Ew=e z3Gwk4DWu^&mEnCyhLuIDCfOob=qOxXDho=P9&1Bp763|Lx5eN`XCp}s_3x)Dl9hVI z6=%E)AMP)=S?bsszUX;2tKa#@Y*u>02j`8&%gJ%a^nb2${V7II%xC$2dr7_-*&6%m zGTtJy6~H>g6kI)C(b1Wbqn7qPB_e)XyD`0E8+jU&cxX+LZOVWzX0hI71M!#D8Z}CS z`uv{$+x|skRYV!0ehRvRz%S@gL)-l$Xxsxm-!m!2@30KN68MQQyx*)bS_9QNL28!5 z_l&`Bg2M0fWmnrF+hZB5lVY`E`z^}Z`sC8+6yX{N{Rqqcq7*%X(0i4qLoyr19jVV{x2AgZCH_y<6^p?ec=Sq){D3c!az#XpMJWsD?%2`*n_BY`-r|%x_9(K_-1GW7 z!tCbGS>EEb1deCs@rM{|8S`#=|J!C}EL$bz}^QMGm+pXcZdKuZz7(ov)0kvYJ^55La7cN~1}b z;}Je59W=vEse=nIlamKiKc!Bd#ObnTk;4#l)nuS9Pc>zHxjw1t>4H*QG$Z?o{@l`5QLe+z2ujTqS}h>P9t#514+9G;<)-!bllLHC@`zFU!)kUi z^0X{fJ0i`Tb2k~qMJZh(7X1kvF_TU(ac_`EION?dn| zt`?m?CdADiNaS2PTtjK;YOk6!<45E=et7VKP7Oy@Suq09FjQr@1=Jc3|CWuSP)N9~ z7(N&*rVflEc;^5RMf2Ufz{H#-;9LdfTIBQn&e#Z~B$mo&&a+v^Gh6;Gdkg`38Q`*1pGV)u2!Lz4L3rGMnX5zARs!2w24j*UqHV3z8 zfY|pEjF8LR;IA75C3d~CAd;cbIcf-+Gd$;2Vy}TS<4-@)rxJ7#%R$RAyPW*ayvyt+ z6OlHI&wG3hs*e<+mAIxp9(^_88fCE()5YAXa^H5%m`MmN5xebB6anZ>tDaaz3xbU{ zK=M#=%bHtDD@JQ^4!ZPz){rP3e)TW8vPYrIg)=?tL~sgRrZhEi>;7hA)K zC~6r9f!2#|dX^cPQj zx<)-K681fmu%w)l8E+6q<8qLPcAA}CGZr<@l7#H8-|O<$d%=d91tbSZPs}L#=$E6p z?F_sjYbKKyprnzyz-Q|cwjTzTYx$GeKxK+fW1j^OM>qk_kz#~huJF11D|vT@MVZ09 zl0K2jv8st;k7nQ^$O4z$^^NFTvns{-c2rO9p`h;cdAX!-0S1GHnaMfw&{!~Y*zGr~ z!~MKLNG;Jh>73F6NbIRpXwI;n`R5-ffUlQYF z>d>+kJBbWg3K?!*)Jm!$0_)FPz`?@kqWv~(dI@zRKpkWz}Io4n=)O$M0 z6M{CF?9p!PS!(nWa&~u~=i<&y9O*k~L>4Hm(4Iu}Ezv$Jc7KmNR z)C!E5Q(I~<Ma}W+zmq9Twu9SPqs{ya1j%eFzskWcQ=jl`sr^Iuksio znHBnhB`Pr^^Njw6*6_-MjQX>)obAMN^NSBJUv7q6$pwq&SB!^5n=x{%JE?B z6|ASe)p=a1Crj}|2ISo}Jy@mWi==vGbz+fgr229N6#KEYa^;G1s~h?X+8b$8i8i#l zR%~PszEUKvv?FLPo&61k+s`ycI&>Rr^p+w>gavskz^5D-AWSlJ*7(&1p?kF z5n+{yT>1h+o{o&ALCx~lwkMg;{V3<@)AlYytgnEsxruzEI5U2_5xt$E)~pFt2TEJW zXhY)wdLu6Pi=lu%VjugkU~;3N91U#5 z21*B;vyq>lMLDWiEE2pC7vWz+odk7{y7Z@y8|rK3BL@u^I>L8V5JDrg;V3?5Jvq_S z(|i3CZ9rBz_#?2SI@&oWXRgq&QlK=v`l#E~&<@D8Y+r0c^HA~*N>`OREW3!A#^ix2 z2rd?Tm|A>4nkk%XUKzBPd_J&ScKEFaij?`#$x+N|nCzOvYq?cBcfC^fMr!u-S{x&1 zKFV89W`fbSypJ)}A(8`^Cd= z!PoK&7k$+`rmF??NyG|$vN@Kt8{s6Yj}yqR-_U=!G2C#w+DRip&{^U!X&%?`Vbp#; zQJLSS0_R;D2KP|eLk>3QrbfYku_*wjcw$wb%GF(i%~CGFw0>fC4^_|TXiCiMdSC*N zJ*$tfDAcR@^u4c3DZ0de?To3@wC=Is2Xe-uxHRcBBO#Lg&%jj)N>QBgjds@QwRfTD z0&UG>O^NH*FLS;r7bnxJwS#eE-fw7|S8EmPC4yFARjJ$xseFtFffeE*Qj+ATwQ=#K ziofVYawL)u@#;AqwFu}JuNNhrYnkiglWvo3EQxiGx zlzawpC2``7?{1PmPa%+ZR3S%l^)(y|sAuLI%`>}h36@f+5gK4BJ1)dKuzp(6vQk>f z2L3l&%v(=!p2D0yLw=hfq&MW}EfT)%bg^n$1**2pODu71Qq@Uds&>iqR{2cOi#$AF zn`d=pSmmDlB-TQbR`6uTO)KZIS4>Rrz(CrxDIe^9(r;5uYs5&KM*QBMiS!B|@ju3O z{hq!4?riq<_0CKGos8VSORV{)qrkuTfy6tP@wWw_1f&B(0b8I%#EYS3R6!HzGtkAE zb!p0aeXp$yq-11Z!BoLRQ0)PTR5a6zq6#zETRsojTj|LWtZ%}ewL7RxJQ&Qj9eTnZ z$7V)lKl$moy8RH*6f{Ej{0EgENDM0kD~%#eEW8BR%s^v($usGYn|3o8q%5e(G2+N% zGc(G-0bP@4jXUmiNXIh|n4a%)>OHFNUh~2q=&Fa$t1OoVqqf0wyawdl>>#J(19mUT z5aa|?M#V5)J#bV&?0mQn;X6bRreD34mQ~!_^>U}nj*(xRP4nxIt*&w4=AHE35sK;s z-rZj_jYoK`N>tP1Sx!9kit0}Y$164g#{|*VDb`8^B7Q`9KySE`uCskAEvwfppgv^@ z#LYn({I;|5ZU7VJXFU7^3Qx!)UO5eB%`_CIHsM6HlJ-WRX)j-aahLW&J#DV32q3jS zn>!h`eD{9C3fQ?S`+51E_!h*1j3Aslr7M6PRV+PFSt0`x7&)L^mJVL2i04_44rv6Qt$P0+C&$OM zj|T1?JVV#`X8U!9uICJI0^akX`-^OgGOn{RY^MiEQ#0iE8D&@c-g^&ZJ@dCm-^&0u z-XeCdg<6~j@aGED(6ZCJXOy>!23CfNJN6l=Oi_*&KgK)P#_^>qn+B-QcrO5kQfQlf zaTo}Hk`90n#SY}ygt}LP1fb{dc1$}mNS?XH8MXRhU}am`nrfy+CWQ||Ze(ZR^r-*V z5LWB@^m3?{rNsK!C*3o{=)>2hCvv~zi1L=HsR|ysvZRgAr(R;k%IRMl;I=$8pZf)1 z4)dO>n9q|@|4d3~i03s21C(sw)Y+nzS9zyepvhi5CtvZGuh)?rYuDf>MCOjSWa3U$ zaL+MHmjZDW$J({rJF}JL(UwlFlbMG!#X&LyB@VO?`Zr6iG%6TsR-TlpT4R$TY+a?( z*XuJI%WuD+9yk#y7TZf9Fm_e{p)7UyO@W$+aJ^;wQ=iqPAU_s6ST;s!>Y~By-fgOx zpbJewm4{LmofPnXJ)1Ia%bC7))7^!eG7{{2amFWhKJ-m7)sW%?+9ywz{Ey6xTSa3a zy$ zGj_W_$aPCSDa;fBC?3wj~=QdET?xx^)Tql^PM48f<(y zseGs=Tw>x;AF4pH*GS{!;Tq03&Tk_<##5xYuiXUChsiO&OedNiJk58BikLs#H1 z0y^y~LQ#E_l=&*-{Qs8)K(_lP@`XgZ=m+i08{&{slkcAGAgjS4aJWDp(%%=IGbR`@W73WyUU)lKy%#6fT|?+0P)I1J79;#~-? z9AiGQ0P|)gqTLb9+lFxU6}Jt0=ERW!hu;tJI*9mjQa3_HM{4~DN1ppJ#Z(OY4g00c zHLk%_)r??zQstAxW5x6987PC!1sWe=H*XOhfG-p?FzZPV2un?HDy60^+JSS}{meF& zlikH2e3=8o?a{1+yWLTpP567O5bUbr*>!S8D;1YQ^ZMYn69aNh&_fLWbxbg3calCT zVApYzStrRT7$b8s#F=ssG{9it2;8!T@^3bnb}w?4+gKv#&=ppZ@rQk&?}A@KsC?|I z+JuAdLxpm4ne2soO@&Uqsd)<}OUMNMdNpR%5O^W9%1BeBA~%~UoGM_;wPe(-Nzg%0 ze=w~Ur`2%^NF4Tn@(}@e5M{rw^O${@(Dje3#6Yr>xqXzqZn9^ClxZhe)jEk9V%}2+ z-OK&DcmK#t;m68^c@N})V(aH=s*H)_*GO86Kx-AvTw2=<kg0&T_#h(P zhuGFAnYllC53hUd?$HA98YYhTbq%UcFa3OoX_pR*3c$?JCPZ02=m>CI{n&iD z%Tv4hsm4t*?nqI?3Fo;YL2A$&2b{ZEeZf{|oQYD!14zx#3g&(GZ4yg3^p!MUNB8L! z!#K3*?1e-iue^$}SIC$gB`6b?VfGo&%2sssZAacHJ@$E$Nq(LN3s7IN0d^Fo6o=)3 zIE`=+kf}^9BA7BP4=)rU5Q=RJEjFotaPMJa>zq3zWz|sTBi=I3F}9|hAUvyyUV(7x zb7K|#8<;D@)E%RH+1&+Gc#16=>$Fl}l}2G0%Z*306o9Y^0fCyC5q6DjPZE8S+wO|H ztIpESEZbxxGVP{`LxSRW*Bunn$5&22ZSSVYWxlad{-px)Yc;nDSE7n`nhYbEP!{UM zDa8@dR3n*yLH!zV{9LhXTeP9-=;qCSY0AH`3HLs4h&tx2iPt_h&2@1_;^uvkG&4y4ZSK6j zlt8||O2}1$`+capzt&`KEL`r9oNLC0;cYt;y2W{;1uFX#cqk|2GCTOcpxmv0fpRBR z>_!|kVEJX>PLFWwjxCvIumP4(Ur6tR$qaI(~XrQWW=FBV=!1_EN8db(d6-aTtBQ4FBLpQ&qjg^@%#@Y z+x}Syn!-K44QH%Gv8byE2T_Q%t03TJ8004mf;cXS&#-lA-jV_-VB1$Z-vvq8;u0B* z#vi4M#{G`@Iv~*rVFMmWIlv(fjW;j9i(JN!F?1wb1;Tj2?gvVbm?17&&wzD`+qCJ~ z=(=Y$(Aa@J$fFopt@FZ78sV+WWRm`|;d}!YRAn)iuLiT7`=Z1OVR-djQKcCFUG|SNb})8NDk-1YvZ6ln{{GF85Ub2& zF}bTiTii0K95l^GlK@fWW&wSsiaaJ=u*d-F<90&H8ZH$u!sU}ItDaKAd7Usc`IZFG z#G-q=R9}>Sk!aN2tiV+KI-&Kp`(9;*@=qCN0^Mw>IxZfYKXZ4Jc0t#*c_PRXW)J+L zCt&_UY;Q~0$XI5AJJA#uNsr7Cxfwv-xuoyNEalQ5<~_1`_v)W6R&QQ2y^MUAO!R?E z4_#p|C0H>pmdx(&|M@)5!AMV_Y+3%r_9J49cgztzE&tM$cNmMB zCMuClF#|CZDGJB|4EklJe88O&E#W?1Nve*>U-Z?cFRo8bBq8%H1v;us4$V)+uZ&dZ z_p{caktz;4r90yzbJkX^7B4zvev*ELW6`pxi61(|{ zJjRcd$=z1FID1zKiH3O@eao`2Q;M7GRypeD8}zB7z6Z8L0|#l$>xY<4F%2Z9q5cZ4 zmXkA~*ybbd%qfI9@uLZ^j0BECV=8pn0zM`Iu{o()M~e)&tbcs<(kcG|78Aao{SKbn z*qGK9zUdSg;&^${B>1!nnwdcvc3js{8Nyi{m}b3DK(n_PyUnDS_%&!-)>tfN+w|^6 zH~@hRNgQ{Rc=&Q}d(G`^s5i)%)VpGA!qKF?g?5R^!q#3H?0rQUV|Ps!HOKR&JBMkE z>!2nT=cbh^ShO(WYxnN4-t`f&<( zj$e~mS;w_>J!yeqYBPRe)|yAU>xZUuBM^&;X|t8Ny+WNrnU9;!Ej0bP(#4{vU68M8 z#}%ggWCm7f@hPxmZ-KOPYRwL)ZaDYz2t68_aMLY+o5Q#tMPnQ7VWYo(nk3C zDRtO-W{GEIDt$x#Nmh{9+Dvt!=lw%Uq39YM)|g~mH>PELesBY;W{bYn#M{#&RM4&qNE4_IGM>EudG1D)aOhFv38D01W8?aq z8g`Rj0)`ZRpa{I7Bay>>TJ>8a%HnvD$vK*icTe+>7W9 zVcK2UG*qcA(8#u3h`p*na(uPeL4b7?A}SfMcq(rM)BBc+91_-e`wIGb1-rXw6VIT} z;J&qfD3&U!L>!NF21T!2GnWE_PB9tj5<%KyE5El_EjN~!8~oL8NVSlKs%%XM(AjCS z4v!>pLRq_zs0!_=T$ABhRNzEKPC`N$)L`-J%_%QzQ8B0___QH)(8#^*_*woN)$?*A zv(^>BV%>+F_f(5zq%zu(n6AxLh6ofHYKV(}ridoj+e_)5JU4=g+kOAqAY(i8c{vTT zUx@9`gk;n;H1xcKH7Ip%N!hLY9i-6}YO*9zXe-+9MZaA|Vj7x8k&p74ZK z$lYZ{vL9`@kWZeK6csi&Uj1_GFl%pv03l`bw)fnG_PRfol9ZN3GoA&6Zq$}DHcaM! z7gvP|)*rhQr@xU9|GbvkSZAwAbnfF=r>4)BKPY%hHV2_ryFER2@OyQxGxhh-y-jRY zk#YiurD=pBl2GW>vLz)%``??S zm-NK}^cC(a(g?9d=>mmUkzMo44q|o_reqc}=(n$CxKqO)d@DkS90ng6j+nv&axKse zd_a-xFheBO9|wuRc}Lj~=A`x+S3QZ&6m}@l4WXLgw>7_4&>~l?%|Q>OkL4&rS_!28 zZMSmVR|7-!zj_ki%Us-7cF^Dvyvz{%`XuJ17-Q>GymGS&hcX#>#FYcUT z4dfCEZor{8v)G2Ye|W35GA%8w7{rE5nYkaP{qc<)$)|1$qX!)b^;T^AjlQZrz3bs5 zsWvQ-OR^Po@MtSnXZbm56Zjaw`Y4+Mw{^q%Dk}o^)Xs)C! zd?CU&Ad*Yt>EfIMK}_|l_8kG7s@$tc>hX^u1pefD)%Dz*TZX~uOm8V`fA%&s+NLOrA9Txqo| z#;$w%@7fB9MXpRUu2$&X`@dl4{7>KT*L)UYE(0y{odBi66Hixih*?}D`E2_^)!kNxb751J79>C_^0FU||MbIFrC3;9jZPLo`EPMlQ(xN2fhT<7occWMM;OSTAaFi!^?op zjxTv^EaG=w#Int%zPfNHcv2~N@*b1@2wQaOm6R6ymtUBaQt7$^?+pH&4smeX-Ban; zQlZqoqpPdyjsR!9+d|AfABYoBNlT6L?V6w2XENR5O#PzqB4|VQ=)LvGM&$stxc~E7 z97v@cS$?Z1zVFA4H2r;Tw69FkV5ERVXVtIu#<`S;#Zy`luLZbKQ=r^1+-yH^;a;m| zkrt=*Kuf@>Dun>LSWHrTdFRdMa)dIy*s47XA%i;lM$G1J0?`=h)NV!-%{Zn!k(Bj= z3%kJ_?)a#@8h&$q-?=4MIkQW0Su0&2+74c_8A>;Mtz%D@v zw$-1bddT-VQ0*PzKk#e*>bK&*lvKNLgmkZ+aQKe^!@q8{f8z)IyGy};`*+`by*%3z z!~>#7tvs_GG_e}liW76VJqux@#+@NgS)(3+wAecBDfuz+>2e0LK5prM$>B=Ag_*2069#(WPE3=ZCC8#w>-; znNUlc!JS^Gqz|FV0SUyNcRV*h<`QR{gGb)tEVdKUKO#b}v?7q2&i|x0TI#)Th-EL7 zIU`-XN`T2Yc$5`do9t-BtFxEv_*raQyJSq;3l3udJY^E7&FBK)(8FS^RNKVY%NgDq zCdVKf`D>mRF78u=jWlFYi0>MEehbq$*tEF6N{cXDpA0-ap`NLuZ!%#~xN9l|)%gC4 z!fAwC00>4+!tzdoK5sXj66N~M?XConi}{2D(#M$Pd_;O=PJF--%xQ-pXmDextE>C9 zXO{Gf|5b%`0l;C3>EpAh=>f5vb{FmDDr%Hd%b(h(A+$l;JW61q%m>Dz^KIh_`q`#Z z-mO9b&u0Y7vEb~D*qk#5TZ8~CNPzIhKk!7qQ75SDo71VZ?{F(dVYdmsWzoc3`19-E zbTP(?Sa3{KSieo=N|EZz42l-_>s0*nKm145GF{!pt#6x;{r-QkaBgME}9+-nI(ADE3EA58S7W`W{|yzo}W-$(PLg%br~8#6)Eh4a11+-!13 zTrZ1C_@hFjQXk?$rQl)IHe;GjRAom^$gMTa@z6w-i!D@V#$eI?&;y;$N~B>dJ3+^a z!x8{#vD~)%xxP*@gm{DTJ6lRY%nF%MfdjTJTkd36%e3?XEtT{1iIUK?l9-TjusVy$ zmsjLHchb@4>!Xyb6rmc$!C|=T*>UNVc}8m&@y==E#T*6yWlY9t!~RIh9j)C6c5>t$$;=z%GOx(n>A#rPhJjvVFMB5enPSI&^%Ogwo!=liJIf2NzlIa9fI1PJpHDh8I~l*QvWY?31R^g{ zvM8^AKRqeFf4q;vF08K7vY;UpOlUGYa5zu8muiT~)iXb=Uflx;3?CZiya8LFAr)o% z$*yQ%xVi|6TG|K(3~*2LC05IQ%%!0!jeFhkB2fXPVdW>3AdOTy^(49kZEr63q;{L4 z8;GW?_I_oivVb5_GP$vzAb6;!C}grlcho1xAuMzVKJx-C46bq$y; z>ghNyUzBMEtJDC$N_B`Lb{|~&^Fn*id67MyndH#?->wz^weu|Twb-ry6ioj4WdEO_ z4t{=ltjvR?qjZ_xi^%H-cVR2_4)T?BaLe(q*H!yse&#~8{m~@vEI{S-=T&fqCMi~n z^^T&w)3+$bSfK^UgP5bHAZD|-b+X#Gflb*u2?WOKp_|NQlBY%Z3@vWHA%IWR8IFC@ zn@?{rk|zbT1(ZkB+C6Dfxtgzg$7RN2*dUsT&~F^L0Gw$nW|mh<_(8wjcz5^`0WNv3 zZ~Iv+mxP1_RSk&M3~O!psbeXh%ur|icIJG!cWhz)&ggV0s8FvkKfexw(F4jl%RL_O z+r?2yxS~i>=k}KeK8JHX0TOJhb-4D5dPX)S3ahw2#=&!C-zovbAas3eW#v-A?Qf^m zP!oHql+83dX-x=LK>@tv0pd02#oXrV6|MQU?)^RNR|P&V88Vew5`fxK&#RiJ0-^A3 zWZlc9aq{|C$9b}!Ji@=E{%(1IXH~p#;wp-PGX}MOfSE)s`!Ak;jQ+;EKt8iuuRg{e z&jJVra>T~qqRnSX2l@%;=`*D%YthXJ>NYL=(^>PJBXj?su@GoP6gJ_lbLC`pmv z+~I?JaKF``s!)JnrbY9mwlc_B>F6Hk^`Fmq_79l^n0z4Xwz_dC09N}d8_{goDN7>J zu z*7xw3_|_A$zgW0*-!GeYeqdiGzcx9E3|=5#;9PPOY&SFo~P;-g0o`cp&T_3Q1=0VX)Hz?I~X@0F&;2 z2(9M!sd$HSQxAFl`i~Srzv`+@zVBsrCsp0c06T_y%65bBZ>2_VMyn}=snrNk27VWn z?e7XH|2kE>Z8=!cpQ_<*jby8D?#t;8VR?1DSDn|GpC85&?f4{JnAcOO0rZS`=q-Bc+}*N#`CC zJXxhxsHdEu`(|#RtRdaIj|j$WylnIFBUlU0rAl|ZOM0ezbtC}cDm`X z7bN2`H9x62y-U$nQ=d7GI6`H#fP<~jNmDi1Wo~p%ts@*e-!T8n-FqK1r;0S2+QH2D z)nv6+s8PAJHe^ud$&VCh+(JusE}_ReO)+G_|LcZkA8RatB76v2bKz5&c$-goY+nw zXT8QW8gv&E_x6BOu|~B){U{ox|B&r351%+?IyuZOx9uK`d<_RQ_@8iA#TkEALb9z}K3I?gG`JB>;F0yl52X!*YxEk>%htwvRl1FB>mUoSz4W z0c)sgO5@AmNL+c^UGAOSdbP~-6l%;2pqyJpm7YC*{5qE{oU~o21%88-z#HdF2a>R#=h&YzpPCM&|4*kTu;t~R`mIMpOZ78m_vvzbtdS!U!YAJ=F3gCbtw5-v!V7cO% z7W|DFfj~eLHMhODBwrR8bGq=fdXe$WJ?abESON+8OK5|PrQ~2%k50Hj8f;A%6HU&j z)q8Lh#9ZCHmP=^?kQsP}fpSwkMWVii`4+}+hGLn?`*!E5=hTJKUG<}>*&23Z{R|=W zC})1}HRw(x%?Wa;ZLRkib!ClV2;Y@w$CqoW&uUT~0n7jaU5|(18WDkRCtYp|ah!21 zxU*v=75Lja$#ReSSeBd1M5pNbK?9SPKt^zLg%sV?9@su6z;ANax8{CJ#xs?dvaC7+ zTXw11mVpu2LG*>)%LMG_f4k%9rEVB&apkSJ=8SB=39x~N*>2(_{TbFJM*@3expN`Q zD=QqlP2!%bi6D%sf*)fTBIci>9{?&Zt$?Ua42fd^Z?UvZQfR$Zf zAfgAc4<5oW{(HkKw#e)vH84-KY)_>|Z8aWICv7$oDS>R85)tiR6ZPdREPvN&^#-Z< z(`9&e%iAqRO>`pK8a&OfRp~6+72N`dWmP1erg1>5YxSt zlc%~iu$Qi`N?;iwQV)LI1CQons|J0i>@oE8g{XkOc9T6;HkNER^Pdg;&P&c;8q0HF8=$ zhZG%E?T1M^x#2-+9u~HWus62})-5&ZT`sPL^aCu-r2XMjKM0Uy6>`Qhg9#Y4SJ%0l zc^C~=zko&Ii{Y9}4Mut_z8Dyt4btH#XsCcDp0n_r>YmR2N>}ESk=_(1aCLhkDE8`i zPG5%TV{;$BD-(inifJtRjmNf_iI7pROEKCFbHno-ltso^_GwGI8*9MoLCJUTo6Slv zkR6@eOo3tiKXZTt28$9Rrzibnccy}aXu@6A`OG9oi#!`WEM|jt)NfOZFaw}IJbESR zJ?WGoSa+0KmGau91JC55GjDjP02vPS%%?&Tu<2JPw=@fte^Tn2`}){RO51M&Jri^# zs`#p(5XxoJW}MYKS~=C9Tl0%I&Q)dWYiUpyxLp7|E}cNcA?(Jv6U48C1Nue152;6B zr+uF-sv_O^6I}22mI`4kX&hDyFG@}MUqAVT=&yIT6f8K7Eix@W3#0p(3&h_a8f>m_ zV!&~n0&4rLKLV?b(n@3@L?rw1j4p;!R7H0*H$d8WKvE-HQK36UB0F8!2LzV&JVb3I zHb8m}+@o)<3)fQB2K&~!jr0|M0SJcAdVxV@YI3x<3$B2*?8OA9A}5Y6u_yrTb^GXH ztEb{{+}{T`C57Jf=23H>)Ncx$0wVbiPwXQTB-<#g!XZUY8p3QiE(qN?d82+gv9{-h#r^=_LCXWBMhx{`?)4O8bZ^{Zn9?CnQ zPYV}(Kt%izAXx1c0!EI&*{$#;F?T6tE`qqk0<0MPxI|?RL{Rj0aJAUFW!=c@Ghzpw zIRaGQg_>g=jrld)ERiqtX!V{S{=Y}npy@E&BUjLEeTPpWMZBEF1!xd2kLSP7ApR)s z9x~nRZaNGm3ZBdcRRyU=w!xihnRcP?NyYN;=)8Ga|5mbq6ULsLw;rLwLpf9JBivGOEy{nekZ!*IBpYbuNW8QTSX>UO%o2J#E_iJa*j9$LHo>S70VT`_fy zjaNi^rk_#DYzA*aS#7NCMyo=d*0Yo5z_v1T5;@!-hlTX|+RDn=fX5^dJ=5%^SXe)YH$u`TX313TNt)^CrRW;Gdzh4ej5qZ^^X{INIH< zfl3{{ZCK@|6PGX#^)m1OYb`AbtuV4~(Y`~*tIJ!LuGaZaPwUyt7r3_WQZ&HHcL z4SkAdq1Af{t}io_)YaY|O zvwaDc=Gv_H7w7F%Aw*Gch~WIuv?;#~5ClK~)UODLL%mc0gO9|YfwIY^6K29Xhds=Y zWAS=E2Xm!IU_M)q`v=@uw{`E&ifRJ7=g$Yr-8)(lP9TmU#L95cl3u zP44Tq@UdY9*Rp^#QEAeZ-ch9Y-UCYSNC`b4Dj?E3geEOO=p8~+0g)~cLJdKxgc9i; zzF+p(dz^jl_uX^#-p_IWTVqJ#8u-3XnR7mKR>T#K8#jM7R7@xtXL7#Bk>N8{`GHpHB0tXne-CbK6k%`R^gw?Nzyp)W+TKWOt|3pXv z+8Rkcrfg(nAi#&p}fgTe!mAcCawZ+8`AdUAZclV<_$`UKg zKR8drs6gILKd*56n-&h#aZ6$6YlU{wE$O}U!6y!U$8V_f50js|@ABY{TV0f@9Ce!`=xy`T7DJDW+{SJ$Y-XP*sz04EyCHUls68I&|J zlRHFg%lbA74FH_EQG%5Pu=E=Ipl>4o9M0yo@ZM$b$I`uvJAh|`i15a3SX?0)cL$l> zsC8oL7I$tuw`ygw-$Mv2GHTGgd$jqrxr;{kQ8B&i7c?BzEC%nK>g8e3A3P8Dm3vJW z?90p;IzQkh1{4@>t71B_^q10JwVbjQ43q^sM%{-^yc1sd?BWB~3_u5|@tFVfeb15( zWnDGIU^oJnp7X%Nv_=eIzi^QZEc{ndy^VuN^p&Z;5))-L{#G3mv~W4awpRu#fI(g{p~t4Jy}ezyhsfg0Y|Ss|r7bQCtkP4u=p;&a3v>f4 zv1nE6={$P-v)@FGV~qLngJRf0cALoV5tBnh*tcHnaf8f)QHmuWv;-vf#SHlyW414M zx4nD3DMib+V+ee&bDuZc?=0P$mCyE(J2se~Z#!wv`ts7lV`#hHZ9ai1@i9z6`KX=* zPcu+IlJvyGe{OW2+wKJQWWx7-JbrS-?xPe7q`vsOm)z>mj~8jVp3z1@4S8!F+zZJ2 z0ML&2AWTu$?B9yPSDICYr&MUYcJ&u|KI)eJA_w$vR3o=CyiGSz0=f{xZdeUT6i~>w zn+N1@IFe>TxTeHTZ+EtCKgcUPhx_rkZnXq){KwxYNJ zVZpHRCB5SmKEU*Q;E*Sna(ldAvDG3|!nY$LHJ;pH{f0^QcV=>_oF@lYZZkS8aqnn) zr!-Sk+u4P)uCB1X`yW+rzxu}iH$NAkD*bU=Q~%-e{~!(jZ$9z|O46_XZF_F#IgL>F zb6KmS0YNI#^aCJj#HJo22=lT5v5=|4uANKG0emX}c$Es(eX?=uP-YxT%K~mv;(-8` z1k-LblJk^ttlaPYWPO>m%<(sQja<2vvi@i@tGNmOH*VWFkA0oQtE|qe2eia_b`QZx z&&XO6)5)V_jUtLhcOfZBu0R-Oz8J*9o#RC944(3;t2Q6L=!-kmF(}UzQksJM-U{F> zpd4{;?kq@z9iW{BQ+=W_1pd}n?V=bRIK(XkPncn1sC@{C5~k#|`B=7;B|bvHwFnf| zGMvKpq^PQYSY75LfSQGFOZf0?Sr~|GVZ_P?W*0A@q-AoVo@_W(Q_!*J00>}}@B^VO9?sWf_9UAE$GE4f6;#7fn)=@A)5kcGiTYPdB#4B<<|f&U3EP$L9P=+NVdCF7QTV*krP=zU0nd%298GYb^sxkH#vjNSl`$FG3W=4&9rA4Cw4DX)(a zNCgJw#OI#_(1t;C4bJVd;@gT9rWuLDu6tUN2HldWgf$$Z|e#)Scw=JF*y{gLrtYh z0_*=kgAXXX@shMK;LgSWi$&m9i^Y@w2*~SCS1dhqlhLe%ia2)C$^r0gzAuoY!maO7 zClExHOvNNMJ#RAS(o^lyv0*m!xEr%ez!@T6AK&G$y_I*Ug;dkh>7l#t=TArkFN@sL z4KHx^!}0Azw-guM1x5WBce97+#xN>>=)M?F6mnyje0J#)2^Uo=0Oqi2Ymwtoi*Uh@ zSZE+UjTMD^re@p2Ij&k=8wlTZNC|M6#h9Q(L#8k1&-#F(0apQ_w#7iv{ik=G;3_I4 z;MGP~E5+SQ=cE|B0kS<}$d!?loOXLZ>cLL>M9AYiyb%a4hZev>z5&!78y1<~E?aH- z%4t`K*Bjx>{>9yeQhh6ww3q__TB77LlRmEvpzwC5VB@g>sz(No@}QtieQFX7YaB9y zSiJ0<5Bp%7^)G=x>jv00l$*x;Z!-5Qf|=X`6e%F-FLUd=ego)d6|G^av8)C4D*yrQ zif6r-HZh!NGwa>GmXX)lTbVM4oyE=Vok%aZR#$62x>8cYIoNDLtKLyPfapuXRjqJ| zcPh#OgxyW~%QeCS;L$WRFCjAn7BG!3ZX6ZhSjGM&4g+`FAG}~Oz01K@4{EnULFvRh z@9W(TlW~k1r8Z8j_Y;#&u-PQD<5q%l_c}GLIBjez%@wjkBsxCgPUGE{MO12+fkSXS zR8e+W95+numI(B;3V_Nf>CcN%+dZef4CTX}D{ze;(8)D@yzf9btG?)3U0+|XFhWK; zKbM(Hl=)QBGyH^mlt*RFpN`DSBf^q6_G ze!%)apb`AS8HF`?gJe*`vKFvc&>Q< zE~tmnX@%i6(PoP&5utrV?iI^t&|BDNf)_U#o^S$FXEZpcDpv*80d{H`j}MEbq9=D) z?2gJMB0*km42b>)9}qWOVV;ck#@)Ct5yZi+@gah;zyPNd9? zA7_O&G&BI|pVDq})v74Wm(JPMwOZMxYu0~-sbS}siFo-kr(FircAJXv!(N^A23kU3 z0Kf9AdcSQwLHnwI+!15Sorq24?vsT^;o7~n5XLn}$ESTF`5tVWUcJ^IGZC8|WdW;< z09#Op=DPyD#bBkYnGLomNGZKsQYI|fYR}2ke@*LVp&zJC*SD!Yo4x{$UW)N32y}#R zzQ%hXlE@wiC==Iupj*rmUrtb_ZK;3HAD5vU7Q3Q9WH@-=+aG8us+L5JfZv4msDJy> z-!bgKC1suy1QnC_NwtKGEm{d$kM68JY;{EMDn}yLv+t=o7YP!#cN|xou zY=m2S;pqOY`W*~fdSN=lpRSu>Xwm!IPs#vJSL>FV4cG|N3?3ZhD^PcDhDQJXZkX3v7+>V8ZaC6A(~jVVqhDT#c&_ust?V4waZuT@ZuD z07}9QXtQ(GaEY-DYXaL!{-n*V_A3 zAs^`xBia^49s79D)Ryp)DL?;3R3iZVOIB*Ls(hM$E=YM~t22o+_ZNxPf4;QhL9b+2 zMq?Vh6onex!zU%IHk&5?1B5ZNj%OI+wMva&>{G2K9!Y$WOuqRCUh|id(?feLUxmu) zd7u7Qtmk(s>#tPHcQj{--I!&_I z5Fo5}G=GEadgJaKO12_RM)^55pkk~3a-RhV+_eA~$lMvj5T%8%OZJYu!DudV5eD>o z`?F|i`E>S7231?{uXO zH-wHWf-mChXFveoz|zC_2`TSV1#(;gBVl0NC&Yrz?oYIb*1w)F-7zQ9EcX1@XIJ@+tLG@Ft<9b2`edDes1lfMwe88f8Q@- zT3BQgD23k(?Bcz>ee5rrBFrT;PLwc~j5nOtWiz1~y@Sk_QeO~OFHA)1#OYk`r#PXK~;RVP6N&dl(+vVj&J5C^q?p@3%wS!hH zXgy8K@K_Ui0DQ0#YI^OY@r!lnbpdcPNh##sY)QBB22jM^fZ1g*OmN%Lh6@5II5$36 zWkY*R60vDa*XnvSaMLQ+ebzY3uR$`6y4gW*Db{nRalUp~3PK;3n7xWz@>6Zv=?=yT zKC(3goL(}xxL1#7O62j8(FZ$rfm6jbdrd?{jh|RbHxUHXUf#gpHAo`>tCp<&Vv@t4 zfL@yk_thBn7@+5wh#Q*s**zt#TAdazmR>b6$D$V%#fEHJs;xD8#dAZ3AESZvT3O`+ z5#;axaTnF7kdKR3>%UWIw$(Gnw$SoD;?#NSCy%wn$NbAzbH@aeztdhBB_H9WJ~7#8S@-P4b~+&ny6zy|A|!KT9m~@SO~o zN1k&^^{~ZeCVr{>d6a3O8p6~$_V8OxXU7xLYzg4$aoNT}-A(WD0wH?5Kezl>m2dmIM2qV?|iIPQB+{J zcoOigH{wjyn^hWlWW(b=c!N^FA_Q8LI>ytrejHk~o~P$|^4a7{ybV(S;1jJYgI}W{ z+{lxJD5fP%+3nom6On?E1^r8~+C?0g>#vUFNXObDT7f5a0ufI!kz z-B8B`-#s-GU@<{`Xyr#r!gjsa&}SA1V=C}+BbkUar%^wkF~~B;?=x@1CV@!q+Qb-B zlc^`XLkCC66(x`&6?wO}MtF37S%9FBm!53_cHV?|6LSRzJu7*n6^6!v*qJrs zS?4=^jMeoyfHy`J;UGJo@b_YOnsg=q#JzhT`L7sz{d||q?X}P~4Sg?F+rc^@pRmCfQ-{~tq_ z-2<1r;v&RkmcCT-rUP9gZ_&->{#U2lyAmkZYE&PyBK%`T*ds5l6YcItl*|uEh(j+D zy_%JRRNjQ6tj-PZTWx32<$}N$cz-P_lIpQ#`u_Zikb=MqK_*9VP$Z+O#{d$+ue&64 zX8R}Rd-=ZBB#;o7^34w2WC9=Bi5die)+2z30B(Z6TL$Sih~bBFXCtB?^bJY2Y+0Vk^tsq_D$+y! zaLtYt`?Yt-IdJy!7ndQBYyoyUHV_AYMMpx>4C(~zI`1py`(z03_z+hfPN$5$*{us> zb&PW@4j)ny2#t7dm) z?fA*doq(F(D66mN1LCAZLx}a?{aDx`_CNH?sx7O-z?JN3cJV#QKQJmkNPOipXFyi? zhsW?IAN4)}{;R@eRYf`XeF{udI`&ZS6Y=Izzu^<{6mk@4-*i}j18&phMDRwHPqK;cEk*;Oj7ZN&_KA$z zsrc`xW&YW(>CT@3hNXre&JNIy0a4A}%)lC6Z#^sGndu#|mRyJZ`w9R!k-3Jyhx0hr zvFw4+iybKMso7|1;C#}-E`E)A)YyQ(fP9WdnM$i-iMApOkie7@&;nnHmocqpES2%h z;F1=q=TtCSy(`d4C`Yw&C`QQfbO$gfloLHBThGiUU zVqbeRJr#R{OjqO`*Wox)2MZOYcA&5a@Orhut;%8rhuIRpfxCQgUdU&EW73KpNI~6Z zJ-xi}E;}K-1uhpy8k{H1G6$r|wtmK) zFP^2m&paMi0DTbP*~*PgW~1nLZEmI#+QC_YE?vVz)N{cZ3qR7=zg@GYs5+`ad6`uD ztvmNqx_1x0#e2OwgR6}rD_-u3oL%VtTE5A*&8oKenp=BZVS>C`sei-$uhKhD>F7{T zPb8d|cf^RE1=+UB#$rAdZo@iD<36dao6+8utIHeGyvH;bz`-8if)?cKk*m;tJJqBb zCBG?@2^v~~A8Ds0ebJY3vRUD_vK~vkBz++QUA;`Ox(9AVA7yl`^bg~48?IP%{V9>W zJ8kaD_U|VTVh6vdxX%}w_O z*Rf`++F#esZy#SR1@fQ7R70$^FR@<6nM;l@xM!Em4gzHk!V*Pd#Ze zkZa!voNu_B-P4~mM!Nh+31DeTdj&r4(mAv{Msp=F3KM z%$L50YvK(omI*z423UIbR3Sb52qzbyySR^(^cE^%{i%yxl7i%2O zv4O~C028A6H9GQmCO`;-bkhTGpRK)uusb}e0uCKd`bvpsm_YtaWx!=rqmO25tSOHr zR|G=;R(nrqi&+cMAV2(ORnDabwlZh3&p6UN`rf=)mAxEsno zLn)A+s$Z>PEDkdrV*Rj-fot<57*>}cmQH{ycxylrD= z5DioK1Q^)vS1*S66sG{(ORUojDz{8xPtoT*1O%|0jb4X3SyKBrRY7s@EiGMK<>`4M z_0y9&sym6@K8DiDoo6irm&K@q1f0&u`~z-h!pXD!?|EZ?3*`>EhSLscPfi-8IjTN8 zf3kcQKW!ce9>hvgKkv9|xwjNNJhUZc*qn+)A z5;#^B$$K4Gf({SS`h{+;M1Y7$tIv%le}KQu7YCNAGt@X{DOhXa5D=iut>LcEjc+%& zd>@4FZ`TfObbq>;)u;T_;n+Wksgh~ib<}7dbKLuYrq29sq3R=5>5!=69@o6L90 zLV?D4k0|MYV7hp4G1on|srwIkTE@8vSSq+5%Wt_oTmuX}Y=*q*9H2>YKqadn7jgV3 zIrZu94*vmi3@?GJ?^wm`hay~+>du~Ys;ixg-t+CyE$?NFUb#gNG?$Rqmw{FUYLx6(78BqGg090H)UMSCkFYRn1=8JuuF zEmnVRG`|B!A>nD^A}#wwOuXTIe1iY+apbc&+f%BNRAOS|b#6+IbKx1(v2I5XraG2r`+^d-x`96& z0aHkvwR(2aiCC6A*hgm;@RojSE0{DNm+27+^R^@}R3>_p?Eb#7-+S{AhUulpSkF(& zpw!5r*%(r++^#PT=Y|jkaPDjSy+^(T;u#Xin#J_%;^X8Q)IWO?;qn4CL{uDWx-97M zWSwpc;&>z8?|Ey3)n?E1!4hIWv0u2~KtK)xxiH9pQPY5@L-VyV^Y=HM4vp5|@6$^y z1l!|1oz1#O|AypPEq+;WEfW^V-z+~kfdMIS&l{vyEVu{(o?6jPcorw;N>^2_5f*)5G|;y&w(daZ8?Ec3P{C61lxhg&KX*K@62PKu94&Dqneb1zm30Fj4^~$ShrhUn{E+?n z*HnktWZZ^)+%_vQUC@)5jN%NQ?(r7VeYgIh>U3T6pO`sTda{xfPg|KQ<6ySL0J8w$#ih_8I zxZc9*ejSqY=aVu*4eIP;*^Qf}ho%N5@m`&vC%rwmQx#?c_P7GInh#1zC?&M3Zh%9V zagz%;F2ySKn_wQLsiOTR9BoCnudG@+-A-M1fhEiDIHg#Kx7hPzxmG6+Qb#k}SgMuzF7A<-03~^UuO&!S^0=M`xYy17$3Vu{$9bAvog!`(?&t_*2e9SS z#99WOQXC_=E~$C@;-F*&jib}&$-6x-V2`FDGEh)5V7!=j+Q_coB4^hdi1?NZJ4X}( zK`(6^)uBo+FCqH8)U%}qj!51a5W?!ct)MOKLBHA}z|Tp&eWm;PEg&bZ63GeCM)zU& zF8qY8*0F0!-9OH&gSqU+YCil4QMIqsncYZ10nPu`{>vjI)%|#x=v+pPDEEWC13arknq0(E&o}a?a5y%;~$*!sf{_)YMC^iD&!&Gm)^iGePy1% zeTFTX$H#K4*$=K&I-<>Ufv-b2+`BVkd#JsWr5v#W=``<3lEGtGxlRnptPzc$qIMld zp4{{q;R(61#(ce5)dK|A;VHyggygCVew44zUWN>conycq8 zTE07v#0Ppf;PjPue}2S{+hhERv$OkP{7tz#X92)5 zq?98Q&kb)ZP6oKc52W9LygG!P|Ey}dc%uAJ%Lo*9u;P?ujN!Lxbsj_NJ7|`pY7>#) zKF39NwtY^1#%tDYj!QW3Uf+nPkysBsI-DExFZIvp#GQ)9OE^x&<2X<6gNv~WG#W9Q zKr1U%EK*#|SZeUYFkH7v>E;+-Kzjy1T4rNqpP$ogn7?mwe4MZjf$W~WD_)bCTk~ER zR|09_5NhO>SNrL|?C!wf^816-z~6d+DGp1iV9@aAn#euY9n6G^buO>oPRrzT7|Pp> zve=Z7n;?hgKHGilvOWk^uJ6ikQ7_hSX~?&VN$8E|TIj7+q(W>qLB*fbn& zn9kpF>}<g5htTaha^6TFy4zpIaG-=k{!4 zPv&;bb=2GL(W|#zHD4Vp*JxQ=M7eB!oTFqjAF6q_a6fcuWsDm>4&4!C-FUjV&)>P3Dyb*h zB$27Pb`#lvI>(fuI2~DjTC85tC{cPmySa={-d+}1GeBBuDv4#>{P_)m{Gt#MabUHa z*Jr>ec2TLO;O6$qq`>ibTNhP3M}1*AA;Q5otUn_%rGj@-r~n7Gp0tfRs&gujV^zO5 ziCWjTwz6UlyfVk#46rUrtD%QFf|2>UMvizPAt+X>v~FCux|j=p_b(LSEfg)4@NDvs z)Mw8w??A*_1ifb-V2`{#91x+&7rPQTP1D0Q42qw*&iAlS2~|?Hw9NM&d*=iyG@5uFZs&Qj1{Y_@~s=aF{ z)JWsi4!IxAKY!yQmeBkvJ2v)~JzB41b&AnLCGE&5c!fdr-Fe8QacN)T@QBmop2-=O zUst;S&x+rFmcf7i*S(VqTc;b4qy7-ee>-vc9fk2Pee9#pgTHRvc;G+T$o%QkCxn5fpg4t`4g#gWSOiYs_CZ!!~a%sV+vQ zCV(vGuN(XHZBtXmnmZ-taZRTQ=ip0#=Fs<@;QQ7#wXKvTb&z3u?bHAuuxwNt~2o{IQ0J5+5unEMyhGV z*7CWozHrbLBk5x!j6GmsjjUq7qd1S40Jv3V4ohcC7e!bTC5z-31PGFK|If8c)SxSot>Mh zYN4zz+2{5{T*jkB%A)ypS9}x&m$7s%i^KoxLHb{Ut`F}2wUbPzsO&obm0e6&Ao>d_ zQenefo^U+Ys$4JTPWE@{k#y6xmZ_jZy1N2(&7FU?zhd zrFiM=9@A;&-9^DC9*c0e_>Ug^^eRP9ZfGEB9H+h zQ=&XTB1b7+2CFJ<#g9eBUzMdyr|;xAcWw8PqG7YBG5lq%O1L@L=iz$RUobwZ*2nLr z*nABhWU-<)$dzp=*G|Ks>q(bH>pcXSP$6ZJ!I3BAs-+5lV=A@o!wjygcf{^j>cw{@ z#;wyg=p!BZ5NmX}Eju&cG%*i-GFmYXFpb7Hm6stNXGjfvo?6g1LpdKKx!uq-z2bqz zTD3Y}l<2(pTWqP!_Ud7a!{cTvKRE}7%gEtBu`bEN-5dKKNOWAew6mUs^#_pQNCQAK zc`wXAOfb#I9b1p_;`@ckIdUWf?6og>ZjH`}u{Z84^REr1xl;0YDr|RUyd6;zXHDRm zbkWW~0HWA8Kp!q27wv7)4gd6$#t$VY#%5e-pl=4-gq|KTo&d63R(_U}r$4n2w;||# zlv>0udUY*flJ7IDQs=&Y5+QrRm23jhsXP2R=(p^&ogYMHyWDn`k2fe;8Gj+3p4ODM zN66Rpcv8K6V%B?A?!O&de}4@5$0ycVrtf6D;o<)cDC@V&Y$NV0NW4ufowz={VqQX% zJin1l3cr(lU3Ypgo|@ZZfW&Kar?~f$YDUvHblPL5;`708txdmMh_h)b;YW@|8(9Zf z?Z&EVCYv{(1VyA5E?I$+xZaiUREBIVKcvGF0b-L~HhS9cP(Bb8)Entfc1_Gtn#Y(r zIhC@7+J1Bz6O^A_x;wlu;F$O@`XrAE*G!7uo~VbMYh6rMM~*BbSqvLqL;{-<0|VZI z+z`X={Mi<>$j6xX4iSl<=%~;bS-KwAA@_)?qQk{!DZ$i_9h*xW*HZQ84#FEyo?2&t z8U1Zp+2DNMT;;PAf}V3#ais&sJc_E754AkBv)|)P;Q9a@UPrLETq|K>bTKI&|F~Qtt!J(MViVWOBISb%oZ1 zbM)1Ax_ypOfMAvdqodYT^{%Y40RB)F)3e0)*pP>~79cVC8Zxnw#bGG_$mA-98dPMt z-%TO>h{I!y7dtd(O*tc;gNd&&Azoo#QDL07-~pdThGQ?IW>D2&e*B5=rEtEj0-6Hx z*}@Ix+$-{c`;-a|Pac#5u7MXxMm~7Qg#oqkB z@$0nzSukeC3@^KPg6VWg4vqWDU!<##hp9gWlhFfrcXyO<`QK{&m-eaB*EjaFvaa3X zf0j@*nnh{(q%(tS6LT5%+T)Zt`eoy0^ZCN%Lh>Tk2{evKvJ z)6-Yu8Bbvb`fL$Hp3#!^^nB^wYgw8p2mG}KkYml1WRBcb{q^d&v!w(^{%(K(axsH8m z{(?5yVZCx_B=$oK8txxY*e>K=sW4Yy=3&~oZBn_}sNag`_RcRg@0qr-rM?+*_L~k7^8gBnZ=%nTYsEuMTOpwZk7Ul0tLir7-L#5&C0xH~A3T%|u z7UhGs(qqJngL4#93`8~ZZb5M&Aso&#QbEwB$ZOO*szca;S&8n%YBpqb=bt&euuPkO7B;OeLi zvD8E#aHFuD(}muNJF8q3X+pw+Kj7y{44MjaU9qv%%vPYZ(JOt=LZ?16 zbsYS+c6q_%r_YTJws*SYIgJmVy-#qsQLNq=IvlFwv-#!CVNC)MK){3T6_`PN0kg-L zmHd~&ck5wehz>m>&#_dhc9}kp?2{ja}K?!V5q5$U^}&OHcXK% zoO)j^!Z`hX_Tl#Tm6aTuypr3PYiMEa6+v5$ctPg}%5<5OryLh0W50M@yy&AWe%}H; zo~aits!{jEu`@%UVXk|YvEJ1(B-*ta47T!#{ME$q8?3LHW2-X7B=229RtX~Tr`bvB zBiOQxg6a}(%b#&+)RuDTlltvbQ#<_-7#S!SWtigOI@A=%Yr@(JUHGL3;@|rG$6%)C zR(q|}^+O~fx&fzR6uOW6Rn|de1#v7oS15WIk)q8tRW=%(Gh@$k9YRrq!8SZDBzWWm#W}L7R-lZmZwEAs&a4 z?CF} zC6lW^s-kw1pQlDTHISgZ3Z5M5Y@0826$dTK(3s=vjI$P~s8hTh&Dy5PTtKAjZ1vpI z(Bj7UOELBSm&nCpTGCx6sDxI3cfMVtLI(zs-Wl1iOv_c{h(8c^)sR@4v`e+$JnZwt zR#!VnZKF|7iyhE~lJz&p3tPOmWzxm`U-*i_4kST_2+oT9)-C&^N%SHGO_7ORe&2hF zUbFIkOz-m7*SXZvVjZIZj+zz9jcC|2+6`3U4K(ClvKQ1v3)`P&YI2)RQH@otM)mL% z>C$i32kvwn9x_Jtmia}jEST?+-q`FN9G`3y7(HxrgAjw>Cqu{;#@t zSug(qc;aKltL*tl>VM#y|8rk`!uHMQo0iwfOfHjPj)@_$FfhrGoH;MGva({1nLBYI z^aodfdPNnZlO`iqLZd$ys}acS%pFZJTISUPz+Bnp7lIr*#S^(~*t+cxp5ArKGnoOl z@qo)0>j)bo&O)G029s0bLT_~u0Z$uK^BLJ`fF`I@3BrW0>x=qW$Bln6r-!oN6>{fi zYRKU_KV=sX#}d=Mz^9o5W^!(aKHJ`A;kH*Hr&mVAqs+7{SA*OqpCq;kk1Z=(wtzJJX>Ke|L&GhjMo= z_iKbMHoFl7)Ol(QF7B76=8Itb#r^e(gGj;hL`eXXlamt{wT{xaHc6i2V3kCm(+RR< zGy`Frc!A-#>nUG%)z8&?E}>XbAF3anw(S5QPi`U1h7pRqH4`nIyAH|KtZztOprj6Q zv3TDVd6*y<2&ZM3{%+R$7isev7c~vD9M)i-Z~bio3#1}yZhI#N?4495fQgG|Pac#9 z)Af9wCPfa|B@iskstc_98=lD<48M;-%oyJ@OxSWc=@^a?_0pKd!M+?{`%G8v*7@4y z;OB0I?>2vDtVl|ophzI@-uv7p6fd7Ro6hi0C4Fw)#D_Z@EtWQ-Sm~x2TTPjkbiG1K z&c?+B-rKF_5o`Jnop2;UAt#C2{^wSvpP!n%ic|k!MoqWg7q9KI*z*9NT%9!eg^X|` z7CS(3Rv0`TigqRUldtt_wzVVDzc(FJwtV-RxreRfzpR8Gyv8ZR zmDKqCs?jNQb%o+#DG|~Kj!nw5n=A=mwED{mtmIc#SHt?t4UsoB%h%GVLcQC!F?D|0 z1wU<^hstb*+OPz@{QiR(d5NJ>`4|TB(jrPFFT)$)LWg2IwcfktVTk~9UR##&W1$*h z{#}POv&M`L42l({f*-5y@AfzMEwDN?ij{G4Ajj^1JHg%_ZM3W~s@rR@xp-x+`-Orm zW9Hg@eEsw{4*3|V%+5{#-mFbfx0`t*t77wB;w1kA6P+PtHC=4S)-4eckz`S`K+8MTeQI{wV36!u z%JAnY5#zo6;HxNXM^e)aq*u%=w&>ohWOUtL43GITgiSy?YcPYAqFlIdwk6|hBy*qL z7s1``+seikT4K;5{c$2S5qNds289)~a=9>un7){z<-im(^=#ml~wnVIDrOX)o4C~9)1BX!O*T4Sw{_BZYX9G}h z#9rEy^Vx+hO-^G~?&qtsbc;@On*6XoPj`g8>D!F$Mshe~Mkd%~NYr5E(#ju>^4ha8 zQ975}Dqk78=&G0Qft+|dz7yQ%S6{qLhVUvfA^?6F1_}g?T2G8a? z(>TVT<*CF!7>6mU>TmB=F(;5^a0%-g z*4iX^ow4}?-Thw4d74?a{%WQ!1M1>Y;wb()*XxX$-DzPz?J z(c47pR*S{#oWt`EC6l7x>W1%a7Cjbo8o%cZg$}gSUzzKQ7Rq9Mtdovz*C)aUXLG4+ z8{^VcEB#!aPZ&A7DA1VAN~6^ST^Mt`=T#pd$*tyz_`$y7(X4&rTR}BKNpH@xLhtDG zaX^fKER6w#yUkDzH)6Qn>tv)5;c0%;Y0A34eU{ljnrD&I1_j9B8w4YLzQ^3)QGFsw zURGHd3ygN|;**ueAkHMXm$v;p8B4HudJ;p zaWa_`pq*cvr-gftDuJuX`L1e1M42o;u44D&WpJFF&tl24j^Cz+)cLf?$AG8NOw=TO zWf0KPkTjs}kn26bLf6aAWLUylgLwDBPPr7(TDi#8O$@x<)N#+mPWlP~L>bWtIHVcPyeuXJH~5<2;bY8Cp?aoj2Uzp&^yS_Iy>0z^QTVbqx(tgC_Xx}zT`x=Y#y|U+s6+3HA56@6kZUib4|1rCtk^0U)&l&m`xEVEj@}po z&eVAg7mKdXu7RfPEQzxz&s$rfJ*e$)q}n6krZIBi67MetNB;ge^FRH>lz%`^uEgJq zS_N|>+o#7Vw`@yS+Z-3jGK8mwF%BySCv0WGzhA8WSD%RbcAnN)3gJ@rvP)ex*fAhCu6 zkDqa-taBB3QbRcT#A}XWU&?g})Ij)Je;#Uu9OkFxS2%UA zoNsc}x(noEkNQT)Q-J%C4YHs*?qJ0zHH~+@ELnmeG5A*N7*vc-AS>W?Hsl707=v1N zQ~5!H!ot?3<;lr>I4&KO|Bh0F-y=Gy;%*rr7`V%g;3(Fn6F)FSZKvfI7y>BB25=2b z8pcC8fFRzcp5}d;NqQMV=4AGv7HssII5-jhQ7|FnWxTG*lu`?PzYzW zC`#z?csd|CMJ$6XCfQ9ktUmnxF|YSs;r}~h|Nrzo`PDzT(fmr*(TN3v34|x-f3<&%RJP8$)qYd#)n8I}XaIN))t&6E_kkT> zz29s}No4-c@{b?)7(*9Fwkfb5tCwr}Af7oY1)Ux43mN|D(q8XwIhMqT>JL7wjZ}Ij zE9>XY!)=U~o`z8nTNof|KHwS+ioZ@ zF)*~@wSXju6=+OiXni7V@Vt(Ea-3<#Ttx0=#{2=-BL_*krNNWJuL8Vw&b!91%(qG$ z$^X_D_kYWKtUx`a^)9$)zEFTK+dD@g6DUTA=u#Q`b1N&W?R07y`(ts(`r5Cu{`=eT zxc#~^WzsjVU(ZLTcrXU*GC^Pfy;+(nDCbNEcq~zS$a&ZJW9^7wuXmxwe#~HNt-Pl) zdqS>KbdRYh=j-cq$HkOP&%9NY#Y?z>0z?YNkE!YKKV|b+Bhh2y|B}}ax#{R-f6IN1 zPY1mlS(b8;zJXmCe$h(4taFf63Bt~f$KL_m6ux&|;)K0eB=TFE76Q_ZLM3@k;|aCB zm0#R!F%ndzu|6AJiTIF!%HAEq2#wr zN2ug(Fy_j?v4tmjA$D}dNG(sh_M)*l0M1&FUQe$93kaiYkbHm!DPT>^hI|3lala6= z8UySD;ie2TsvpI2QyhQ#pTH2I?dH>4{Vkn9m1;5ht^~MM8Kj_^U#@#7ivj9gS-ghF z-Mw7w>@iU{L09wS`SYl%)s13y{c>p_yNW89^$vaW2KM$L%VZ2NtInk_vNC>J{TRn> zp>%Ueyl28tK>%qY{hoXWa~rzK^Yo_T0{%gEkUOR=H7(}OW>;I^%X1ZTKkrSqRL3Jz z?>7aPD}Oo?$^qz^+4%S=Q3wT2SBqF2jara(_4RPmot+x&o}W;&0UF*vj=;b=hx~1e z^-fL}Lx2!eOLHxr?~RdglkpA4_mlnd68`HNMneh1Te(N<4r7%TRk!%R^o$hiuu)!N z9~SZ53R~YJb?`Wv<$mhi!rXrWz; zSn*8#6dYj^_S_Z1`X@}Z|NGgzoN-z^GfOZ}fibbxVVLai2i@)m=mKa#Z3aD|{?~nQy4#f!p1IyKGrxXV0CZN8aF? z2VNnGAg>Vrg^Y|Wx=M)EZYEdZR#dMY6R3!>qWT&TcHW;y?TR*|rcbOfTjEX!_sT0P zdFFd>QrF&%19(66vkWa;#%d&tmFPMG_R199(2*)IOcg^@ePP^rVgl7%QlMmbRP>w41WN z-1|YvqPyzf(Yk+iWUd1i+A1c1uEQT)^4!zoxd68O@O_{!W|-?_QPwx-PTtT;6!AEx zq)gP7i@{QoHW;QP0_vI?GsAC#n1>Ai*~y@Qm{%XX`vAV>|;rGpT9D50rH4NZDSIwU}7 zAwUSccTSlzGw;04oPB1W@B5GI3dR7>z3#PsZHbtjq7t}lZwfTCDqZ&+?I%#22o?Ld zb~VZ|b)pPP-!9m6Me7UY;G?G`DqlA?2C1$mm%IxIkrjELo_HaYs7pxh7A*vw8XaC3 zT##JaoHZpqVbq#V#kL!v9TS%W-qy=n%|QH~)@}-<2}^%YW2p`nOW=vWjuV<4a-Tu; zo!yNFl|ngj-`v5H+Y{8#!aW7MwW;bRav*dxIQc$jo@@x1$;iWx8Hv=mi*5uUzOS%9 zv{g&cl9vK(gP>=ylVlXLFxaYK8aW4cV`n{zIpuOd@Yg`;L~|;ScQB#=v3L(xyQ8N8 zm*P-2<_Dz6D8dO;CC0 zCK0ATm04Js^{}klHCeQt<=S<(Fb%RPU2dVSB!R!N5^ieK$s-e-==!?2uqDsBfc!Qg z8)pqCwbl^SPenF2{!VxG<09}sewECW*);RZ{37gO@Z_q1o0+tDifhNGG$7b`w<2H? zGFE2s+4dakU);I}%x7ns!W%=J_FnwSn&U5C_=~IVzj(NR>MOc)^e)9uME?ND@X!DK z!KbqjZ+d<(E|d9`%9V_1>&$@s)my^dqc#d5}Ele9gmDUA^JK0^!cns{JquY5~8@NeQOz%26WmD7@*JE6Jy zB_SY5FM@Vo3a8$IxrKSf0`4#+j3wO-E@!`82;aR}#VTk_7oi4Bi8i8Gm}) zpeYdQ47Ijg+G7;avl9YfI7yn^YKyLQm{kifVUYIdvYbA+0^`vcdiK^Eu#iz5VD@1H z-UcLBp{E-V|7Z2yMhwIC%*2Y{e<-3!`vf_a0fC?&R=uv}R-=#IR&^wlT^2rSwUMWL zthoN_P}|IS>ZEL}{PN|?j$~Xwjz_EZe7aCwE;qFmI*`i%o>sU%pNknNYyH!BgKapt z|K87APy+2SjTkF>qCFHyz2|q*^Lt}*d1|`Aj_%fhpgUeO=ybeVvlt2K1MnniS*;S? zY)ocr8-85pykgi0PNclRS`tsoQMpWTNIv;@55T9JlMTc&)zoT}D0-=)LQ1i0GzHU; z8Mgr^RW;|A1_*&O(ZXuku|#4{l)k?xcMmprI*fRXY?EEoy#)(>t-A=%S10YQ!FPWytIDq#+w7l$= zMrq&DTIK0T4Lb0(eTu_9v0=$ifxEl2JR});ioQl{JePCx=zDxj|Gjk3BX1>VTU~F?`mA)IvuDu%2OSJk#r>{g zqg=%ZY7ajQ_2CL^d6w#+V(3*y$hb~Ti3VH9>8z|Z%Ra-OCz08^=gpnkZOR>}fHZWrbVjb+N8bXqb2MGK zARWf^3=F(_?{uA?V)cQstlF(94KBe5V3BAbc_fjKBgqZI+d#t1dQfMpn(=rc1bfo* zY~^^c@X|oR@O`T^;QGk{y3klTxBX|61rLF+>2iBw{qoo}D7<^Ca!Pp`>rMz_f|IzY z4axlg{1nMIZ=L-@`5G0F4!Kl?7J2BsK@e=Ltj5kB0=F*Ez4GNTD zme;(UGrz=f95rRg1aQ4OIeLQJyCqOGx>4P)%p@7S0~Ri}8yw*dAZ_HkRDj|PV!IS$ z9#YQ_)+lHXGw%hKMf zoYdt4EPLazVrtxKgoQ}&o}X?2)XdV8_?lbt)`(XN`Do!{XY6BL zQOFY7M8|3BUHDRjzMRP8Kj7H?1L)y3-A^kwxN@Jx*?QQlc-Q&t7axA`dqMw@fBmCD zzF7i}PCS_=`j7ZrSv=owPG7PAW5XuC=6xzY7d#NqKcq-ezVb;!JI{k|ywN?>S`mB8 zl~5NUrr6GC^#x98Hdk#bM`Gb@ie`0{(DU?WdJ#5BLU}Ql6aCk@=D(;n-hd=*Yl3eByS*ag=iR1iis*KKH_75! z%cUY;*@g!oKZt&Tik5fS_NF)Ug6+6sV#dH|zD>mMrhMgb3hnTwT00^JR9&5&SrFZ@ z?cI&zvI=mtyk;X=qliA zw~9m>*I-iyVAqR|y_3EGPLmSnf3#xZu7^~68SrE>_k>o(@8^RSKK z-)J8ADlZInI$lqQhzW_C%{5rn{7HPk4y zaRTh+u-5XDgKo25$Api+6X)+k_9-kRqhQ>c3~IFIxLW@tSi>u}W(M+d|qoOD5N*KNG+c63tjdgxn- zS2&k)q*jmsn&i7`@Gtpn*4SmEyg*g9>umEYQ&wHE!T;do|Lbn{|3ocm&xD5fFdHCf z=hxGfgJ)|-8(0WerM73aN;iLX#1Ijuzr6S38~7hjYXA2e+-E&U&tjB;{=Z-OFWCHl z{MG%`i(nEF?OHHx@G^A_8P*A&sxbtQp>=r%Q}D47(DS;K^NOsl&GG+4!4zi8*Tf|4 z0eP%u$eJDIU2Vvy)eoG%B5t}YS&n4L3X z6V99CM-$u(1+_p^zc$ZJiYX>ll@jOu_@CxiS3g8NVSl!>SBgXfKhbcjB};#UyV|Y0 z&Y_%x{VwR@1aQC7fqu!)p7RSHDAn#1Q)WF4c@3UJ{5np{ldV7ud=EW=(a+Wh;IOSyow3PCJ$oUG^gK3%xps|UDlA;$H-&^!}a03Ht&u4 zNLaESDm0*!fUCjme6#Cep>KyF+FxQ}NzY!o$N{N$fdf zxGNl@a`wUnr!L*JGW<@zHyO?pPWa+VN+i4xR=~9T;K2indXZFlAjvQ}TVaRdL@h_& zWvsCZ^N9glPa@LNg88|<2{kSxw9c=@Ou(!wBC+&q>v-pZ(G#Db(tRkXBKkf?K|azI zKnDv5lVQniy?*%YBdu8pm+6P;sTGC@|3=qjtg~#-QCFQ+(IdFhf`?A~zFYo?5&cd^ zNJdvXm9b;j5Yo3OW9d{Z8iYFNOnW)#MEIBg9Yj*=>cK=mdwJx>P>40s%F6WP-}#<@ z;kgmyk1n+4a`#ZV-R!cH__Q)4<5Mrcb$72n)Wg8ES&NX36_ov1@-M=xm^aUnpY9AF z*D@ts`x_8thV6Ng_-W74u3L!S#WYXl8rGVw1jQPGnCzgZ_HTXudcb&odiLRoO6)(A zkH~EDQ~NU&uD|#Y|MI@;IfedHu$g1vL&@4K6$}_K(7eFV#}6FIDf8!cmhR?S@qF7W zLJursBuR20cX#(#DIcbelNJt}?i{x3TU+I>Vs3ozcO2-F(G#R}c@lB4wqNJl$iFVlI64D z7S|wMm?Wn+aD();?W&cO`5}?|Pu%_b=*0Zf3#|GF^no|!5RFpa z*?w{^60Zu4+K}=BJE%|1d;*OfnG(wZk)*tR$B#{?O=PF9S%aj}2D{FQq@<0A!7%{P zfV}=b%OvEisGIm#%cP4}82Z&|M~a+H0$%DP0|f4m9AOhWg_~-8XLX!X0ic!(q|KRX zURdCSdTQ7_HPEW}38-uw_4!yp@e-)>u!ey!N0H5ia8ao{$Gi`}9FFR^&H6Eeex%}F z-bL??e$B2x6T_hiL7;W_ySkOQJ`-ZH%xfY5;uD4u#!de9?sD}$j>SAYy3C0;_!jy4 z(w$0MGpUA;_|~D4Rox?aVL9^wJwA{n!B0K-6Eq`P82am+r*fe&B|W&PlB;geGP@NT9=U?{&${pBf>wy{N#hfv*`%r84rXG z7nWr@Qw8ChW0$X75eqCec23SpNhz8m3>zT*^Df4y7T_8Y0Xp^uqzNC`C2v4W{h7oO z=3pmA!8n2zSKm3#q_2$DwPJsA>VF{a5bMf%Pp>o9*K2eEBs+ zK$H?{dSZYY%n|9Mkz_*ZI~a@!io5&rHUPa%_DBGM*M(jVrwL$OE99!jugFVyZpH$w zVx-UVZ}g=*x6ZoE^V1 zp(NX8ykX7~=oUWG(bL}@=Tf{on2v5-mLpz3S7d=ZQd+3ScVn_k1O=jAI^9Y zCqP~CE1w(lPCRqyVQ&e>l(t}yJi~^b@SFPzAsv{!D@h%f4%{S|gPPw=ZBrd;S(Yk* zp^TLB6qgs`=57ZOKYeJcj^+TBR4icy#J!NbYb3oNDP9B(tyi|5p1;B4JJWk{3U15w5|@*bAWkv#-(ukdDsmibes}N zhG<~s%<-$wtgs2&r~N?d1?caOy2pk9CiB{0Ix7tWYovgD{6qIBACp}})O!Q_Z#l5Q z!J0^s17t`J_VY(3D22;6_xC_h|E0m$3bKJgvsvXl(%SIn2OOMs!F~P(8Bz_RUXfm$ zlsF$YF%O&48!ScdR?SH|xHyfw*8+~d6;iIY4P2;bG%&sofNuE1h$_nkpLoD-b{!O= zMC1!F1FLT$tQAkIlYJld6VN(E{F^vJ^*`L8`hEgLlX@!9rqbhAIYH!wyHrZ zsg=)y>}&LAhY>{sG-*pinM<);+1_e5>FJA|M!|MrccJ?HHSU{dNWSQo!@)&PWe7f} z<-L*cECz$w1a$zgU15}PL1O^wSvcE}u|9K8=Q^8*Nb3Smd6!$F>*}P>W&{NFZ~ntS zA|2u%^pAlBXF3P+;vT9ccMhjXv3{>PJqfzp(tKH~YeshQi))4?j=OZS7AudlX#SfH z@GmRd_ZO50sIqo6Q^m>1R)uiGkQ`dNYiq*Qw^8JGmcWak1lr3}{*fi{K6CFmkpIU5 z63G#gAQAVCP3v!NOCT-^(kHo#j)=&iu$ ziVE$ykdvvgG{$)HV$D3sf2Hf=_$+X&IqqQ;Y~mqIa#V>76`w-b{dieMb|d0M5a}Iz0(dfiq-&u zr$*`agQ3b-07xVXq-u)A!e9Lc@`O=U+d*GHf1a_#qD`hMyu)vB4I26cZb)p!0b0+# zS7rE(q4?NYn~!ylT*S{He)~k81G+#B97VxnjhY}$ZMEy+&uB&& zVD9w;VaeS_wX!14fd-?MV08^i%PG43zJr`rPz9`ButxBxIHm4SKQ@B9nSCf(ST@d2 zw^|x9+OQh~&>5-q+I2+ky|-v;TW|q+CTd0?P3Wzk+-V~ag~+HS!IPx$XGHXdkHpp+ zwRCQ$c7s?Am9^M&Erqu|X3ET}mnMqQdqmshZlddlayi_%fN7oHkRTHhw<-sIb>uxo zcp)YlG24)XZ9A|zI=WCXjRPQQF&c7Qj^S+aFOf668FJdnAv4-d;(_^En1%1(pBhzI z7LjP;13!9^Dbz4@V1)19y+;PaGbhcWFG~6!eovS)A;(twpB(4rNq>*o_pRyAC7G_c zic9P=+sn9as*pkXKQ6Sx)P~{XAL;>G-%)#V(PbBiT^`2e;mKybBep!p1GZjn*HXCX zRyrEp8fbR0AIZamNRcj}o#h(|+GW@LV&=rFFLIWFfx#L#FR0zW#n9OhiR{JE-c!g^ zTeX5aq<&4lQo>z~(&U)AQlO_c8^+bbO%>31(^aZT2E< zUHadZ9XwKCj;X9%gcEY_)z_nXvVoW3PoYgy&!q%&IRBHU?Zgj={bOg159Zel-L2ghCgozGGyq-p2Q`00O zAZEZ4WO|ONln;Er`r$tF>t8=i4R~%-{lqL%QD!lCLE9&h|x11)OMr?AK`i zW{X`})8gO!e_A4!FreJr+!R`=5B50uLIsRIZ^cv*VBrZ%5K=s`X!H!C!7-i(_l95p z^AeA^SKW)S;JD2o4#?&^^R=B)9?oMW{>~&B`Kt99@sf8oa{iU} z+@Why)*my~WwHYo+P*C%ycw@lfvXAGsTLJo=6ijuMQ2%qi8E<;L?piZeLdvN$Ap0; z>`VYNkSPx>=|&4FSl+TT5-2=ObwQup>$NO@+WFYdCbS9gYvPN#mLrR@*GJnYtNH{b zyjKk>9H;ro8vLG&=6aa>I2WK49+z46c!OYkkJ>yBlb=KF$`;0i*e)tRZx~Ni&upTr z%->7Eh`TyELQiZq~0}Kj>VepIciWv3uy-g_wBIXp9;0g@l<}jiWcb zW10#}`sQElI*v~7NfhO%M+#{-D4K2WgtN^?Vz_LIst3;(ViOibkCaZ8@V}07+00@}-L##l`e~qd zC*ZSpss5;1+{n+?ovE1CnHKsPv+~Pz1&Vv<3Ed%-GhwL%tNp>3rILRz6*)4( ze~Tp}-Z=}CanGgj27mnImh?9&1^2tBgv*(m4@}?X7F8vr$*Cq#TyGm34r;cn3>*(G zEFmJ{pNy9a1?-)=JVq ze^k9b8S_4y^jMGME!E%?s0ry?;6V{?pfJnLg1@imUHJ+BY)Cu&4=w)<)Xz($#Jv2P z9dtMny}>eb^v`ZHF)E3rn4R0VZzB!Q0R>&0dDO9MM+%$AN(X25d7q)i^LPg<{Ui02 zbeRBtFszaT{#uup8#HSDID?{5J=fW~(k0puEhT+^dM-Kx^=NPcP?<8jOM7!v9=Ptu zbpbYs(#^Y-FQxDC+C>#d?=j^Lw2jjq?pViQn>HLS!LeX%N_2vg588wK0G#vCRIB;^ zZ#q$2oyp^~(GloJ`^9THfol(u)ATaIkM|kx<)N-UGWj$(*mC!t_xk(T+i53~Ql9&< znXbKGaG@q}bnfN4E!KucOVr2KY}S%@HLhcz8Dw>fIgd=e2zIZQq6)WpsNaH;aM!iV z(g+|{w>9R6&kn8ZA0MCFEwHHsN@u?Gvaonm8kPzr5eZTw#geBXip|kYM6)l zx1tI*RELVKr}edmQ|ajQ(Xu(ZAlxv#Tt`OfHJhn!$3ey*W)99!v#_fVEg-xijx{|&mqWkunwl66(v5Ie+RK~O|H52aQQNBDW&1H z3L#*pPp;zhySwSeZ)|in>p2R@)Jo=i2d^?Gr>7BwGK;6IY@qw+1q91TkN#bAZ&P}z z&%_H4guo6n7qnwSxRZ-9OImXVKuAAPLuQ939Qt3MwoN00G)A!*?63HPQ_d`H9uSlm zLMp3&UMi)lF+&v=tc>-4^Gw|&eC_nq2J7itD!;czB&xT6``aiDW7Atu?FX&W-vI>w zy|4Nu>{q*cj$8_V-C6xVzy0^UkY)P8Yx_*BNauyQ3Afyf3f2RAHlc!HQK_+DC5_Wz zLtUl43*m90GTa6?|4qBXFqlx4xv@m00)VEc9nEfUz_WuIc6vVHAnu}RWGkQ<^6seF z#qiYoKW@zSWL>Npgd!TD()KzfB_&5SW^9Lhd-hLpBO6lqT-AhXkG+Firf&0($ZUG> zR;=IvL(GQ7T!imOxJ0f|`bX3lI2+$Y6P{hu+@wBuP>|Txj`mbt!O~p&HpZM6f@L!idh)Ht-p4s81lZ&?e|WU&ag9uyz*af)LRrss!OOSER`jd5 zE4{qhX6h{)5Zf^DaZuCL9R65lQMEcDRxrrXG@aSdG@%u}=2e^(oH|&8+ly=XPyIcjSmWDI?XQL%Y>x_a%&12Li%IpgE^y zYy88>8#VRaD3QQ6~RR&^u!n<40$`}Yyr6K=PR?ZOw|xb)QQm`W7P%3Oju z4@H>=l{Puc8IA}L#8eGjG+9MqB@?!H#Zn+LSXqiyR^w51@3oq=ar(vo_vG^Xj?v$~ zpRe9?HPNE|n&XJq3g%G8w!g)tjr|b$quam1>Wl{OO7;n-_bn8PFze}L?`Ll7N8EAiru#jUQZ48AHA@DYAGJ6? z`ZWJki}uOs8mIoj!ZR$sQo|!D3M{S*=RbA$oQfQymL~V-&E>AShQNYZBS*FKx7Z1R zBzTIC)bsD(X@u;*s`6!b3*~8Kw^ly}dqZrNb7r*b_6@4zi)Z(;-=1y;tPSO*!!E(W z_Kg(nrpFh+E{N1j>*;}VU|_vt+T{68FiZ9c0j`f5&~Ea&O^A0O9PU0H580|MDFxRe z@}A_2>k7L{QO;{1l*ymSU*~~y+g3?p9g-ghPpim5gNrIAnOB4=m7)_P*{8m-s z@Pa$l_z}5{@^&M?drNN!+n{Xzo<#G&0lNIPI%l0OWBR6&WI>gK`*DzVS(D0;=M$^fDXj~K+(L`OCX<$JCbnyt} zVb+P4YvtSCB2A%hX-my%hKpy_qBf0L*N%y)jQglWfy+cj#<_Z$cHB1XF-~^0N7&&= zh_4q6m}8}JOmc@$Yy}MSag*X8R*&ma)2w|)MKukt;PQF|N&kkXniwf`k;%u<;-oCU zZ{3=BhA7d;6Z)&K{XB^R$_=l+42eslMx}DljWM^**kF66ri2ZU4c!G}xX^ksHH7^I zCn4r^vwTJO5%UmE(swbWnTKITF_klO>2Rqqh#!rIEa(%L2;=gtEiI-(Hi|48kRcCx zTiQwUmXG&)Oi>;o?oa}=g|vZ6q5L0u`(O3Np9^m!Df4UN;wL5soFZ*gvU$z#lxo$Ue;_slCb?zYs2jIya-mJ02@s_g#|wK>$Ca) zS$+Do=u8XmD>YMIGmAnej3wV+mA|d@i#NEVg{SN`H>iv~tW^X!)YAte8&8=PX*e`s ziWh0R_yQ>C2bWwvZ#F)8)HnnKkOG(S4kg#ocstC1Q7J*F5We0RY+h~~W&*BNVf&G? zaFbIE3_SH<3&|ZcB6#o}1nK#%Tsuoq7PFGe#y~6OeR^jY4NU+yE`$FgSPvclxgFa< zu-#^ygLJ1)*-8t zZHVzrE-b(}n8V(s#R5kL-7+dpI4&@ir}DO2#(S|7y2GU{ED~FQYy!S*HhIE!hV?pp zCd}JQdUta=gcGz`H}C1>DOz^CO3=hNts4z=g6_~F;V~q{v3W~o(#kh^R*s%x^|+NM zipwcg!ish<(6BS-jT|UZKG;lH$o72hdzrq09QBgnm-%y`1kp?H8NZj0k}7U={<$dy z@r6`Gc??d2mn7&p3e4+&vqHloo{+D9-w~7x*f#-ShDe|}g>weq_7`6mvVk)0%ZYqG zrs6V2f2ei;0caR<<%=YREYR2aWUPmrjS%+nq9+yZqDhs{(ql`#g9Qxd{xOR7aw zoWe&vZvLWC?7&fIWD<}05Vru@Y?s{)?H9B-I#}V^cYEV5kf~VqM0wcvo!O40dxDY@ z`|XAKy}Yk2Ez{ASFh!@sO%3{KH3JYTCd8-T9Jx+#n{MI&%Gbf84Z1(ENjWwej${?-p%E7W9#jujo{+TftP5><_TTvTtQ2_ zzp5j%U1nUP!PLn-5sW8oV*r(_m_Z)QyEfw=T_DGE7q)HMzRv78tmQ$};W0XpO)4wC z=3Q9=Ya%WeD(P@`23eFMWpy-!#Ef-nBLB95`PZ~TKX{ktHIMHT)k61dP)h3u+e=@r zv^PIr6m#?JalD0s8xnhrJs;9@{-}|;8vMKycAJd1^cXgJALSIa^xs~#Z63fl@m!BESB~R<1nV-d~cD)JP^$}W6-j~qp zf>Dw-$7SHNZKb@ADU52pvR!vRX3)gJrLKVWtk3#8*Cd{yo?l{e4b4hJC$2A!;oqBh-(YDS-S*RIfPSuOmy^BFz#~hI529>zH#FafX)3pp#oZ0INRtcvXBRABa;V)vGY`@ zVD`x70#;8N_-GV}P45}$g*;#t+XN7}izLOU?Vd*5!;e8`CIEWRThf&$veO-?@k|50 z`_^Husw1(%tM%-^_E7v&iGhU(!s^=(AccGfrq2j@6TubpZ|HTPM=Bt)+oOp_D_B2fBt>{8Y_DF zggL!bgTw@!B@0AU!?zbZb&PcaG_KAXR2L_)>Y=@28ZSgS9G1}nlno|GNdqxIanM%G z*zCy--nclwwsvi#-zP7mZE84+-q{#Dl&n!TiF_hK2KqlYJFo?XsUr4$uv3blcX2C_ z0mD|+nzTvv#?g2`&1k!Ebx9g8z!b#yphVl$voj6Zs3N2Qox$Kz>N${DF$68LQcvfN z;is8?4nP>NUMjpBFc_1#LSdSvv28h4pWe5SO;h{#rWCd-Q2dO%{Lzb-+vF02uY>u0 z>+(*M?H)2oF0$?o@X@i)^34v@7_k#hzg_EVgjBTdsNvzjt14uN^Gk0HkjMOM@u5YH zF0tYL;51hsS#}fbiut>NVIW{s44x6iBBm;XkCw#!wzgt6eY3cIx9)O&%nRmOiA3AY z5DCjOTyY$4q74jZ*M3n$TSp^DAGdnrXMS#}LK{(!2oK)v;J+r2{tk?n&WYDZI4EC} z*P#I1WmYliPB|zTlLD`tGUg(i-Rh<79$m_i4PyM3iS4ch9Z>R*0FOzv&T^bYT14dfE%*HvY2fOVnnM0T6m;&KjzC<)$V)-ZctJ zhhMd%DnMu_?&C-i1IVU38Ot!(w}c-T z1Z6^5kM2G%J`8@l$Tx7`04y2t$4GuqZp}hA@cA;*J3BdI1*Nl3Gjgtwk;T9mLhak1 zI;ql5s~u~zBVLW*Np;Tlg)4Gu>!*#&8TmmEx^FJ$y@x~!4g|iG+VL@z7?hB7lTsQ`4J-n*U zG9%;iY<9Y7vf=0_AXEDmwNaFA1=5}9wVB<-_@4ayBVPCi4Z%PA&z`SRciK=EJKW9c%#K z*6`Y8nf;Fapx$O*gHh-h2dPDOWwRA}^>nwl7^S@t%_GU_$r% zG2_&rCiFeDI5wMZ_qewYIX3)hxDS2ug1IFgUBB)e0FJf14?T7)G?h=Q(osnQT$je2 z;L(ghs`)#V!v%BP=!}I2W}if*2!H|QeeYzMg1H19L#q^fFVmr!Zyaf)X0$~-FX6Qp z&u1f(xIG&rKpLMsz75+?`x$y|gcINY@@Pp|pkr~o=*s6|EMj3!HiU8gefYq=tUhen z6>iSe@=R8v0SXe;RAP2XB))xnf4~DR;Zj{!U$-yqMUUCsoT%;JG>F=5R6gz-%r6z1 z$}N|3p5b}$pbe3u^1_s}D_u0rx@R5xFxRj1ZJm=B14`c|ZjG|(8<_Qm{0(IK)@!(_ zB9tXVu)jD{YNEDv*@JJ;*I-!%{J{CStGL+GEWdcm6mV2mvjp` zd6-Xc7qvKS*)U0j1V$E!RxD7{AAb?VL4wT-pr_TQM^KA;YD5lvX{k1e!4ojtik}0= z8B|){*5i_x(LTwnwkTtCFDhBIW?t`}U zhD*LD7^p}?()0;>w2;}j`ZNbMeg;S92e{|h#-}dE%3$tIISC%PX#aPPN(ouP>Fu83 zQ_nB*qj@Xtz@BZ+sFEs+F5bND${}`6myEMHaKo|w zO7idR2ma1a_n&X|tFPt%xM=+F4H`Pn2$(g!?w=!K`!J#IfXuioL3mXDg(HXtDz;sc%ro24%? zB>0sN&n}9@C4KNLG~5^FiWW~%30nmW60DnnUC_!m9CR0$_W(WOMfG^eTfQL4>AsPCbMUdWj0}0$;_|X>viJ>2*535f!P_jc zcl<2#J^gCw@NV9!p>ND@yOX+y)t6)^vt9k$Zu6aS`JwziK0flju!9B@i?ySkd&c%b zJ`GIqWhP8$Dyqr4ONln0%GNT~;ZeEJ6^jbTZv~o8x?xAWK<>;UacOvXxX`oc$WQQ) z(?!`d{X6mM>u@_WAhl85zT+=f$y{E#=MIB3OiY{HTUN@tbNGds+R3k9P3! zyb=0q<6tGt+Q8lRm3WtE|4@aIWwif--u`I$q&>+0pD0qD^D2f2m`OB#b5OHS1EXX3 zf`2Yxhu*AUC?~F(29uau!*gj9L&A&BWH?@JOyw}fXIwkBOQ0}tx;&Fw$_Z!?6>DU{ zf>HE|&f=gn(!~COW3zRh{z5ZBw(53;$ASpp!2G1whOt;BYc(*XRU>*7TKgJzGz5`esk_NxlQgPy4Z6sTwIO__SY4QA!IbFB?D zHGv5-8zpgmydsdb<)|huoycKSpQo|PrxX|X-SF|>3CMnF@Ilk}g61FVY4EIx>RuBq35YAp#}f!lDjd2?E|E*0%br^^AC8O9~}B0^eEVxUsni0N2wr}_V>NP zKl9HT*3N+2n?$M9SZq zD24N1;ps@^h(IhZ!|R3Y=KOC7yJvz@K#4Brz4+$HZ)^1F+Y) z^rV~la9!B^(^~8IEK2h)L#Ht6CXLkg_g z88CcaEL$AN_yAfI$ux`_I#seH5f@y#$yBWdKQ}bd0H)LGcpPzjcLkK5a?4f`K=o3* z*mGjDaj9Oeh}6QLCj=v^eWsc=$25V2haD&_%e?vC3o6e021vjZ9Hsq0GZ5(5Gm5bK z*_6NGvp`tL=w+?Zcf=rrQ6V>6873s*EGVdFYhkZFF?BMT(<- zk8W^la+}*QnS0qka~A)5r~InTnRG2NVamVdoqzmM|GTfoFmL&MXHeQmw~v@4xC1MG`b2bsd{?kYl`> zquQqygFQ$Pmg64_v=D<$25MJs%9;YUGb<&JbTt;ttY|m+UodSlO}wUEywx7dox8ic z_N}g*l-dd4dFRGb-ZXKOu0;Nv6duVlP>oAi8J4W}+|5yJi}&8Bu#oq_9gIp4%@N-D zHadxFWqb z;fsS{#yB6D>aePfVFL)W{0vNS19apdlYcrGnXRN-TMZ=~1uBsHtr z&hzfH33JCGY@XEK0~T9l;sljfon2o##**sm+iNY+l^O-JX8S3Slp~vwKBrmIWTH;c zgF`a-l0^+K!t8m6xv5C@k}-{IY%Yi<5<4%3uf1kU0=}r9J@#s{El`FKvktNRP9EWPs}fMsX$hc1S8gCql0UsH=e9;!&a} zxn*lO7f=^fHjzd_z=?SB#;V3@8;>5T{Tt-BOc>ZK@^( z8_1AS7-Vv|?M>W@&1M!(9mVnX2r?l;aTN&02a$!9`pRLYPi`GuTt@K=bKtI#p7M;! zuM{bGT4a$Pw`+%j-aH6Bzm=!{{*yr>DtX*|XR(|0$-7gZ$Ufua7pk;_YJu~QdZ8XW zd*`NQhjEF#YhlQ#l&i-c2R_plH#$<(Xj0CFT$mZj)yaEy5@gT{=GvH(mOM;bA+vkd zOChkJT3%M@I$ia89H{{1X%kX}s>4`cV|mo*bYbI{MjVJ>s!}28t0yNq=QmwXg0x!A z%*w5MeTeYc#?L_zEnE=_V zgAW+35P=gSorvlntCe*50fhX|1l{)=?HVUBEHFeQk8yQ3QzziMy>ii>4S)tGDdl!b z&Y~qXM@xx$>91lM3;XT>y{dXXoJO*O*8j)fNpyI4`J&w$9Bbw!_xdg+Q z{)GG%T=L<`JDcKZNnPCVN3#j!{$v%jxxg;V1vBmz8_x}!U90@2PY`P?LiqlS!bYD{ z5ra?|!-HtLZ`$8`m9GJMA`4TVC?~d-v)6!|8&yt>V6%OD^IGcdz!o&5sdNJwRdq#M z7Qr{#QRIx4wQoMr_Y8`aYcEngG>398pcY#6yxOTO{=Vu|vk+ zz5BmEVt$ZZ72D`-D$xv$m}+`vR#bINEdA}a;NsV1TD>z}a1*DKcI_%h+JAj}vBiJM zw+Y43UiY`?>wmX{_|ZrEG%2vvvfMb38$^7T*3sdb%h9RzKCZlcDf)>Na<5A3E!sZGW9;z$ii!udz-Yq7IryQH*lgsM6Ug z1M~=Q5lVs8cW1G1ecVS^yh?Zb%>3M33950EG$fyY5$IR(($A1Y_m!|KR6GKmM(wlh zk4BKZNGu!L|B}mOIf3TQE#Xk$p^&P&J_rJkM{```%tD)Nc0(gJ{BO$S#2uIUWsrKD z;SE5^=5?Fg23PlhhwWt?QBR=SN9FtD?=I71x%(=45!slem9@3otrtUh>+y`=HbQVm zrddrjXsJ1LUdft|4GMH^YlVSQ4&_4to2?S4TFh?Ou>Kqy8M-MgA^ZklHGHKLj;57B z7tWVY3)=SRU7Auw07{z97?t%`Gy~yET7rF026Z=ET%N$7rLh(8%ny{gDgdDwp)X8B z`SbP2%ZPl6(yIi~v`psIH|25EN{ME(B*%)p=^$WPP)ISdl_ALCF;-kL8%C_UmlX-h z)(vfV^KIwLeqsvL$yZIC%-I({9PEB9mTvu+} zD+C7lhN$Ve@D+iXr?rd(FDK9|hU`Lx*S@)BiDf_p;K2D#vITiym936DO0t?*(7V`S zL}3A;bYXunBZOYZq7AHqqq0@=y%fc8DvuUfX8X;;lGplXN+VlS};;F)ioTq zA!YxspB_FDSiT>gq;lK+p~e=s>`&mDB2B8XEXMwcS5AR}gfwJ?PE@eTT?2zGgfyr? zCP&7A0`%;K=BpYS6vo`$K0tMSSrpv5#QzOW$%rrm^fDue-H0`!2x6%qWAEjV()pxhV;^-w=;N?2n1QkU>2@CYlFCsV^ zDT+b^EjoxZW(UN@YAB2|S%c<@!rj1i6O7LX@5lk|x`$d?qc18qfUJ`ixl58|jB_vo zeIqshxP1oD@W){++rPIHpXBOiGe$W$1!DGP1{?S!Tza`lRu|nuL*2*Z>&$?WsfNBf z3MQ#%ksfqfqvgcBCOZW=RCez5ulNK&L&N}~guTSD=BUEj{5g|}L|5j|#sbfP5pY`K zAXhajB6~N<0APn%>C;h@1A3D=57I71ISd}G4cZCW&OaP%su3(4p>kxHKS(8MHVY8# zV30!wLg;GN#o=(er-A1S2sO#G?kTc%h`01Zp9NiLi=f}Y)RDBG#CD0Q+X4prsU=UP z@mG&Ih*i*ZK*O4eg$#@8g;%lk_X0z!^ECBiBz!pQ-#&xL_<)$C8_NfsN&gXSE>YO=`BL3P-3AS59JP~YdrYpeHrQCV=;bcM zG+_;tInh7C`nrR4MiY8I=vC4RSr73}dsaPZexr@swH&c3W5QS03`4%Z%PvYyZ;Rv5 zfD+$OzG{>`!C;M%f{rpKfDbiQ58A9&Gkvm;FAL$tyCF`>K`@OEa2^nJYbP9CXnh9{ zqgOtE4m|^vDe&wC09d9#!<)K@5lkp(af97PjU!;L14ad(rey+~jfUM)f%vuKOYUh1 zUm?z8>7oMpZm9URzR`B%{uQSwjpk$9gP!cD+r@m+`0ldhET(_`yzmdkBj32QQ&ZDy zLE|3RrOc%3$~?nP`llYUyOd~&>eMATO<<&6|L7f_*O+~3_c(ut~7d1ZrBaYrjez)IQV$ ze57tAyU0*&=(T!eo`P1rA}Po+;uoJ1iZbGpzwA$+pMDRX2{+qRDZ`u*T7 zZ>rqQZmv)sC|#HzHO;wm(_*6>79$a$MIC;YnIW45TwsFRQDEx@I#=KDOl2SefO?Dq zZ5@n55m!w}XS0lKEuiIKatutDrA3hlm!*YOJ*Guu6wz`zoUlNG-X@*gSr#MErU!9jS8};+Mt8G?EKK+;`!c#B2h(g`g^{*|O zB7`iGr=hxBwi`FC5_n8%+i8~hSy63pK}F`o%OPED>GYl;5YjWLQd`qp|J^u4E}0Ts zYMD|7Pk-Sc!e2gf*+LAIo0~&~%S^+@+5+?Hv)Qac+U^uxmlA3n;cIPImc^4^SfD1~ zS6HYHBD&(unXku;cZ+e~T@7!C?r9-g`1yl#$iNE<;g#6Xv;I^FEXd7588 zGR_s5+aCbQU0A{sSt5=vyB*>`10$G+aNyL ztd(3)NxBcYk)jwjX9{BT8@)8C7NghXUus0YnDE|UKa~6O1emYTSp97o6ge*u@}?!8 zs`cYex&Y5q3Gk(s{@~+rtxhspO>%Db05Yt?4&)d&qcM#-6%h~(ogCrW1VZ8>tUko~ zjtA4*WL}yNvw&_lxMF%zo4b2?m>;@niUO!w-a8&0iP#7DmY{VlCAjwz$QCHjU33He ztS)KkeIR>Ewh33n`GpYmJ^S-)z^URXF2oP<^esQ!aXLx<{8ZIRMKe%$#q(HQE30FL zuTs!o6yl*GJt*b#%tWfCkEh+3JzeuHCCaUZJ6t2WZQoJE08lKA*H$8vQVNJUZ^t3f zF{5x+W^lT2|D6QWGhoa=?S*+`(yPsZnHv!Da*q#G={EtLZWt7tUmtQOTZkU3=Y@$HKk14B4jrz zGQ!DBv6Et5QUcxX?(b*yr0ESS*(sjq=G9NKX4WUkXGTG*qb(N%q{%g%(T=^H`{Ht2 z6}S^vEx1zvgvt&A_+#^$d5c^Ym9`e{Gt$~&ucU?>2PyON;&4z$3P|f!vLp4{AKQ@d zwDcJdR=DWLnTUd^Oew!=kW(Wl_ITCgqj)&BC+V8>jcE&VRGx{5fViCMJLFtnJ(1}> z^3Cj@BP92Np5cqO=<)1!)WeG8m19dtDVua!k(gN(N)Wjk6o$DHbxVQ)O~xSK?_baP ztwjIWt>>51HQ>sE_EJ&i-FCY4;_OA>AVn;9;?h4V;HMa+MDfzwSEjXLijZ*+-qFm0 zb@{LBFjKwQZ{$U~Z3i3Xn5n?I#Mt-Mgpxfm)Q6Y>|BuKqLiW6-bLnGZ%dw^8TICFg z1N(gbhQoTqUT#~1IH#o2&C@E(eOS_fu>gV}%`ye5CT&Wv0XK~r_ppotsQOU2`w0M2 zc{B~%aW83CDi`8k0t)H_dY9X#DvD--o?S)d&qN!vS}yA*BZW|B6@tnW4{i?4ILjJb zR#`f$&mjrMQ--R?-0q}KYClHZ@#(7E%-zmwIrTLty^XE`M&Yv88MuwIB-wtD6m6;V zM@8NRh9vIpi>F`$oo`yXhZZFG3DRd`p-?$PkQiw%7~CB4s<`{S6r5GrQWwM~d0p9n zq#HzMpj@jR=5>O`b2s zxcZr$c8E0P zEnERdsd><$Q}!~bSy#Wi7jj!%Fj)o1&ya5aQ6zL|fSsqK_Y8ib>DeYvY#rWTC zkNlo>c&fcEL!^fUSP&iMig;~9aP*;!)q6+TXb{XaMZ7siOAsmm&c2Dhvvx7&h92|y z1#X167Z|f?o06JBHw{mK3pCHicZ3Hmp{Ceg{RW{Ww`((ZAG=>cS`be@&qUgKbL&S zL0G+M04n*lt|xnf*jmp&%_>{#u@Y$D*~~vHL%5qqX_VkK{L;_3Zm1%B=pfNckMqo*zqK03e>yWh8eZ5@Q9mZ)9tm`Q(ZkQbwFTJ*CZ0b2JXV=TRGHH2936A*%OOpB+tNhg}NTM%UePEr5VEpy&?juGi z^2smM_cLsVC}w>R)@Giaq0LuM(a@DmbeV0+~?oTm1QR*I;0p zB7oi4ZL^)Dg^(j7fix1_26dW&OLJ}G_?={k>>F+Qco}VZ7UP_~cd7Blxe^9T#YKjK zU{XW*0n|wrx6j<1oKY*bCmb;6t>*w!w71)*!dM>BWgP_*ydrP%@TR1W8_gibWaA|w zAKu#lSr6fOwY9@*akrG#7xIicOP#Kxj|4!`AWa&Zz6t zDCJ2K*>|+#kN3)g!#=2uK;OC5G(PL@LUGt zH^*UcqkS`(V6M4_pvJ$sWprYR}4>~@C-$qi#^zC`mpUpMLpFE#t zH0ZHe^L-O=$xmFEC3R#0RL-1uM9&u$nGCHOYY$JZ)jYOU9LP7e3v}qsLV;#uO)pKu zHULNzg;$IeE8-^vl5GG_2j;c!S#>qn#XrcELWtB~w>YFP*vh(@>Jph^Gz>g-f?Dek zJ2=^;nOPY)gDBbd7(MIf22+Y{-~unJgBC^zJNr0($(Ff+G7-Y7dcOCTS?cy2Vz0Ov zcCC+)r$M1rL<9^uofWy^)*2{^+{Xr8cAQ6yxwPpwrCK*({wUJAhIYD zjAXYBJY}&Tuy(P{O~c+_eC0VgD0q)?R7;%3b^=9A`F6);scao3WiGDnDJgjLW^f+i zFu~RZPMJ_ghJaJ$gtRrmkia9;Af8xre)K*Nxp_NqEBagHK6i1pdo02kbKsADdAm%? z?mc&26m}ZY>lH05J?Bgyj^YYOpJBgvVIiv}DKLK0nYr+F@Kdbqs>l6xr*gE|lV13? z%jLhBFw#v#-y8B(cBk0RYJG~F{$*BX3V$25qyOcrjm%CAcMh3EqJnM*h?SZhm>)>luH9Q>+Z@DCwlFgT*I?(1U2;jQ-Cv&{?V2p zeF+iYW@#`~6(B^^4kz0j$eVn}kU0(NtHTq$gPP#h28H^fRMm36iBW~D7Rsw;D5A{@ z?nGCzu;stc0)POM>Kc$E0nUR7AKpxB>nA=&&UJA3!h7k)JDIv#P%W7s#(lxVyZi`Gg|U(O?0TzP%thMlVr(<$5V=FCUb`ez@#%~xd9ZA}vJKL;+2 zd(Nm$zd49=JvlSk<~sEUkkbVRTQX)C-QWRLnvNW`2hS6_1+a{J85R?N?;Hg^1EPpY z@6F)x5#zo`d7iVbr((Y@IHrT;g+?+_$~l9H+zgNp7?>*1#t14Ea+7L$22w0 z1|({afSGJln#}Ue{+xw2<%y!rmPoNs4*Ck(um(6K>ZOBB%)?2q@%20U@s+)KDvWUpexsklUV$2!N`EW?+gXHFEJY%ifDvRNT4RU zqObW2G306$FQ{`qiUJitMe!#bza805U%yZ|`bxtB%T_pVm^$#!E*H)80{gk^oPNhV zLxc2X>Q+l=1(FqN{Lt+$q~C7atvXZ81o7C~AcI-`htfWD1iL{mjw;EgqkrY#iDM%QSfrGqs!xF2& zl-TAWDQ{?a=MXkGZtEaq%)mV9O<9#EJd&KTbXFb049+*x1H&p-cR?xfA)2PZCv zc@OI{ck;_#lx^b%Zs0gVkvI6zVUT0VdOi&W{Vh?TTeK}WuYA+!0pJpyxR$qK?LcfAG7P07aN~o1DJ_i*vrzcPHU+^ZJ7?&@wL5MfSY4X0I16d?cDLc`)R=cpc_-sb| zXlgHfzni}<=U%_QRx86dzR)(mnuom)u3Nz0uRI@| zj{3VKx}q2Qo4j-g?jDrZX{Q!wd+>a~)`M0k6n>WWv^0!-?Ie~ppU8tG|BpYEMdL~i6B5t= zK<&^ebxN-6maKLa6Wg=U)wj{Uey0kS%k!Dn3k2|aWSXRX8b(!2&BTJF#MyKL5Uze` zq-A|R)zr{{nTH1)y`a2-Sh7+duLvs_6bhVwm2qq3Vk^>Bn8FI#Cs>}VeU6y8%|P}< z!ra<>M{ec!i23@VjyuaeDvf*`A*Kk(4oS-q*1lbW!}Epgg6%t;xkJn>g>ga zw#y$1YMHs0hg{@`gA5BGGDR;mrwN%aXp6Jn_d~n$6y_!0aTezZk$=CEZyYu~H=6Ev zhJ?bdld++YPT!p}%!I$2+f+#@s6a8h+n!HGeyuies;k_+%MijtBmUbjzhdn@aO^za zxBbUqx$udYApZ2MsR*5o9RGz@KTYywL#cxMO_6U_&ZSO3j}|Crl`wC)mhdA7Xl{*I zn|P%N-5Dfb;HGBp^NCttset>@ymi883w+YpI0>D6&~LD7q8L7xk-CAthVJA0&zi`H z+OPWvU&t_M$D?7>cBOR$+xqOi#yClbTrZOJF>Y3^A!!EdzQKWxQA(uTGo`7bhSaJ;bH&B+ zMsjLMk7yXA$22fT-6*Y&J`&ta)R;dyU$M5hK(D^;N^iO@)D^p8YIts8q|W2@6UuUC z)*f$lDa&AedQMsgXyvoC7sHTjokp72`or0-&Mx)rbe$PS0a7w2{COR(1)IIUP2SOD z#-FA8{<1biULkf!4gLP1FkN~*Hn!VEXfMrFz(QFqeDHM*icl6}r7e^1B|0HP8!?+w zqc%#MO>+GpI3fhY6l2fWo?rjFJ+ z_c>OO@lUE?TpuTTTd#7t*{WZ60M8qe-m0w#P~ZpA?tGr7y(9 z=Fto+ITAJaGHyb3L48A}5VqijijK!Khe$UqlMME-zU3K&kq&hq6^CmG6ks9V_`! zb@3wW_%c#sw8)_zyHQ}iXmj3=NLE2K?{>Tu&UF}w_hal^OM4hS6N_B#DKxk=!2$I> z$~n6tpXya>>}VxfHH^cKMz+0PeKT_;KC`Hyc*r-n$f$5GSPrf-6KuW4_k_8t%qoma znn&p#YHSo0auPm`Fn;d{5uNUcF6L}T8g)(kphLVEQ-$|7X&dIzUv@MouG1R6A-^`? z(Cx+|N10e~H2~bUDjlGg2n{hV4kD%uw$!cX^5C>B4t`gCh(;;rlEB6|xJT``#gN$# z58L_M>4>j3%R3fks`c#=s|!@fb9|>4`;f6%%7I5G|D8!bZG<>H#nVBy%^)l$%X2zR ze?cxo$Hbmj+lWT)<&|bf!)4_rS=(X~$8mD<4&e~W;uT4m!bQSoop*=XmVSSzzWPi# zvFWDrj!nTc(wFyNrJ)_;O^N=D$%IK?dReZZUnW2*aI%D46c^3D4jeznosraY`dl(bcx$1$?xIfGin{Z3A1$Wa_D|QSHyb+2 zudhYV(Q7#n=T9wlS)=A0%Za8sqh1gZhj3xWG*qya_SJY}4*lP6Z z!K1luT==HBC_T*T;VPd#s^R0;aH`irezLH_efUjH-O6+a=tW*~Bq7x8)J4!<~;Zjxrb~fe~NkvBI`nmnI zLn+zu^e?>BX&mrh9Icd&d^Ys!vqs^&G;g-^o<8W+@X@i=l#`Jc7p4La=oc(eKv~5xsqHfA84zrP=(ey zlTw6lbenlSI{F%%>OfQN7^hK*4v|2Q@39uRCx>uF^vink+v7< zj2@-9O;o`k=>GJ^k#5FwL92JTRx7;&Mn_w8!}t?@>%0-FMvIF1+KZEo?CBMqj;rBv zzz|hiN={8=ge|VgEX!GiKp58RMb!DwlTiH*j>MX!M}A0BZK~L_juK49y-bvl6FIBS zie|mZ7(rW&FQ%`&{Ao61p@%`MX4{t+aO$tk>mk=#CCkHtF0u$E=Rg& zv`uE|S1#4bE~(Xb+cZX*3?@O#&lul!3PPDUipk;?=9^JTAG=l5>FH4HXGxQ2pleuN z(Y#V;XyxXFUl*h~{Yb0II84BesLU!|i?Z0;S*=?gEn6g{<*2mGsa*6rpI=ISpc$_5 z$T16%CBIg!fkP51_YbSQK!>uchwvan0%D|Xlq`_S>}gigYViyNMYH@|6A9t{X;?%20+k<#zH9yegnzj zWoF&CAWOW8blTq@I$ zssL_2U1;E;$Xcr^uSr%cdc7Gq_#;xBZ)dG($~4+Z@wngHAA;|}Z4Q+w;0Ra@%~?)s zR$F})D;>Lbrz@%t-glPAAb!~A^6F4?fJtYEquc&+(M@wmlU>zoH+foC#Z(VqQO#Tn z>V&se$>;DMF{V0+7pJwPIpa70(PV$W$Z0*G>o-zL&puOH*#O^IF$K_6t;F|@ukQSl zKH?LxVfH#1x;NSH6=J_u$2R>z zrL?~%OJ1)q5Wm}D#h-1Fb@XmxkVPA0U0X5vh#!+)PXhn#K-oM)&1rPCrEk%mrkN_s zd=f|p1$AccZz$+sgqeF{lRx!Bh#wClYnMi$XhIX&gw61#Eve@;3J{{!j|WDqG+a5m zD$0jhi$kmizfK($clL_fecdDqf;UeliEap>m;`tiZ!S(Xb1!sAXBW5k(NuR5 zSdPEr31qtb)ZADCb?a~w!h-*7T_B5)D5AW}n>WsK#pAX;gVA~gQd-Zk{PGjph3s0l zY}e{><4Rz?wJ(L2&SXig+ENUJQfMhxnIt-X>;SZ~2uSqOQ+T?C$k&ASdK{ z@pt55sEK8#hYoY;Iml^2DucA)kv#*id5O>DPi9Cz8umGCv>9lww7IC2!cos!qZIwz z<<|l=9#5rOxyWk~)eE-PZMb3v{`zXbqT-W=wMw z4$zN=9J8BARd*}b2MQHzRxUYLfoqgx!uy0c!%B>#Sd;Z}4$ zfb}mH(uYDF?ufN+Vmv?P`*$`aUQC`J1_Z8r!2`|s_}nVOdOg=s_Ac<3MhrUbhEy~n z4*?o<5)@D_Y?<$*l1sE&(X;UBB{^gK7Or6E*ZLt-d&c!Pi-MKBv|h5o!(@TdP5I75 zW%by4TQ7}q4m?$FaFM0Fos#LG-`PkQdlnzKZ`Gv6l-sxSab^mLPL8WGpOCXlKF6TZ z5LW)-N$69>6i&_~-1p&n4Mq#M*Jbmk2vi)1o3-sFqnF#et&PQyZ;o_Q=b1woDIqK` zYs3`Gw))&W#pte>nEXj%^EONp_?N1Il757?;%Zv>> z7Lp!0&A>)2<6WES7vgJU+=pzyjWi6BX`N26$hCknEKEc%Ta-9tvZCi7G8riyGcNQ; zboj!vlQzVb^%~Oy$&&$+c64e?k5;DmXox%Gm|KLkadpe; zeBz?9t}IHYElGD#C0pDe2i4gaX%|~rQv7~P^2sT`EE)|svjG+N@GTZmQnRWWu{ z`01RQHqWpym3tux`^355_xmG}-8n-ET?w5`QjS2ZD-2mf&gf?u2Q@n+1N5x)o|)l( zn7T+!O3sHNs)j;<6>3L|r?n8i%gx#1D>>_4QtBSCE}wELyT;TvL~|f`FOzQX!y8rJ zSV=`#qN~>0~sOvmS%xQQYsqrYw8p$idP! z(VpKaRs6o1aUkxEgT2+=%*d{3qLalO33><*Qin`&`=zDqxwr3Pg`aSuKBzp0&`+tk z+-`4}6lq$~^)L#Fw99r6FatIyLb3gb=k#&CiFY~=E!4V_S)H`Q!tQnsCwfyNGoR#%Mor z+H_+YbCbiSp-FqeVG>d#Wh}lNWj2a>Ca;($E4osbxX!lF@@61@6yi3Hy;f(v);CjH11};rE?_2i?nPVY_Bjn7k#NGvpHj+2#Gg8`lX=8<952Tl>l#`tpV=#6@U z{R^ypPb20A)!rA_$P-hb32W4C8m&u>R=QU#WMGH3RP}J90~?e9BPgNq(5O@)g2)oLipxW-W{w?o zgHkcN{E9@B(?6a*hnUVZGkEFHrw}H;&W;`~7#v)UbUbccjJRgcwB#+9bHCBFVhq$d zHXUkGzSxYW155r)fknamBD%aE>e0YvoWDd-GnF5KgKV3|lZDuu23vP(nl!RklpQQy z(`3?bi;76_ac0(SViN<_Vzuu0n}K23KBtHkUU!T2<=R>XUf$w6(4-H-hFuxL_I70; zG=NM?KoRC1Ez8~M?wdsl+H404stlo#^aOWz;)tiM#hg z=3j+!b5x8`k|^*Lyj~b9(p(JjD|ZzydJ2*iZn+B%Pjk&i%L;53A~kD9su215i$c?g zu#NV|p3}ejT16qb*WX$&Y=k#&rsxN9B9|3MLTP$chCt|MlpbOzF z9SK@)m^|2(VI+SiQ!Jzzsl3k3vEgqv_;$~Vv$I1(i^esd!is8l&*@y5V4T#KvL z$hwG4qaCT~GNPGCv%rBoVgM{fz}>8YjWt{~knd;Et}pQS?iK__(zVQmpdx}_NTJ|T zE**-Y_yc;BfP6H83%^|jF5Yp0+M>rQxq2$~jvo{IjuCRnINg>0(UqRyT87(4{)A>o zXk*9lESTG`ws^BIG`Qp#y{&w$Zi=&wJ+Khz&(z4%HT|r?`MmaSzD+{l{Mrit&P~_W zZ~8RgZ^`(e5%Pv$kiwD9_sDCzf`rg1<=hWwHtLA5DYp#pNswc+nm#)BzJ)M4Ss`1G zklW6jt`7deWra8R+`=gRC1R}}3tPcRfwgEGg2e2Sh9_aC)yuiPnX8I}t?YwsU%!%P zAjHa~ea6GtYmY!S8L@V%hJ5IXwbLz1AOP7lB6uMRqMIIb`%Fc+ve`;uG~W2zO%-75 zYrd9`w2GSXOgLvYQttvUTF=UmUw54b30~bI7W$^troOYo9_4Ph5z;mI!*34Lg%!~^ zLPLR>%P{eOfoF1X~~J;cUk`T-B}OjhpxaGmz9;&_#T_o5$3 z(vpa3*177Tr73ujdC!udU!gd=$@L|LD1G6yS?L@j;JWiaYA^a^E-Es2p@J zkgVg1hN-W{8DH$<@&-BEGLR*Wlf_czfXfdq4ULWpf-0w8x4827c_bvoITEIGzQ>66I4fWvaq)TJjl` zuyMu*Ba$#nTkRU#c29jiW^VXA)(kJpg_y$G>tYWJp7I_pfX@a8W9{PS#*_K36)Fcj z!mRGPBX&u|?j>T@JGBX-0Vb^rv;zGRY4cbAxkJ7;$3ApKnwf(%u6`;pXOgFn--SOa z!Y*#{|8)41f4~B9H?HW*oN^-}P$}YMk4+yKc<1;w?sfjQ0PkZ4ec3CTL7D7!2 zg)ofbbdF)I9ai(f-@57LC#2FB8KKjU<$_Q1)T)B(ED6t&hWky3$%Z9}gT1#klZT~L zLo_;qXyt7OhwN3oZ0Rsg#Y(aazMNUqQ#8VpRy{#}4vTz9QQ2Ruy{MjwV|Eo;aADq!= z*8I)C6%NC-XO6x^(PN=)&$tvhe*!IAz~(pzTXAzJ*e<96e^)Es<|yWc?`y(#CAYUo zw3i&C#lmc7KOb=Xq?zF1Cw!n03n%5Yca^qqX^L1Fo+kap-F=Zx{buqQ9?o;nig&vAlrG8`5%045rI9h&82d=_=8Mg$vk$w zZ~~K}L#C*kqBmOcZdG0aX6m;ylceecz&%u<08#1hzcB1KJo1c{-B|KapW)&M)*8IZ zf5jf3lQbH|{+K9h39l^0JBEWpTx>$>zC$6~G3Ni*iWW{lfqCo0-QEa6Jv}+nC3m{~T%mMX4G*|A3YpCZR6c z_yE7)6``hgWVDbIW|&b+0=^e#yj73p@kizhGd}(QocrGYQ{sHmU+ye}Ntp%w<3ze# z$lm#jp>iQ3=>@r>(B**D*(xVIX+%x9=c8EZyXOVA_B|51uvDSC{oWZ`UZKKGVO|+* zLKv2mmhOayLsF_E{%XYhSQ1*&O8Py)sjaypJs%mE52sg1)0>i;33(4?sIKZ0JnJm16BX(mRzA)>OzrGY@O_vNb<4+n}wzHM|goB|71ze!FJv*L<{5TN4i zHl@E87582&3cPb_hHFukCYX~oh?IUNUhedp{T}C#{FboYjD)BtB_wk7^gdFHZz><# zID_5$Dd`9nBgBT?xg1HYO=VMN(p=&h=}~<&x7q05X8~*rV0VTq{$qFf@b=;)NXSZK zCb?T}mrrwVAej#p!kCCgbi5ue8auwrD!SE&zr^>OqBiE&MIGlJIbRYZWJ{O@t>UG- z=olpMU=I@R%J_Y089Sqf#6eh%7e|Fm1Vmxj(c4^td?H~RPx&1ou+B>?-r7LC8J?>Y zMGlU_HV?6FJhNwjfRfOuod0Yy*GI9#&UO#>0~Tawj%hz&y#~=E-<$dj6Q498W zjWrL3?8jB_W$n{A>`yRP{+i$B&GKpP^}_9%#W5GF7QXQCeTK~B-%&U)wLF+_>X;l1 zE39})t6+ieUj2bGPgc{nm5pz<2RWE3xx@|F1EQ?<;ICNSt`NXNT2<-l9KKKRMy+t0 zl-svhMkd8m-#NnDSz`g!k<+>}CC@E?HW;Uw2NU*$=z_>7gv!l#pwgiD|+(3J5 zo64%(Bdl05^|0qrVnXXwLabz%mX7LiPPKFd1hIXsCHg51Yk25Ed-Sm1T>ZmG42blG zYPf;zP}$pSD+EPy+ctZs`rw$03Gkj53h}KS$Qa^c5c2lJIM=}r+u&eT-+FTIN6GG= z(t(y6FnElplPt=_tQIwyKA&i3F#Y$7mzWo}O&DO3D)_Ou0#T#5d#c4b%}EJeJQ2dxLJd*3q{Ak0Phi^wUXRi?2FsH+Txa~%+>Z{im`dJ z%v+!^mnr7;acT8SYv2nxaVbtJomqZsi}SUrXmRtrF{&Va{$hOsX*2Wfe|?}tkNV2S z^H>&y>iQ(52*tYs-AL-NT#Nn=a+{Bf5g2i0)p4>%#Z^g~c>gSCwp8AW?A8nZQUWyD^%B_avyOeD2W(_z?rHb#B!#}h=ea$yK<)K()u#C+14tH zF%6yzg+pSlq;2QoFy+TL5hILfn?QB{{!Fii+VHKb&_x{t9z@uK)lVtcc1Z*AfE{BJ zZB3hM3JH3}^EMc*?WccO`lNq%#^sK+Nk-ySeWCfT7v%}YmNctdXRI)m511EDi%6gd z%`S@Z);#)N^yVYqYl$55s46NhYVl+i@gh0IDuYZ?f3<%Xcllf{95P@K@lDI_{bASc z>$~4GGcx$jjp(o<9H!Vn59`T)Brw_e!c?7+n9xLf8KU#o@C=<_7P=5Ju5Jq?GI?wtE$)XQs(8lT7;~{ zX53B~XK<8GIXcjfr?uHl${06=cn%j}llCXuv%Vtq_RS0mJ zYGrEF73|sXXRnJ~A9Lp?+0L$zRR#0qu#PKAnngCn!3Bt&=P?vdH@-q9p}o6^k$wWU zJXca}z-^$kV=?-0OFmKa=n)TB`Y-A>Hh$@Sla}tb*caB0?0Ol@E10RQ1P(0Y)aBoI z#B2=J`^Qlf5E8MPpwUo%nD}zK*8J29&pAzET%PSjj7_TF&A*q#XP5_lrJP`B9af^QmBuL%Dn2|J_8ANjz9bM9$7Uhr!aUOK_Xq z%&%BII7uFEq>?K7NY!fvewkGI&;`tl<6Bl(hA}0lKSqTA*&mi*fGK!Etv2abrsg8D zbp}d;4yJy5v^P$Ru8o!fWp8AJ8Qcvw#?tK*vjpd+{Eb8~oCAweUudfHMfqw&;z{{C zTkj2a0@uL9z++^d_UW9Jso9OKpZpwwpeJu3EYlwTy^^dx$Knh*J#VXUw4AofJ7MyO zY->Of=Ug&>fWrsZj*XRNo5w!m34zYqesi&_r@epAAeSQB@M1arD5hB9PrLmOnI#|Y zs~hOTk2Z#FZEaM~V_Q}v&$#4Kk5|PBVw&au(~JBJYyQCQ68XJ!9+@<PJdrkPl!GdIO{8~oYYWKNkHoIGLz7cuwi+!+IM0G0hv(M3+2)f!>rWD< zFopT0_nxVg!l8G#wzg)ljtloSES28Seq#y3h`4++*mNGGX-c#+NKditB@?6fe)oqD zrSL)T!>30u6Ubd-#i5)M=N$9~-Qjajp^Ew4`ny@%*|kOfF?0$~!&<7QAoyV&(-rhD*__K2v z<2~j-dyCuQKhf+9$pjSh_EIn09_W%wJ!k!Y{!VA{)yj2~M?2kZg?~ zJ|~)^CvG)lzT)`YPk(*7eBL-Q(%lyf&fy$4mgEhbYbM4h^uF>EYYA4E>#{rgS9l_a zjmWW}X5@)lpN5~E;pb#l^$K>clm1MlGL#C_cGJ*FCb{A_TO*A;Y-z?@ zFCG0MQUnt|$aPjXoo>QOxJOhDGwI(88bn^@NMxf?Hac0#z0h4XL_45)_#zf7|LaJ} zSTsB&R?QwVCWVWUI7-;SGUi$D{}8(WppT}D_s8cnxp!w4ofy=|IQheU{FYsl^tP$Z zznj_PaplA3b+|HaohU@x+vmXn$Fz?1_9V^Ys8(`qhRFyoY$jw$_i%M6bN3=#eNEC5g(enNV$O_N)4z3Tu*CS$i& zgV}q+i?RI5<^&_sWQaXhVlmB_*k~#3qV16V|AVLc> zCWl{vWxNz4`lih~pGQ~Q?h3P52Q%X#k-^7E#Bo2{~cH>JKS z5H1rC^nP?7)heU@M@*NK9phB+|o%wL>hG|%w6#W^vIt^aOXx1BeOi{n#h>{i>I zw9xKI=1=Bm_+DY@zCvPfYxm!h3fmzDm@`fkUL7sVPsX_Imi)b!dg{N=5NXNuZ?GBZ zwzx=U*H1QzeJ(}(AB_2(dBsS1-{!2(u-;lN@f6w5*7QrF`UBX zdB(R6a~Kxsk3y<+G$E#u^Vf3I%N?ITP8{30cd zhc2bK%;90&iJgMolw#G1SxV=JY5A_`0UsfD*3Gyloez3WE<7^q6aAUmFZrUe@degj zC_!VIvXAfH?Q*-|92dn@AsG&|RQj#v1;xiP%+G8uzq_!y?Eo=mxw}8VRM@Yla!9AS zhKktT#1t*T;S%%%S_6Ny2V!Cu48X=^3rNZ3#E# zipZ*O{IyN+zxn@7cCm-z3hOii5vSEs73U_2i)n@DzbRL6{>pDyex)Jp0^GzFWxw?H z`TR`2@S6$==4R|Xp9TTt5WY%7%5wRN(^m=vwg1%7P6Nx*u~|d=tI>-!d>0mfiF& zKNEiX-@g7l2K^y4gbCp?Q6Qs_ep4s%)&>^JHqcqi;P`ZjF+f}7XUg^bWPFQrDtYa{ zaFgPU{?%-TZ_1Q!yz%CX&%|otkL>=Lx!-u*-_N7LULTBlG;!<3_xs`xu`nNf)Lfx| zfKAmh_Gl{aNB{o?U&gn#H*i>AzT!ub%Krqcuaqv`YSiDP|XN_DAt~@A>YF{#O=9kLv9ivxX{mL@xWp^Y7kM28+O5G{-U$A7(B ztJr)`$@2rQs91SQQ!Q0tv5bSCU+&f)q@cWiiKhm!(%>gPeLw{>$G;0sA9fu#_;?RD zF(CqN-|M>M^JrSm3?m3jOmK_S;lZB&ru6ouh>}K~@%2i5Pi4V5p=f0yL^VejVh=cndv+<&UB*FP+8rxx`aiaqQB4ij#tU)HYZ8EhV>;9N3E zbqC5b*rNJ#uZ)A2xSmEP)vgMva}yE#Pja^`X0(W^-mA5{=(gjZJDaGxXZtgukGIk=#leh|0ZPrS&BPdi-7BG4sP&d zt;=iWuavK++#+45$1KNs9ZUC-76ZkHB`tExTaQ}ASW#q0){zjlDc zH@bJ)H5nb)fl8B83BlBg{a4cKNLkxaepEZhfNHmjVR8>f=7fsuZPHsB0nAQ2*%Ijg z1To;3%`vEF@wz29I4cq5($2?XRtpMO!*X-3Q$LG|+57T}KGxU-^7{g=X4kZ$9;TwK zFoZoHzX>Br*xAD$ib^Kg<};^BCT@O98tiN_UqnQIJ9qMzP_S<X9bn~)+2MOWb#r`*FviG%V9`LsVu_sqp;05wd9kjn?0Mv@C?&S({>j*FLILRlVa3D z@zY4*NxYn#rB^9V4sjUG)Q6wOa#PEAf%}OJhHGJkdDzf9(dhK>LekgVwz*yF-x7N1 zVaahoAM70w;@$btT1YVdM+9+ndXrBDY2d_s@h~Y z8fx(8R=nl@vcQDEUB1tx}#2OTtrTHDewx?hD) zXm2^{d{5Km{0Bs5rL)&E-0%~T{TwEQWn;Tn%zMg&LJ^sGU#9$TzrfrN zDjnm5*G!`BCOP_Gm>c-!)OWscg|hSA85_r#5O~@8``UEO`ppmS)p{N-Nc-t=g2Q-n z=aTz~bGhf8b`+|HZ(zBde(zN&OB&`>@J_f}X-80z6YMMOxXC-p@)8U4`;WPIg&Or`eV-lh|aar~c%Wq2?at6-P-O_}HEQ01NU zn++Y4!(;9uZ6A)4zWzCx{!`oh_Aiux!Vv1EJpl~#PD_Ru4llw^9Ec+SAnEdnK=I}7 z)#A@T%Fp7PXxQ_q^nUW}KMaQGo&MU@X~ASsQ`|6&4ERqH{NBCUZ(VC5GNhvw+M0^G zi(!T)ydSIX!AdOmr-G=2MZllWd6AK_%QC$~)R#uyYjJUrY+iajPSm0YzJVu)gJ;uLII^E}H&pxj;5rUZ`gJB0^Pv6%6L`H!;8+ll^ z-_96bsOO}Y&(LYCqEXIc8k?91`hY+F38?)n9ZhjISr$l`cTVi_ z}i~`BpPIO<5j({AG@$+L_6B|BcbU)j21_=x* z^y2(>8#Fiv(7Fzr6knRZKGEU!2{zbv1>q%FZdfZZ%%AE67nYx3qPTce4+@3Ss0(Bk zGB%#M$s_eCg8Q6Zc*_s-^z_tFRXyKPU}I)F`7YHdnCn!T3*|ga;gipNev>m7UtV#r z<5@r`rxuYf7;HV$z(x$aF*g?+e8&F5c-Cl=G)65Ef0p(CTsv76G3>s+h5)X*a(8=n zo6#o{y*(?i@o(XF2eo|?fWu4=1QQ$bcxJa26%}c8Wf@kLl<+lmbp@?3TI}TYAq3VA z8^;$$8^l=*-aR{X_%JyVi5zrv$R4d3s4y;8g!O&$!Ov>a&-M%z{e3~vRqx8ai$NE8 zU2`y6p78l+zMsK&W%$-tJMF~t@#za@Uk?=_rbYJc-|y{1Et^HX!np&Y@U39uhm2QZ z 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
xpV(D z)5O0#Apd%zx#bb6H0sgJ**z2ccLR>oh8z!w%>d|;l`qhgKr3rF_I`?OZF>L}7;abn zZ8xsbFZS5)B8gvs@0rPv z-jeTFZGM{u-{&y|G=*zCLgg1pG9Y5Sr`Rh}6N0i|0c-(c zTh=8OAX7#tz*uTego0aNXB+T2_Wf61*0)kghzyRfOPjzm?gaHL%DTU(2;u|(v3MxJ ziYwk?@6M?+sSHskn6Vn~^UXQd$SV_;b`&uv=p8;o^fn04A{T?xl{n!RoW*vh5+j52 zxO%u1USI`ci(EdZrr1j{+UmC{&w zf5Ox9Czhw%Y1=3VaLqI8X__AN2*H}29$#owV9lEjd%-zN&$R0>U}egrGku$`I~gn< zY*Xn3pM1QA#_D_Pc{O|tQrVN!)SSlpo)Pn)tYb}CuyHy5lM^UQdMdf(3FiGI5?BTjls`fInT7^e;WX7Whzx?u(i`sRF5`p$w~VT2w?BN(Ptg~vO(8xb`;!H*c#(M zhRR|-vToycx}k23=mIg*KXHcZ0@@tJ=Fcz8EnR4c_Gc_S_-65c<<-H@z+`9y!Aet_ z)a5USgqG*E+k_=34e~alC@O?c_>k5sAaY(m2b8Vaym@a2sdyiK6=8{S?jc^*3OML| zwVrq`ThC*SKCQ3FReW(tqF0?g_5L0vk!(IV@cSCkPF(n zI6Q~K!_!RF=lrbHvaR*4!ZF2Jnru29CLLYcd_e9lPW#-9kIrH8F4q%VdFY>Xm=3a+ zbiY=Meb8=ypydq`*Vya;pjQZp8I`PvF1(t)X+_AQRBdKoF{UT1wB0G1dfAY1Jb`_M zLGJFQr#sIQ(eqW5Mr*^)JQj_E=Oo_8mt*?gsxJgQjH=`5jQawleGYI(GC0VO1c9x! zbX{kv0>?onTY%Wm{iw@ovq3;dlJ6PyhdRCn&w#;LVfJy0-0ae=feDC9u#v!T@Ei zOAc*F0F_9&cCv!B7u2-6@E82dxeq$ce603`?1H^JR)p>P-M)@R@DXC;xp!yjO!MQ%f8|( z%q+Kb$8#iXMaXfC@yw32yKY_t^TnmsU+*56??4x5d@c{c>~S(!p;J0riN1mF0GK~*6#|K!jqq~d!geV zudll#?lR#D>I1xP$3Rm3#0+qx9v>O?uzxBPz;Byk7E@GmG;Tj(5iv+gZcRA1Bl-9F zc&s*d`m%dgi#QNN9JwDbfgPNEXjJBJHF|kcuC5N+IXIS+i20}Um)sfJ@Y6Cjmci9s zoMEeRg?*h?^;JiS!(~5@H+y^o4hpRWS_$-{gQl;bE&1QG00xjO)u}o2@Cp|;)&vOG zFYNZbWA`SX;DuIaF@0pdP4xoS`=D?k2p901R7;x~4_qZ>0&JlP6IL$9Hpa@MT{&f; zE9ayJW?I#-UFe5Id6Z13NRoxJkCvLM!6@r7IdrirpRs5uW47Vi@%NLtx1c?;oLHu) zNeemZ$DuCNy!ugxY$M3B&dyBi!BG4?05Z@t|D3x5qHgB6!K?m$^5>tU%9ZZOzdrGv z&tYcgq+;;tWKkZrIaGAP==Xyeu6g}!;4^tNS5~(@mZ%H{|^O+}rS&SnbZ5;s_7I8TjbvzfbGA(CbcXE^WiX{c6rM+K&+nqi5 zCtbNfvn1}&tf<5QztJz!FYG=)WhT_X-zk|WSWwcX9v~>!!)zv&@fC=tJmrkNqa2%R z0Ti$ruCF1DH~}|)e@gDz0BH}1S2H@dyx3rOpE|c9MT_jog6(CMYr4I0*ZNXAjAteF4Z9P_Da?WZYQdWKTGjFWfL=5DJAWkp;`l*4| zLLrQ0&wFdP_AIzxZq7>n4g3@O@@>e>-ew3Kk-=8GGd!vQDUyy8SDHWNJ!m-*RT9IuCfl?=Y6 zo@4Z_Np07mH)p3dzXHeb4AQgm7(u8McZ70}+*Ak~2K}da?$dI4$2WT7PT+m#ri6U?2vw2M= z#coxdx0mj#jNo5I@G}$KFFZ3Npy)nHD(j+kn(8`*{>xclN44 zLw~W3v_4Np#7VBYwS*#j+D*D>b^OY?t4RH+-?cTsB`5g9pFD{G{++28$GF$DP5oXu zrwQiMZ}1L;2X95L3wF8t6}Jn_$nVZ+UhOlswNGmS&?F`3Xrb9m=e-$wBoH%9aJhKI zr0_-*(*=${K2)>3qhKF#?lX*?{5wGR-`?{7!~Ut#4<@7!c&WI)0pIN8X74Q_4Mk_* zb==srKBmYu!?6!H>^Qv}BaPG_;I5Cb5^y+|a4GNh$D_~w6H58xnD%@N@)v^aT;FgF zvoQrEVD=dZnK>W8cE|fO>*HTg`x_XGc>S3Fc%#{yS(4~EMX5PVllmTxc0s?(EF-p> z%6BfgbN-;*){?YC)W>L_V$VNtg=s`Cy{u_XLf246Bt$OSV#(Aw)o>YgpHeTaquz<} z0wpmIIQOOK{Cs@$q)18U`6v1G4Z}k9KZH}>6Uj=6o?7#k1)#FYtL(I)bB(HxzR9-g z^su%b$J^UWI?nUO=%;(1wJa_=fKl`8DJQsOac*rA*3-g9Y|Qd;bo1~fW*3dZwsyA* zYt$gB?`q_cbBf}Ap(y5^xp}Fc(wbeP9{i7}(pPRZj$^!7lEz+~WjEHRemq4&LUiu?yHiJfJZ)&Z#+m1ba7h83%6pxbJo`&Z*OpXa14H%e@97)HThyCjro0yR~9YE1hcLbs) zS4AEq`v&G}h2+O##z#H_RIHbR(U=IXx~gA~^4sInPS8$&)r?6rt8Tn2EBYQIA@gy( zI+-(P9G2D`V*U0N3bR;HYov|!J}8)qW}N9MBnUV@fMrj}55$tk`YCS4g#H|v6tXEK zX7}SPm=Rk&9-U_hM|_3{J@@yzbwn}%&u;}x#d~1Wcml5HGh!SvvY^G;sAq$lj@EY; zU9SnGB_@_Y&iLe?y}W3Nx%8}Z&Gey}84nOG)Y1btN*fOp zvS!+}wGQ*Jz4TjdOtfUVVX3D>p}Gh~HR1u?QLqc-iciYJ#kyiTdduMlS`Pfr1kc9Y znT4574L-%nF;WhSqQ7#~SIQ0KVeuD-Qaiv(Zcj;0F8+3e1dedr>pkSj}9p!*?|S z;VMk^n_wl@ryEk2!TKPcE}V+v{dz*W=AG=BQ9v=5FjbC!ye4RzL>iTn=kb+=%wWU+ zNtRPU0_Oco^xxSv1~AT$Kq(-3B~AJmI86YbY3zS%a&ShLZTd6rDQR&d>KPyxgk{1< zSeCX{NS|>_pH?x52pwKu$Gh%qG==#+tJq78SowrEF5Za|ms>zFzl;(sAFM$_j&Ii4~-Lb5A2PBf=mpLe1AE~D`sL|irgwQWw7P34PsuK~&B zEyDipluqbDxick?=dww5_Hn38GDkRj66K}BzBAe-mLaDSr$i>pMfny@=Fpl5(X8`d zi`~}5>m0g^E!)oo@}ve`Z4@cMf=t~dq5L0qeg9i0_5Xe<{~z=YOwNokM_Xa!Jo0xx z*N`EfL4gzE;BQ>6iMj=f?kG^4!JJ1B#XxIRmAh<^<$VKK zBrD^0)U7~vuOQSSR}KLG?ug|ek;EfCFaU(Lcy2r+g9oC4k= z#8w@pc#ZT>eSJOrjYRmA4g+lZGJRkY!2StcTH6PpdYS5Yg`=KT9t7x0O&Y!dCO#L@ z`WijS?W0ppx;u7O)S8j9L>z{u$p)~}kxUai!^~aEJ3Z}T057CyZB8}i03%c4&#g;R zwls1JUa16D#a0>IqA#VLzyZ!kI|b9`cIbL2IXpC;fi}R!l9cJw6P7dMx6h%QyBK?# z{yX5HW{wzj#B_<@PSFyQurw{F+7gM8IizKfBaOS&}Qj^A|OhU!x_gm@(i z?-lRW>~CX+KAaynm~HNkJCxx&6a{kAq{ymHyZ~TMfU!$BPD7?Jck4^HxTPLco|#yw|#=QDbmaU zZ7R>Hx+At}T-Cm0AC+N|Q~5=oWw6|CDz^&f=^-EhrWx;DbMQ{xxH5RT12fVAogDFppzG(PL(cCu~%Zn>64ecJs0F}JQc%2Hy?__a_Tg>m| zxTyV-=OARsFuPMZUE@@`|DMZgg&80R58V9K&AF8MCWe6!vAcH&dG{=0D+OxuJI4RL zdNU?#hN0g%As>wV*LJI_ry6{J5Pru=+`A`+vPUhz4lBJy?PR!+BL-x~}!7|HW@tDo86zgcWG^WbuOgUUNONvW9oAW+js6&p`%RAH%%9if1bwDH~t9od=t&7bOj3{;yISI@P2E)O84G(XmhJrpk+p~%Hw0s{%wod?>7)Ewf z-qHF_!gqWqLRGvjR7pp%u#C;x-l9u-kJjC3t9oyxB=2p=*k-vlb-i4AP-b?tvTSL4W{{Sq%*O>LO>+WD%u?XrIAL3QITlUfC zeAzWXF1hG27>kHd^sxR}Zvu2Ut1ny}C&**07@Qu2HNlxCBl!d$mUP36+I{0t2{V7% zE8rr}0ZORAB9xppJ_jjOfEsR8%Ut=5SUwV8Bjb~V(I@^E93jyi*wZou4Bf__5rJEx z#A?v+j|kTe-i5K%6c<5YaHaua$8q~*m4AXsRsBpPQ~|g`u_kA`d4X^w4D*T!#C|Ze{2=Y?wxopHiY4-VImiAC}pK%ecNQYI|J4 zgx&Jvzo8s~r(*2Of>5?2p+A?v`<)ue+SY5k9pvR;z()&O0a0?@E;2+Kd# zt6b{{uC#S$=mLqS4wf_kcc`4q_4FVpS5leS@EWkzBe5ZQg~KEn^(!Nj;f#3uVqbEOme#G#h;fSY%NJ$jo} z3_&L$+SIemYDD-u41z=q6+VaVONHW%BF%edeIPhqe!3L=Q-)s4EQo%ORl-6!8NJzE4wy&e8EOd ziVd1}5utXJ;@U$W#vT}#j3o<%Y2wCygjF`aUdO;KQcDz}X2!19vB@TL7oF==J=I&$ zvVGKJ^4wS4v_BwBcn0a%k>uy_v#ywyb&!jawB5N4mwArDZy(oR5^qiyyU+O!e#)5$ zN&o~&oEhjD(Wbs;@+h4$Rh{Gk!m8UPp+0D0K7k%O@457}RNkjo@uQK_Ooimv?$sYw zbxg^!`B#5t8?zuizZhx^@2=;yR+n`XA%5S?mWTu-{A2#3yr#H)|1Fzbe(dpmZ{s=q zYE_4M-Rz;7)$2R^2;&vOW`^euSlNPCBB44uCZoYv^HK^`i?EoCD`@>wg5sNkL(qh9 z*dL~fN7#(*7(*ne)BG|zae-lQ62L4lVzx25bsS>~CH+&k|L~egz@U{zN`{y#1Ob@l z4~GF-3H=G7?;mXGtGX8sb>A_2eH2(`VJT1r_UhBRn-xqUmleVQR-@B3;se}6qihM| z?dm17$?rYJX9cSpaoesI64{dbC@{xA2Na2Dw zZ+hW#(fdpc_F@yQnu8!9RuOelwe`^` zf7X!@Qo&<6Pf98L?AW^fMbG{_C0%^ttK!AHhUTG(X#d(=l3wUkMf08M{Ca|iga3LB zhWjLzAmbe5974Q^>GS7?>ZK!hf_5_LEiMUjg5|W-H=R|&^rYnz@8LMg)W;k zt!!D;nH^+*=8PF7N<468=7F)pjd5Ok|AJWHj(K~5w-yD7nJ_H}-^DPpj%jO+;Kgba!!e{JVYlmiG?Zg?Tr6)W&VcF8rMP44SnhvirRSCuClH zsS6;Nh-2jU_k7LfBfumGFh@?%`#O%qgd=j9L zpWxKqZ+#WZ>>r~2sz5ysKUORf=EBk6Pv5Q@(PAh2J{h3~@f89_CEgusaT>`DABjMsYM6B46egqxW*V{1^sZe1DEB{cpGEInxuCtfKO6J9U7 z&RqBhH{2Hl%(BD4Hm+eC?#HWWkhr>HNs5&V+{Vvc(FdU;nc|VoTgx(=O4NWd>YQ%B zFfbR6a}$9@1Hug6Xk6DkQ++Y)91=4#Le?R34g3l}qAn%+hMb9cfb_&=ib+6`{0JCo z@Zn&zLOjKVx$7gz{n21&kLx#I>$(%+Y$_xY-B*R$4SaXg=yy;p;)w_6#xR{+Z|T9A z{Svg7e??t6_~=jg`Cfv_&=|wZP1F|@`G(hP-mjq~wz*A&5AWwubZ^NCfc|)bXF@CX z#AdRxzC0QH#bO`o7QSJaIZJ8$qD#^N>q!v&A4shext@{|WM74^ax^>lOIXErhCUFb zUucQ<_r(3O-Kp&u)U}~myPYjKkxka^GbiPb?wb6L^Pb03%-Cr{GZ2qD|G+cQ)CN}Iz0X-wsJGqO-%`~Yd9aCd?uolY~003gQXCIRL z0?IDAr?N8qT7Q%J&`HtmUMCg2Wt(TxPqsF^{{!k$6B;mMNw?X_G%>Rt0I?e3sloWB z?td*PKe%p-q-ag00lbDp%U{o!J=9scx_|D13$ULR1E$KZ zZb5j~oAU;Z)-_@bXNXjFI)P(hBUM@a9580ak?z?-nvpfXLSlQ^1Y21l=0HlcD-88_ zBW2>=%N;2&YH@^!Hgi|IGu7|Co^;%uYWQ_tQ?^jmNoMQ0^b7S~qY|_tD(C73&Ns=k zqrcAS`gxSXe%TP>=_#pfk&^Fm^rwgAOyP%xJ-wC;SCee4*+u+n?dEGJbl29nAR8$R_p{r?R}5TicVX#X+cCjOtwT0MTD6!|;PA75?=Hoxy{I_c zzj31l2^Q437Frg@KrMb}Uu3}{df}!oY>BTwgee$y-rtNq&Iew%o)J|<$-I*93Q2w` z&k(@MJ8nJbiM9@$@(5hiEp5#6h+Tz*^|O?y3~v$<+3h77xMHM+iI<;grM=%nru7ts z?6r1|q!?lM(ck;1%qN0Gqqm(7(_*TI*2(X7kgDkiN&3LI1%MlDY39_dZlTV@R;>l! zc5}GhlDYR?kLh{ZTiZ3>`Wxfzw?JZKknNQtJw7+}B{IZ-d1~_@_i!yxClT;I5=K;h z9+vKh(bZ)w?2h)|T%Fs32JcSwU=v~~*>X$5$R8#jL(xI;8o?NYbmX}*#kH}%sn+Fy zJD$0$eBf^N{rgKg)cFAW-L@0zd=|2DA_C-!Q}}vqSkR4yCEcr+ILBQIkZ6EB?Y+X% zV3I4~t1oIZjA@TDw;zhVBfgnj`>!%MYX+s~U|uuc?eC<2%-ip-mWembEA4=7+iLfZ z4EF4`>qEsh)tVuIqtc1@fPz!=gUO=X^E`t~M_#9iw5W>m?w3B&Z7s@j&ZGJgezDtw zJN^@|aHYwO=2+lR(D(W0yP;4GNH?x0m@)p{O8jq+VDFwNT~l41>-)FQ<*gc4#G*gS z{EB-}+u1`r$klzYRi4-%6ce4V%nWrXC!Bq8mx$*qG^3Oj|DvTvs*mrmhaiq@16Y!e z>Lx?-PEt~d)NylG_R3j!Xmn0thW&vL=fh-srjJUs@N3CS2rH!pb2g9VZZsVpn7W(h(a`?W7@6|T_DddkoxI_gmKRtVJK z_U`v4ghXF%%$`}B4x+EX3{wucx!))057yq7nAwTKJh6(}9s=+&l?W)~^PGlbi0xv2 zBy!;x>T#*2k2*Kc!3v~*35cBV;BvPk*j@GeKAvNoX3k9gXm;1-ZQM1e;;if-3rj9C z1=~ZKb}cIUz3?+#R<|h_zDrV1k>d6TF?G5=3R6Ee{%S4ESFb{^^y?Q zz~Q)uqzv^vJkS<`?2h-&_xB>d+PE2OkVN@-^;;bC8(_mS*0x>vioO`4lJs*k(tUH( zqpjFuq1{^MBuxa#$tOdlPLV1ax-?0z0XaKt=wq1!`!8PZ4wfj)} zt*kM8!N<|Eu?@BXox&y&qgkJc^QaXGwA)H4CCN17Cf0lhZZm*WU`c0tNy7(esJni` z&SfE4a>bcw;zx4Rx+yhiCjmg^31C<)D^hvGmdLk9FQ>*ya>2ME)I>G4SK>|o!((7X zp5tTx9Cg4`PbxrRb5BvKo1(uRCJjpNs|XKa&UHqN(`;cM#|Mu~8^Q*$2fUeGi+IZV z(MbMh;Lo>^P{GWFvY?F$hUh==Bj80!UCLhi8U)?Lm^Ugh`OqwOAA3j0tsHM%FDEcRB3DL6>!l zoP)?e!zKQsuK4s}S4Yt&`%g<$F#pQ8#z;~5QOW?EP4csU>aLGk#87AU;w(kNVP4K9 zpyzH~9S*kpJo0%uKc%3D)Qu3eKR-fr{>-hHjp=(3ice_d5NYRT2jZ?ru7AC2a zLL8g~+2tMlo>RPiVi!}`eeHPKa~%ygcBk#LYN`tg&;=pzR|FZ_$cs{}!{W5cP6h?u zpPC>Vw6I8VW6Bzm-AL``|04t4`&mUr`yD~7n$S_F?}TNLiP|v*+TG8Ytzn7j5`mk! zd3^;Zt~5rv_ko(aZD+@~p}Vsyd(lB5uWqe2SJfa1(<<4++}%~n9DZ9{kF?D{aAzsj zzUj<&EGV=HkaY6GTsG(Mzt_HWXx(C}=J}1?jikFM`A<*)^VYlVs;9hzqXek3V-D_h zu(kW{-_SiBl>M5r=s-aRR5@Stt`tDr5vLRE^=9+Cf}JI{prc*l5X9wQiBn{2P$>S# zJ18>V6`pry3A!v*`v;cqy`2%}&v;e^1-?Z-R3c;NQKPE05j)nW+P@$T+N2>2#cPc+ z);WB4?*`Z9h~#83J2I}MJ(i~!f^SOBvFe_7!a158ly<1&HAU@wbFi}u*Vc5NRH7i5 zuaj}j!U%sh(YHDqEu1>~PCGZj8uEKYv5=d!)e!HfUv3p4pjs7;Oo;1oGCkD;#L(8e zg3}5mnIGhK8qS=V$=YJXKAcAh;I%1X9=$$`?S{F8`97;iME0wOt0lSzsgh$&Z&>E{ zdCu^qFj5bEbPjO7XIkue9jR;SDzm2?+*GH$ohoH2_ZQf9+^%RYaeX!9RGG)MQ|O@H zB70vutGh=&(T{mJ}N#{!S#@JEX`Z(WiO@p$bb>!Bm_se;mnqOvdjkNcR zd5Z-wr9BjlWG(Zvdys!;|BoP-cuLtdT0>HqLPwwAx}qeAOhnljax>Q*}VsImBCe81dJX3I@&+SEH~ z8wUO}H-C%`q*A#(;Qrs<_x~nu&9vfH@2$oa*$4j3|Mb7(^-ApwSToG5c3=E(N29gv zB+$b-{ZgwL9Ky%Z=k}NHH55Q0UhB9P^v@*-?R&IwP#Qq9fKDs0G3^v!d>5TC$6^KLq- zyY>ouh6=pLM2X)-n(mH~1{TN`bld=DY{x{bqkl+*2yY1AjrKpkhc+g7V@aMly|Fg( z+FTo+ ztw^7E&xvXlNp!lpv2g9`eADm1KB)%B9i79DCLBM8qfCtA-#0BChhcvQt{?Tp!fp&d zdjQwdrgx?aP1P)#6PWhGv>`3iK3f4IylhX0{im?~>19&ywY}+9u)s7)HXub#eRp~ZmWO9SOD*+ys*FX5qY(0wOgG0(lG>keW~ z*xMYbcXN1#^r@|b_=u=iK4>n#HKfo$ayLo*wd_^jdfW9SV_ph1g3$}Zb;}RG9L&ST zNo$SCxASiBX8b2;=UX1n-eI<~k*lyNx=c;CXf4Rq9-V&BlTz1{_2vUEHpXh!TotHy z(jo@SM)XL}SN<#adSic0WQ5P^ltof7D~UxEQY3z{3hUWAcT*#+qOHKfFPZ0xD=uR) zXzG%CTm9lKuP$;aGhUN4zY%}eV4>SRrI=}6Bv&tCJgEFG%;n;MPfxTUbE77eQ|esI zq5IS;@x?~-J0c8ukb;nDL)9O5P`I6`CjI$>bwUUUrO9MV8If)Pyw(!(_2yKolL41~ z@kbR%q(ba`gDNfvP(N}>T?rC15fM3B`t^V_*OlR^N8B8jH3EQ+I+C@7gWyz9`D5v8d+<)P0$LMiJOSDtq93sZVPH_Guh2tb&-5FASWG z+R%M0YT;dh^yu+NR;`P>>x|}OgOQK53#=K@@`b3o{;hlXU(uWY>mQZwu)Zn#Lu8qN zGbKyfSdADio=(WVllyXVzkEJ*+NuDshybi^W`9QEbNcLRb2VU49Z)S9=gpui0MZ6`-HaVj02oSq7$ z&mqT6I8APN|And}c!erWc?`w&*p2UG7j_Xnx=3X?J4 z`-Q1+S|MyI~`?EGAC5g)bW6;bcy&{YZ8Rb>{DCBUBWe< zxp0PdSWZb2CwYZ8XMDp{h-UWBM4x=Cu2#I&`i?%H>H&@62Tld0j?Yfn8#~w+c;%XQ zyX}Z?9&?b-;gh1_+)r)`d#9)Ev7uAnm?!wgUMX%Co1u_lynX53X{Lr09zGXmw@VkR=HV?{LQOM&9jb<`ehA}y8mjc) z&z`LN2^X8156?*BzH=okIW7}KHhtV>BN&9Q%8!jJt5bkx>G>Tk?*lsM>%QI1CspV#7qgd z^c#w44lDSzQ&`2BzvPeS%wcOWujnfEiF;PLWFS3<<+rhleQum)fvOD=X1&GsrJZ{< z_CmoA;f_2GR02qQW;lmVlt$NVjp>e z32^x@iHvpcRJ!rO=&T;yh$n{C)q4IFQtpo96q(bnG#{vc0NNEyv}{P6?G80orY zS+5~RBy@2(M3c#DyIkMN?}8;;L!VE=V|MsnJD0?h8+%0av3`5 zQFNAJpfyYBp3H--^+mM=Yp1)nLW?e3Rtebxlt11>7#$dV87uD$dJ*JDyUsxDZizg1 z*P(4%T{9fhCnP)anf^cK-a4x5v|k%lq?8gJk;X1SQIJkiF$fEg22nahKpI383&Er$ zEl^S^=|-icQ&5Ht_j}*h=c>=s6#1j< zgP@e!#=9|b?VT+a$D^u!+~Dp64c2z=-R9Ap7N9d{tDfgxWc5#&WS8}*rcDNc<(TcW6Sm}rtR&nr%^S~oosVEC+PQ8{d_WKv*3?&zSZAS| z(bzBDe1f8qsV(7r3ay$^&4m+z7JsEuF3YZ>0xM7#@q^{0apj9L>C+1nA-~#%`tF80 z5(tiZqTpknH7glrG0^h_&1rM=yKSK)zO(;uFp0|kv?4z-YY-!SVINn+<;X~%8mgs} zXU>DyN}JoQ(CMGWOJOQ#3sbsrC0I%?)$FWg_3O6pdu<~R^o>fhcJQH2e;bC9R7#1F z+$SfbPE|b@$CV1*SXkED`~Of!v5BRsgg@>~y)xZ?uphJoGgL*zZs!A5Pdr6#@1;g& zl^3pspCg$r8T@k}3{hOYKVf(&tZhrJ$K$MFxO!ttZ}b(r#s_q5J+m?K&BGCpA)w2F10({FIU4s}D)P zeO8jucdoqVxkLFaouXQ5|8Qjce?IrU$9COlQL`vYDU5!+o^Q+RjhBRt^wAl9R?$_n z!*e~&V#u1ykzVm-+ZcY1q&2QzLv8OU6m;St)6H2bXH_rgHXC?frZWzII z>GW3GH9!A&bMoo&b_RjwwvmwEaw!+rKEd2eBl;yQTJ-I|YWxae2tu}U_#Bf63$ zN?=N}f)5%DTQ_`k@r-j+_}Y$DqU{Bl-2?7I?eCJ&hzX0LTI?~=_64^N$o+yOD-ck{Se65oK|&>Fw-fjQ?OU1QKhYaUBU^2g85F7#Y# zZC^NFCIcY0X*qsdr2FrCb_QZSB2o!JG}p+I!1`?gj-O_>?fQiu@jf(kO}1Qzb@ygw z!txHQ_DEb9dwbeGix)-SlI62cWeuqA%3IT;xaj{NORe&=-%!tSFZb5}sfxD$TtN7{ ze|z+}cmLyYm2sJW=mFXGzJQE~ifTCjG?<5ra16fzjr9?(bjxP2{LfHzb{1AL!^XML zOi1TsspA_L7^?nS)Qb!AlYsHDZfZ0d9GG3K{DauulD36eQVyl@S{vlL?j+Jb3RDYp z50~hJ_J429wIGcx8lVnHI~hRbQ>-;pyaszYl+43ydO6PDthNEKru^Re7~b@ISfry0 zjM?{b4lnsv7*PG>1S)|68WMCgF{11v+cO|`X2tv52b*Cr1uEidyN2a#{>?cFNkL=1 zlJ)&C*2VUXqxWkkKtod@AG)OoKMGj#jNGyi6cVm{Ath}XK6a56hQIJz_Vk+q{#c}u zVg}sRig~j?|4Ox~+nRttF_~OJ=SI$cq)K2>{qwg5(fOcVG*{|z-uAgql-|fp*FB)4 zNcxmh9nj?&p8g7~p1kay4zqPGi35WV|5+Chh*Io}G1l#!8;2kNTNgk&Aqcml@AN7@ ziU+TuPIul0FLUIt{9hyCV%izRm9X~COuY{q*!pLn!WlKbgK)jn@HOjU|O1}7`Ch%8^B8V;g|H4_lV!Ze0eCen^O+U z(?MB$zVaNXkF)O=>K$mjpf+DK-}vP|{sTkx8(jW6FZAG2B7SMSRaY8sUwDg)mUQTz zz}4Ox?)3eGtec~*pIdbHA80f%wvt4X>nmG_X4Qnxxf>#{KqzUn5DXaKU&c1eDE$VO zC9YvY%CNsM?6~RK-b{AZ#lib@jAvnQocEK$KDNMj5G!8tF5n|2>oA&`-vP^Lx4yeE z%E7+5^*jkXU?KeUuPs5t&3k2a+^-vj3ylnZdvymEi(T<7rF~1q8;m;uL@o|?FZ;*} z?wIHA=xP|<3d;QnUINP=+b}OeV;U|#oCMZCg#qdfNb@Eq?m(`;;o&E{46~huDQ72eq+F{a9ch=|O<3G1S+Q?+uT#IRDXGA7t~~ z48!W-Q&W=BotWi~yY;(tnqw|TDaxvI_WR%C0ckb_A@qa(F z%HvsnD`R}$R1Yu8a7rc2Or*y{Hp9u{ZeM*^#O(`x+YDu-#U7aI4xh9(ja0g9%N2U1 z(xX84E|!6)jB&dn+Z%66@p0o`L(3>cF%-9^t7(*~a;-EeN(p=KXu>-ogZh#yY`w5+ zeEc18=#%Xw{n(62@L1+5W4u=nFsROB)}^t3;(pS($rEB@p2$=t)4a<Cmg5lgK!75QOQ}5Uvy!?yJ{&&df0xKv`TPP_}s4artfWK7aM#jR6ww z!9DoR%5hBo@6cs?^PmD?grBRll7Hs;kqwlw5c|PeT4V7_m&x5OS^oCeTuYWu67=5O z1Kxv_OP6)T-<1{PXy&VCFu;iP+^^3=u~5~o>F z$_>fMKVm~!*>A8E{XQ9~1& zSJjRz2E*vh(btX(%Bb=|p)}A0w`664eW)9eyE7)3SuLsUf2@z03^MTiMoFEMQY!aU zjy}sgY{_OfC$zg}uaW;&S>cjfes|aQ1%=-KWA95gpXV%U`KGM#Vn2(^gLmH#4$j+E zvQ2&CNJgG($b@F&l+TmT%e4k^2midf^lH=$UEEzSjt-qllPezm(CtC9t<~7@Qv2P{ z_c8-PTi1Ki9q;S{!MY!kr)FHd^d+D7Gu)PiUc&u+KYjx&Gf=QK1|Q{5c(Nl{QXa?MNF&t zVs*!5=Hkd`hjV4~g_*%&S=*6-q<`cU{4ZkCf8~#{YHo2Yk#XRa_|Klte=}Td8KNdl zP0iIL5`2Dv7zBndT^GmOXFzOZFr8|I%S_-WS%Le7Ite`f zb0iha`m7L`9g3q))dd&TiazZNSWViVRIhr~BLH@x+2S-{7qK2!v>ZKe>R9%)|MN?< z;EV>TBFWgL%j-`AhwuRs%W}MhEB8=h8iCEtpW$97MYv_Zsc6=HAq^vlmmTM8gZa?~ zX24@IF;_c9Q5H5dvw3oOWWE94hd%Ko@F-sXiZ;!b-ULK8l|iowehMV{~@r$Jy>lXg=nij?zqV%$+^l1w|k+E-t7&-gf)B zQ#qOuTG-X}vmCx&9EFH;JOzc*}@jKANRYe#n!qHHfoXqv0F&*j+%Cv_8sGcw<=e%q~g;` zcgw-=pPi{^*5&vfE%H#!Ws`!R7QG}**PlzfT z4=<$#fxg!+lRgw;rJelMcv?HdMi50A-!$%>=yFWb&3wrtHP5l@pU^{AuM4Jf_El90 z=I^bsKkr<2++&(+!c-O+633@E`yQH9hnYA2kT9=&aqv9kENU+cSJcxG7Tk4&yJmvy zEVS6jAJ8{gDPinfCMt3sNEnytzB2nFcJ%0V8N!<$nZb_vIy6dCgCnKU&D@o_-7{FGe|?Df8(>x*^2VGWT*EwG0%NPp5<9Qmzkce}!PxNNvnj znOQ7Nt@c%xkE!QL)LR4_Du7K%VzMmE$X+Tq?jl;;3iE{M)=ao`R1FkLBAp|od079T z+kZbqq9(2+Bvz?ByWem{|0dbDi3?{NI;<)CqJML08+(LRz^|~YvalRV zo%YV;veApd%`$m+jPlmx*}8-p+|6uT-ck9XP&W+rp}CaM=5%(;xV@?Q2O0rKg^mm5 z=U=Lpqy!j_Nd2dn;_jbR9?J{M(ktS>R#tb@N!BbGJeK&ohr|2s4#VmckpPKQ&j9WZ ze=ILfsM%+1o&F`LapvyutU=BX9I0G(hr;N=Mn;v+*jw}@+JIDOd->?T@vXj}c45K! zk|1O)BU|Jy)e@xr{(&Dy$1df*|?n5ApHEG@GW@ZcBXR!Fv@~g5niAAtMcD(+qbx(h%y}t`R-|eQaS3 z=-&%*e$te^MxIO*1o3 zR~+8{t&$<&N6b=nQGUb$F7U1ew);d>-kQtZlw@+{G4PD2tYLG^$?XDEs8#WuUB{RD z)@YeQkbx!t-g@nt4Hu+p1sCGZAw#v!%Ier{_Jc?<6?&cFXdXs_{epZ2GWK_3db(}l1JA2UBv47-||+V0u$}U zL~8q!%v+QSG!rsozRispTP!y{RGo2DLH=EkOIFi-hdkB)Z+|^TQ}LH2XLrdBTUP(0 zU-Vp5aAPn%^+gEZ)=~@?V)`e!$MEuN;@GCBolUwz3foBBM`;*&O; z!ean7{Q+j!W3Yd2L*9nj=KPOzG#tjfh6^Hn+56SR#4L0{5{T2tL_1PBdSx$Suz*UVX^BZJR3mgRrAD3x`G>;#Tg9O9KBY8na8(-ZO2s`H>=v-ZiC2|Hnx^nz+D-RwKvq#-E zeD>83gEI_a;yiDS&Fp7O5hUA6@_hg-ilraQJP`fZ7r#;uw8!I+%gk}8M3m){o)rLw zrIzWXT-T|vlf2^)vts*5u2kmtBO$OB&6BmKtWXvaI_l^~j4Q~6_Q%#(5`F+Qx&_Ov zn-_&~K^x{~2j>H82*53!+*asnH`cB2Ei&XeEA8q@x|t-*g6ydy-~R-4LQ@mVT zaT| zu6?3dJLl3D?nJ$yW}A-u7TKnoVb$yq|NN~ZfE!GrCc9jijP+45o!-3o=(3@IX-faW z+Y%$t!!({=>eC771rHey-36 zd6B)-Le)mW_8WI8&w6FDj{X+O^YOkv;iivN;0d=kMO}=kK z+@&2XM@w=&Q%tHF@>WeW0K;2PJk1Cg1Tw1w<}K7+YSc7nZTfL{Qf~$-V!G0#Q&qD1 zrCZb|Zu~R9ww&8gz+rh_%I8i=tCE*B5z70v*d5=Eo>YyEwQIWLUzsn5JuPcBnc)73 z9ZOe4jTm}(+pgLSnR8b2{^Z^#_$M{?Fpk~&fWbhgdnZlkC-_m`Z-e#a zIXs>xK=s8FhgDh;qcj&4Na&}aAE^f^^NViD`|d<-s9v=hY2GgrvECiq;2iM&Bjb7L zCtu$^A6rq+xzsc`J27-oG3qf>qQVR6hkh>>f^Gk zeN1n84w=6=PuEwogb-6y*(99O7wm>SkO(#&NbG1UXmvDe>T(;E;pgg$h`z#)EAu&p zkvI+lvARw|M_QaUtO|olx}kNGZ%SkB1_dv^XTw-ep;4l_VokHg&rmj8#QaH}fw{`o z&>M+nnB@;Sj~TwHS%8gvjn&-BW|qsm95CsCJ=uA2#x9PmP$+DRIV@>&#UWHK-!iI# z_F5@#^CA;%rAO_J(6%m=_cN6Fisr;nK7AXg=BIen=a?H;dB~P4mE|sDb>}_+X<@rP zDv#TpZ#G>;Ea=jRWwgYtysq}FE0!%gZ`%1zy&_aiF6XoiR2rwf9KXq#ru9(zK`u{f zNcUw=zEWu^!s!?=K3cW*zy3@9=&q~C0PD;Y|DO4RxcdIu;3Ev)6BO~mp^9$)G0@cI zNgRvex1Ki@Xz~Sb7GG^fUnx9f!k{qseV{Wt<2Q?W)3+b+FZD-d6@7koz~_KMz0h=2 zQk}2;c-~@il*gie{=g{f@=3#53iU6iZk!YIO}{w%Gbd43dv~DzOH(kbw@DACUXA+$ z6*ZOFh<>S;3Et@QWno@am|2t0WJ7V^pK&O!F3goR<0FQ#jk5!Fp3P^<-bIoPD6_x! zYM{o16iYWQBB``EEe!r@Q=GmtBlVP)?`K)5g-JNw#GgJpplsWwJsYT#Z0Ie1IB@JX zYLB+-=s3@W%R2q|%rao3{Txqa1-z|C%+*J5=& zVb64&mts)4)HV~O#jCBgXhQE^9I_yk;wS8v*7lB}Oop_#eGL(gN%=$qjUNg;3%;`E zm3~MX`+OkNre)yiIIN124>bSLjsK7F!2kGv^*(WGi|Y=L{jzL-^VHvRqk`*A(*r=` zEw%yZKu*|-Sv7rX;Z2bK$I_*H+)~$-fA`gls(rgrk!sV~W*LqLh;(4*PzL?T+=F4P zVd6R_nU`40ld`P?<9QruWsrcB&^Ut&`V?I6@v|w+=*|)^(JL?w+;(hTCbAk9mSf$8 z(XwSYrglL~|1gh(>O8S`ZJH5FMw7YDx9(IU%YvE{IB4ELwfHp(7KF4nkwP=l&jU-^ zK-wmu1hh1hB+C;x+12+WU6d{f?O;N?ORxumzs*-=hCXWCj6;%60(w~umNhWlz5fk| zsLgZqH9U4-7|tLJkOZiX=l-iG=6;Q+FK9>jrN)Lo8+;N;$|opaz6%q^5t-uvMOW}0 z;il!OHUV;Vvi z9tT_pPKbZtste6slej+xfd&UQKqt}BKC!(;&W}&-dy`n|9FZZw%O7dWshLM+H?0@a zR0|u+zH?B%33av4cWKSE7rtB8cpgM^&JI2&J zlR{HMHzmvgPqhE6{sLnRSrw|iJt-asFlg;#rohm0e`@Wg#VcFAbhwZg%3S?)y*SJhIYO1%i zdnpU9E)y-&!rz#?X@;LCQmXpF?Keh@gZ6VqE|FukqLT-_*}uE>w;76at;+^GBwjNT z$H=$hEn6buCug=dZ6KwjdX8bPmOj+pFL5G1v07qKYifJy=wQRc+t(Mo)9=hxzEB9D z?vy_|o4QG|N?Vroi~@`&z2-{R=EM zd7=L;^0-jO3)5!@gXH^S(~f^{>u-4XwCzstAl0<0_`=Xz^J143SP9xf-FlyET8(!f zk7Dvxuw>){#J{uu$dylvbPN0IG2~o6u6Wo_!W~D$P5b(JC#Gc6dbd>uqxNRkOWHlg zw9)}R!zME3^t*)}Mhef4LZ(U7%YlkrcW*#Br?|ydA}w8#PcuQS-n>?C7uwa1v6B54 z)#o((sjG4~ZNQeEw+^9MTd1nGcjq3aCH7zIRQ?2!YGrOht$oRzjbci>#5k>@FyMzxEqh>oI%6+OS%Ss;6izyt z(Qoxa_S~07R|FV)IvdVchaNs{zB>0|g6TJNv=@6FTQ1Q@@^+mTYLxSh(2 zcWmXAqXB)f*RuodS&ngNsVUw^!u48t?wOlRw_Mx64*Ic+#Ux^4I%Y#zB(KjNmZgUW zI+-0b#pOKF$w>ytZmT)m5e*4ZN?NEum&=&arfqvH&zKk9Exc!sVt&q40wh`mb9TpJ$*w7H7C?S&)4aOT8emPlRZr&bZ4Nh&g*GU zGN$R*YIXC*iWt&UA04mdGsydpTr&cL>u);q?-iNXx2dhz+|goQ2!lWsa+235hh?m4 zU{Q~$lBU{av$<;VXeDt`gjkhE@1&Npb>ocdUZIIH6+QgvL|GWM%}YtpolH~;3bjo9xEO7>2_ zFU0g`V06F2P~o0F(Po)6R~Zl+0;u{7l_JL)Ms${7?Mz38v*`ZzT7>P0yK@H$Cj#N% z!4DzDCKn3|Nbh+3EH3MWF!dSaU(Mi0`Xj)|Sv5UuB;S?90}%&H2I zx`b^;jBEyLyU(`o!WT9#&c|4FdKSEQ!ZKPG1V|?W+AvPS(f%s2T9#YV;RMWvyV0Gm z3Cm;ehKZDea*C#U8M9!@I-Z2ERj);Cvnq)fevVU+c(;;;^@f7qQ229r4%hExyl=b{ z=Rjbn>jNe9!Y_W|ibF2G<_bhU@OSJdjTg_QF`pBxv44YkA_#zIq?jMq!0rP%V@Gbe zB!a0f$F=J*y*YCHg>By67BP}_#Y#ep=b!b9b>oDXD?cE^>B@oPG$O<_5^FiRjKNiG zhk%vRrm$+l3m+*?C$eMDoNS0Sb&ImM`MQH6Xy6h*m4JU z0EcQwf21ZC8wolO+l}pq?YcdX!hh3)Z(0Fnok?|pItq%#P7nvqw^tMFL33L{HR)a- z{cgR}$er|Y+|Q;NQ^m%&6R_$gd*@nc7SbMWah}(xN{bKR>=r)mmdP-R3jnTJ__9Y~<^iLUIpwKnCoSdk< z3N-kP`D?t-L<|xDDNn9ybhsq8my1x<(sVP1i-yHbT_0iYb5=S1WXC;@v?BZvQXObD zUY_p8Q-i3|#sKcH@Upq3u}i2|yD-m_u?!NaQLxpLvpf=2gNM7MSNgRJPLya}3kzW^ z$6C}av-Q6Ax~j!3ZP)_v+%M%99?18boM_1&YeIAFB!N&i7S-4A{+v3$DJ*NbDbr&i zz2w2>ny#NU>JonT*5Whk7EmW5P<6MOVe)>;3T4i#0Yw}kgV}s$?E)+AtmqMXF90hQ z=#1^P3cTW1w|o(<3{FZlp_km*-yP+)t^s=MrMRCBM_LZ~+>Mf}{nPihHG)V3#YHcN z$2v@)x4s5Nc?fo#xEB!D9s%&{*k!CrWfxCk8cq=nv*tw)4BkJ*-CCOcG?h#2lLu6D zgVn{^z43PL?c_>TRn=oJTOi#tI*ua;&oUd!?eU4=XnQBm)K^@{v~vf=k(B6~t0S+*+}5b7aElbwx>@+} z{*m=EigDrEP-fZ>sT0WRI5u2INyPIDP{E<}d)70iViAFHGIX4&cQXnI#PYaK_vA$OHE?jP)zC}XKq-)) zu0u=K8P^RHxg|4O%|ib*-hBPHwa|z=r|D}QeACflBGtW%EL>v^W#C*ZZA}G}iiUPF z4l><2^_zT=eTAYn9cFH%ytW*&iIuq|mCS>ToG6i1Zx5U_I~FxnOWTC2HVB;b#n26A znWQcqOxVU4&mAIDXR}!5B~h~mX4>C>{;zPYsEo)u#hJrsZSs!zT7^qu7h)V4SE9p% z^j*IOQUs|w6_1MLSgQKeB;Y3}`PAC(s_;@Znt7T6SvoTZGMGcEmM2crS1F&N<#V1L zqWV@v*JyIFSMH$`TmITHe3Ci=-R`F7wMn24DvM$eJ5|VkR zn|bY)a}K`hb>H{ao9^<=pt3)L?>1L<&16sQg-~Bf1@l`~zn5Eg zO7+R<5=()Fa;)xt3&vx{)VbMnT#U6N3eB+|+*_>@N6j|p)AZDgHpp|K;>W9fwC2+k zgBxo+$6E!bdo^`@aqvj|diu`jwlD8!PCjj<-CGH*7cPuX|MlDbf9!8K%8XSlpN+@% z{ta>4J+L7ddHB1w!RUA*P_+3v39k{KNAqHzpfMa^FoJ}xmzidfTU`HgzPg-rJ_?^K z1(!*Jn@&}3ZTASlV3P?}p)m3V9Dg-}t)~b9N-n2Erqu$l3NEi)vLJoxxGp+v5n(M{ zj?Z5hk&3Iqxcn6Qq|Uf0>s_=eqJ=`)(;T4)x0I9r`D6(IX03c| zqk**_C>Qac+7C6QUSkNx1F{y5tfy9nuF-2`eZ)ZM`t}#tUwF7kX2U$}p_k&i*jX@O zJVH4aX&+W+Z${GQ;+4t*aE4W}`078iDZR!6e+VxcF)o%b^uG$YjFnyK*Pt~8;bCp7 z3wwD%yZmVV~7(m)5OCPmtV(UCRC6u7i0;<5HmD;A0B^YPZwULHWKl zo89W<83)77;qQ3_+!At9zu0IgoUvyfGQ(dInk;&0N(MOtilAyu#ct%-FjoC@AsO

N8Z}H5s#<&1I5k4NR#Mj6CbX` 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%0AG^)(QZr}=O`Rw zZnLf7x*3amASnd~|1bhtzkpUEpc@Pml6+kQgf(pNeH1J#(s;6^osm*`zT6MG@Pd%0 z;7d~@JvG)r^)(F$%V`c&dmP_$C#%DVtYSvzuV;eLBElnb@U+MCcyg+0? zyaoMp>y=$hs_dd)2k_?BEk45Z??2Li^&|3^f4@&<>mR~LVfz~{Pf~LIZrZ@pEKLBC$nTMqOJ|d(@w5~+a57N-cm$o02m689{&VhxKZefMGz)yK=meSwG7No?(Zk@F_J~g9B2?6D5!>eux}!qX~9yL z<;2BvOIS+1GUxx0_ug?$r|H`Gjx(c2ozX!NER+!xM4Ctw5EzvrT>$~90t(WFP^2Z} zIBF09k=_LjMM^{4ZS?-rxDW``dTf+1=USIkS7tp1)?s37F)2 zKX$;x3ABYSn1~^EW%UVdo4C0S{v>G}{8D6l;z!OkQ*l_wayxZG-bwH6n4_R1M zTRjDtkL!ny2ifGNm7Ja*Qj2ur-SUMQUI=7UpRJ)u9|3P39LU2()-E4%hm3uHW~in= z-7H)G0B{zg_;Y-(A%N?Z*ISUgDry!1zxSkkSvXM!d>KK^|U#7^K4z zS)uzp<23+)PJ9kmuRcZi+}DMF^J9Kx^L-%aQZdW*FB|6HKLP$L+J?W0tW&JNhgxe4 zEgXVo)F95eh;Icy>lr9+^Z-H)@!K|l*kyoC0A5v1Na!qbpP0(B8G;vrf~8^h_=U$m z+@A@r`93bi@_QgQo??SM%VG|g{2F#_U8uj;U{YLu2=h-PK%AT)zjG5q=cVE%Sk zN>G&y;;h@YD}e1N&ME;HD&T|LSF)MVOuqhRMadsRdAPbf3Ur{>EB3D=3^tz^kG>U=5)2M~FJe z+tnPj^I{-YEK}SIkz{Xg?>|#G50|wbLj7Ml*U;VeyFYx`0+!Bl8`%~&JeDu0TAdZ{h z2MdnE6@oi6^d@C0bs_H~P{h8V>UzW$@LiQIlqyY*$dm>6wVIqv97F&c5g62TBkB z=AZc&k(mDp@9(J+;^cFPRSI73!iFv1gG?GUM~?0e5Ug-@m@KXtZKIni!YT+F85b*$$en`)+FJQ%Y zwr8H(rUW9%F}Ok92rd@#HBP9U9KQya3f8Voi6f=~Nb((71<}Bj(#h4)cnFpApvFF; zpkQ{~tl)arAmy9w+qpu&wyNeo_xKl6!~K1Ttt;H3)iy3LvGh>_A!-5AuaZ*TodKK5 zBqdb#gkQl?@Bl+@7zi8=6RnO6P!Isl-2r4|<>$bOM;5l?-P5{JuP=2M*-S&-KuC!Q zdHMRzBcBy>VC&tUdr>&}Kn>558Yo#$RY~?VAqPqfG=N&EJYTLjZyl_^`|TlJkdff* zi0JN6bBqn1_BuFl7Bxrh&7(dU7Ub`5|>AT4z* zhBQzXdw?ydqI3TI^YT2J6(Sa8Jp)NheIf-6kdVO>|H+K?(t8B#Hu;qsV1Po*ieP=D z1Bk(vzIvdwn;|Q6G3%GlzX7tNZ4mGVvM4qA08eN`H(+D`fdNORyc?k6WDwaOpI|Do zeg$zh<7KJ3@hMdUhDU4GiYn$Bv`R0)3B<7h zajxkxe+Y&;i0@9@#!Lyh2{?Zb6ue#|t2ae(5wd_yxFZqK5v+h+Wj|fn3AP{p)UpCZ zR1B=d^rr?>8*P3?6EGZbBgRBWTngQkz&2gV7-sG$gLidxI>_DCe{RNp#c^a9zAAjy zRR4wa)@>J3HHG>9P}li1RrhTL-;J}9@+}8)xJ_hCIJoR2lh$F2WUVAe*PlzYjylCB znqGIZ_$hw$vvBPDFiyGW3g1d^YA~bXMiO=Dv|w;3)iRh~LoHcRJ3U&%_5BY&{^5%) zU;W2-fBKi_-~C63SdsVSR{TPI;!6EiTC&z(yyh=|>c8+$ZdC|9?{NsnrTO=X!BKh^ zv<_DcsHEL^v%M?C-!Eu+CaG0*Wx%)3B?kwDt)n(RjYq+<+FSk}i|&O<*>(E!D>;z6 zWUoO)=Z^qu-^e-DTT9+O`aUg%N(5_2H}c7nYqQXooPHbd8tR?Z zX|q~d;$9pUxXL);z7Xm%vMVfl&RMy^u@RAOa6V5ej&NQ*Gj;)SVHa~r=) zmC))rpK5{ScMcygH4VUSBliFiV9<`^`31%%R{I~prz{yi833w>Wb3oPB~l(Ay;UUn zZSLMbh1`E(@N5d^{}#Xbz1dH7^q(HyS7o#)2z=!nx2hlBa

jK6BverWYkz_=wF89D?5cmV{ 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

cm__H5SL@-fPCS@6BT%CSE?uGbXmLf6I+ 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 W{pV6h{02%6he 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%0Ay}@Q3O*pTMfC2 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

QlGIdw!mgT=r)xXTFqpJI2 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

tFvpM(NA*?eO5$*mxbTPU0t@1`*q`8 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í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

BXSP0|*z_IfAsb)b4k9P%3Qy&W%!fZU43DUa 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

9b7HmU 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

IEmw4vLI z1VqI2I-@kU3P$fSEzUFl#2!Ori$Vd>?cUqW!V^s1+|mDqB`DS9O_u8n%8%_;GP|_o zkHs-$J+#=wx~}NKm#2^ra_Za}MMC~fO0q*Ks-xv}3m~6`bCVkzVK4SE9-u=buisW* zRoV)hrSP$30{*jCPX2YZc82pocJx&i&K@4>PcTZiedA&>p6u^YviVLm;6cogyk@&5 z6m(;yjRM=&cd^wUivHMm^Nb8k1wWm70&qeA=hn#`!dRit4lb6732~8@C3OZ@Tw2}; zb5!QNXE=Eh^P(<@*X+Ht%#TU`>jfor;{q_74=)kFi*HWtJF46{ubv> z{HmE=*4E4sP7+Z3sT39J1o36Rx*kyk z@e_|?g`iSeb)juH)*v#K&Ql7H6kZYHpM*K55*zPscvji4AuF&UcU>3R4;?)TM~Gb< z2=(b;(hqWRPPoQ+->CMkE3g|*W3=evrk9Ux>k!)op}j)9Gv6N*|9%nSPPU2~32BS? z1uA}skm?HlZDxlz;-w64UqOK#4@!pa%le(HA1a-7yvMc{Zi-(x{XMJz*dPqPW0N>T zclEl-ccoE!s1i(c{RIy2lsbKJiODo^jBoYohza?<^RBE#47|8VPq&S;cF|E1;7u$)w8EFrA2tM#0VqPM%nI18_3AIP+D z5|81}Hg&%}P$O6Qwiz9}-kTA_48SP1rx0(ooSNiHysh7nEj^YZNeVO3*GiG;WT?lZ z(JYJ6=@dLRJMsk59o35@%}(&JBF%`Mbsgsn6g+sZze@Jl@^I(Nt?jH%Y;K#J3cj&H zq5X?^(9lbr6=F)eLgPI?;c&DBoYAjg_HDLJL{O-E=&-#lyAHGW253p^A~Lb!AcNLO z+@yp?S-N@q-J0~LcCR8?o<8-i>=g7SMq8=qbI1<8W`#%Ax)3A6?LsZLBq@fKbC_Ur z{G1}PjiZD*Li2cq1*6{NVTEJpxt z4t9R*z7rwkF+Q~Z{yv^4Fc z|Jt^>0TDg5RHlH8a#8LDJ_?Dfl|;Vqj^B`gGAvuaSmI-U+Ee1XlF9JAdG_5h@2ogh z<7rQG&zY%hG(8EkoGbPjH^>=tW@#qa$b`&2aqTEd zGhx@iGG+2Qc*E0N>6FzE5XWFwiXaqkZ%HCQd*4kPYrSRY~kbAy@4qa7~oAVS3azb?2Ld7fhC2Zr+9P1u@?p- zn;`JU@+O&%n>9`LxyVTFht(7C1#O|}*5<0L6BM?xLtz)flo!<&^iEA>6iR4JPT7NI z5e#w#F%4e8skg*LqjVUWaYSNw>+q6F&T6R-*!!>lrkbFlcJauG~M;Nw)g$?I4 zdDM^0?Q#vaxm4;4X5Cj5{y~HOZ*F<(j5d!k#C_Zs(g2C9z$SILJYAfok*<60*)LLb z0fs2Z*YZ(0hgPT*Tdvq6bE9NOOoBC-_-Q;;biPP0ko?FB;|iql2{dta8!zAe@V=Jx z@1}gK0-^OFyrwC=#q&XBo)#b8FgWSj+J&K)&-mpa|H6>q;l~C)Htq^fi`qC!^7-@JH-UCJ-$AFLEmQuXB#%H zmeb)2qF|I88qDmxu)$QYHK_(;Od^KX{a)uxF~?MHQl?rg>rozk!BA_e2$B%0J!wl2s=zOnDNYkMWP-R*>~dmO!wO*U-a0Z>QD#lk4KF3;yYvsY_;rYWJ+Uc+^6SUFCI zNkDD#tk4HnpFrko4+!FK3s1y^t<`sDIDQ(rvCODeZKE*BmoDx!9QQsi1htfdIUqeS zsjZO%9ah#qe`bbXJ1mn$W8`^=rE`C=23v2;iYF?%O88X}cSn`VIXHYXv^VAkOeBMF zm*2UmeI%^U@KtPB@9ULv`^gK$+3v}_VTtRJ@UxQXFm9A)LPT4d7QJr|wu_Md96NtTQJ3v<;&2+(< zm3f(gsh-A(*}^5{%~cilr1Uz{gOJ{55-cHJjLEG96vd<& z<)aph^;iM;ao9g2dS6!c3m0kGzdA=+2O5Q5~h$QDcm z`NWIDi(h2qHy#vuB|K_1^_O3EfXBbK^B*L_@E52+5_;KZqsrcX!1MdN0E)HDVjYDQ z-3K~_X>Cd$nE|ivSjYnEJ7THSHQyF|ej~d+aQCYvcUUY##kIpdF`4c3&O;x|Cc|`u zk%TD$kzPILVS_;~(KCvRFY3m8f+@_Hcbmpd3K#wI*oeMD4eWNTt6*a)+BuH!nZ>!s z077h^{eQ&0cU)74*FRphYOPf&)PbN_1%gaLHbS%_d&u5HkiAO6hJ;dEZ7M@n!j6K- zPGl3d6+sdq3?V=Qu|NnANCbpHLg0JRTJ3tCexBdw_4@tOSBf_`H#hg3^FHVOKIfES zC+vI*)71^-T0*=gnmJ`H(TmsKe&S44J1|U$gyS-sG{Pq$z34!5)glFG*v;L!h+N=u z9~^%MJl!4p1!#1>`u}@8K6b1@rYA{s%~5syeC$O|rzFW=HoY^Nf4@?y=6so0tlMNQ z;wnEaLcmTuN}BJK>$ilYfpA7Sx4r{k@MaD(rj*W)5dh-IhC1?g^%y`(+-M3D;jq)sF_={pfHZrQr-gMaAZkGeygZ*6EAMIxJ$~ zuc6bGP~9rLEh0dR5qy~D9wT3Af)+|=JjvE^E0W%(N{}_x7+EGsMqHe`|KRxeM2UZT zgxO?cAS8zXN$`;p0}GO#)PWo2y2j*}O6uZ_f-#rGi9!g-tlRZoG!}Kc>Rvl&pi#=K z?Qoi3d#vMg=mPkdb$MGCP<%>dZH%H zZ#fUav1j*Aubl|-g1wQ0wp}m-hFV+T8?;hY<$`Zc+8`?Nmd!e8^8UFQc=lCV#s_){C=E@oi=SGk%MPl{|V=05GrSiQ^7INsK+qDbGxb$cd6d&W01i!E2#0H|CeUtg4 z5G^lw!;#v;ZhUQDf%wu^SwpR4%xt5#UZ^ZbJnrnbzWJNdk0=&RDi1cDULi_ae`WQw z4dY?8R7>0qA0!(L62OIUrT)Z`SFIYc3OZPgP$GEO@b}B=WcJYwlVBVbAFb=LSBUNBm>CS-gzb9>&1n| z(Nf@ElkIgwW#v@{UckJL*-P6SM3#TkVqJjK^jlxo-tZ~Freb=Fz`VI$F_hx~?#+N9 zc`f*IO0;OAQ8TvUmhkT<{EuG5smWg7(g`8rU8`$Q1{4dLVfCidT$cbD)%i)Ge|WH4 zOGoz}e-(SujgyAZoTf+poc*RfCNitzDde+DX&s9)j4p!~*MjCYlXWnc+9oL8sQFePBDKjRXyHGfTN%|B^lI~CIW3n(fUo^|c}6*fZ!!ift$FA)8#dv?mKJET-uwk(17 z9b^9J*r%Vx8{XgCoOIBv%Rz4%Aap_a6-;wjT{?s~o8RG#0N01!%a-3wqo*7fZ-{*eUf}KSiLUohWKvDG z-Q7O@`-A?Cef|f>7?rm#jgEH*G+lb#zDMKE=_v0Vah0Eg%sVmIF}qjYrf^76M`hP( zGLAD}rooD)a@9q+BVF@6Ee!-#?66^u)gRDlDj;i9f0V7787eiUL22nh)HBtwRC#2OmoQpTkT7P4 zu}NSse70jm+10*IKA7x=8Zj4h5AwFbru@SnTGRAqGF##6M$1veGeM7Hyng-d5t=U*Ocq{>673 zHMr$`j-C6G;9eVi&Ze|UoCBN4LA45{CD`K^yJ2FL-{ddiC{_A?^W`^H0_>oX5Eo-g zimmk0Y=;RVKmf>zi(28i3;h#ScvM&MB{Q@7NtvSA8pB$D@*Y)8A5XrCu; zklh}{Hj%zdk?txX+;ohdcUL3_1uEaJaqcCt6FN5R^0Fo9VM}?0!b_xi^Spz1L0je( z8Hs-8NxJ2(LQ4*345$aGZ?-rxNzQ{f{kbov}Mv(H1xsP@d1v`>Xknx(dzRy}k8an7sv9(_U2WvuH3f%gLhYXhhN`vF+J1fhnPo5PhK>rbX5 z>gYZjYTfbxD#X7yCIP0OXGgKJM+Ywe@{Ny8cqhEz&R!36-hs@;duN6Y{IP8LKSkAd zR=e+5ajabUllJJxyWYo@%ST?f;v@e9qyAsO`nym#EA#CQ>s&`HAP#HMP#F)gpi`j4 zMSno-yz2X#sh;0W4r~gb7l`n@>0^G_#f6$dlYp*>pcIy`!`C0FMGqeo&cemYE{!~T zvQNmrZ{xYH)-s7r+EI-CUL{kE8?td}fi8E0!UF-@@0ITo9t_KYr8X-s{Qx-FKi|do z-~B__{@cII6t}}N*^4qzmqM|6eaQaWX`&I+3_%Aanxug*$Sih=wPqI+&g)BCgZBHI z4%^E1sOD+#V*>;&HZ%&E9G=54dMrh%)j>2bB_eWC3E?G%G-#GJLmf&PX)#$FZ9T)o z1kOd9KFut?qhk6&JwySkU$_hO^r27V=bItR6uhs*~;RS%N}YNf)eG@ODXAV z)dB<%9)8zMjkxu7aJXCFa+UvMXM)atkj)mnF{g_bBim*F^-_+u!}%nyHrh3rQ{a&l zE(uB5lEKwkMg}enS4}of51W+djhw5z>W1i$61at2-h^GLHH-Wr%s7p4c_Z=3U4i4` z_zm;Z1;zraQgJWfC!M$Pus^9AiOkGbn|cPc9Yazwid= z7EWwd|HTUte>G<{vFq?%_CW4_S>^)PK)QG=>!WA2=Aa@~gTyK$*Wdf!<%*uwmwDVh zI~;1yit>BWFhICRxG44KuYItm{{)KvqgQybFYb;9zm3>hpo!;VEs5y}=@!d9DA)YB z8n97Co04~8`11l0GZ)dLxXGWT)Pe3KXD>hmhE3uU^&K5SAL(*ln8i&gu&Nn2k?4iW z-0Z-{l9kEhZ4J(a?}(m9+ODG>sKp!z{(P=bP;+H9Z;edqqKG1hAZ4tL_xpnSpB&}i z8uUlUWIWwnU-ts`Ba$*FgKJ5Nwwg?mVYH$s$_SP#V*i_W&myLz+1JdBHQ?y#LZ?#q-pCk0wXX`ysH>|i9t1A#c3>pM0+ci z3nODE@g2xQv-CZKvQ#X|RPABmAjlpf64V`#O_`V3P!A2s)oXg;!{`V=c;e&|*rH=I zLkl(}lD->G5*Is$vch?;2>GOS)ybMx2)Ng{WUSIb_z?zR&t5~_H7=PFNsHQPbIofp z;sO$+RCj@GDICOkd}2Y>d^;3LyDO(PTos5$I)Y1F9u7*`tGCMH5*(IqJu(R# zeHGB1jw4}V;}}$-`4{u%{??_bJ^Dcr~kI4Ju{#C#`@p)Y2 zki=$-#oqjPlBwI4ul5Vt@SZ(yxgBMQJ-YmnUH_{S{?n&d>?VjuUz@b+sf}K&wV~%g zd*`Hqj?JE$-v}e+xIKqe?*lNK9I`X5qt^?}9i35KGji|lIGC*;`oRT3jb8omg55Eb zLjopF^#bCmtzMwTzR#%ao$>kzjCdC$sM|P4de9%Hn#|`!Od@)MFG(hBqekR|1E4>? z`@Da;%zym4acYvUpT3AD_%aDLi%x?Rjd+;oB7Z@;Mir!~BdOFx&X~Jmg`vK+y_shg zYSmQdUWCS+BM z0C&z=cPfcDhi8U9n_Mn6&0JARprn+DkiEmpxP=O14M9YXjW}jL@IvQuLpio>o%wva zRkJh91<%ps7pdSZ=B;g5VFCkFIy$YE-F>!8@#!-G2nIhGNr-c16}|yToFZY|$8pT)O>u0cn9J4-mb%QETSv&NQ!`dUiQ3hSuYH93 zjp7Tma!GlNixas5v4UL7@AT zMuc?Hq>|f`u$S!wpVA}D2knRJz^4?k8efa6`@*$`oc+UE~p2po^l!_-|s;olAu!&;f3$H6}H1dXy zF9eXamtt?`Q!FG_n$8D9C%q8YWS#|8XphF?T-M3j8}U3|hjx18Xul3(RX_@a_o6|{ zAvrq~pLo9T%c@kV6e%b<-`++G>S9gn9L(`=gXDp~HcPDboa{#|pGc3M0`BMQ7T_EZ zba+e07(z@yMZ7h6{f3)5-qI-=**l$=Bf)0a=%qzpun|w|7Vrk#Na9+vwi;=_8Xal6 z{f>C7jL3Hs2{KMwVQ+OZOQ?H8V`o4$VkljJ)R=JxVdr0t&Xj=@$QFI_>^PRlx#MZD*(n z%TF(UTxzP^%QQkUxwG4XO--jiyi45p)ygQ8-Qr{SQE7dq>hgv=V}?8BF{5xB_j}MZ z!nH@Lxvc6Hshek#h&E1f0tIB zzIXL>1WzbZMtVEA;jcvApApCl|2R{x^@BW<_N6WnmWtS0cin#dpm5aegM%$$3C&2S z3)L2UO6f7+nu`4ud2B?6P*FFVr2L5S;7cm4vHG_)my_z z-f8DWMio*k3B!pW-mFJ1qOi)g<%Pr>R_KA8pDWX*7E-*mlnW;qK`D7-1MJ1_RR>_N z)oP`Q|LFP=86IBE5+#<}aNdlyGTAt#$NdG_3Q!UDoK3%RpR~2ja&ACv63dboUN($c zLRGFhVD!79ddb#8^|@XyhUgSlk#w?2xOi6AhPjAPYr)tff0y1$=fWIrk9%5Fq>-+a z*G-R>9)b?}er4dZmyE8W1-}v#b}0wA&#^B~d@j?q zVVN|w89o$Vvl1YQ(F~w_$w%8KE%8}IReUis0!W!wrzpc)H#se5%rG`jua9+(vqEpw zETI^Nn%l-Fg=#csQiF{pS;yytU$WF5`AU0mima!AB7rmQr}E;it!C$3hvn^;RXlLb z8**)-OE*A#>A#!;80efja~C2W=K@q)irJBucW!`=3>j^=ivF4OQ%Mxq(io7G#@R_< zpV*^>O)7dZiOV{<^ZQ6=wXcpgbF-GR<-?Tv(c5eO!c7{tt76tpOi7dx=#OFi+v(nc z4!}Cb<;(&!v5yzCMZlc46o*KoJXx#4QMKE&E9dM~E2FaLqVq)S)vaC=^zvvidVsM) z&8`k^p$<6LqH`aaYIfEUV*{Eb*`JY_v|;xRIA^i1?v^}+R;hVGek{_OnY@U$y|lET z4O^&-{$Z}}x}ACjoOvjH#hw0Rop5tyuyRS4ZEvbMe##0fwRn_(4^At2?QnidUBQeR z9+<5gDNNA3MFS#d*G&&KuPn1XQ-Gd_6y);J9N|~OeLo)11}wbph{$sx-)tiAudX*PLU^ixgS0?;&(#M&+|#=o zm~*ZuTLhNt~I(b^a3 z?Z80ZQQR_KO2bg5))MNNWH9wh$JMNlf!)Vn_hzg4#n`%-J5#_734!2lA-Thmr#9R@XW?m8D+sLtitFP$;8X=R;5_VY;Jjv12+ z?9dZf-(ss3GN3z4%5m(($5IZ#|!AYsv@?mtW|N0RwMZDL7#ok~v#hlUvr( z*&KsC+8qQCoqn&=)tnY-hJV1v^s9m97WiKcJVLsNeg!w6d31;3S}NJ^R@8UN7fEy9Q7d z=wbKLj@Nut==}$C0>Hz|HgMnO`1d#&_qE>+0%U%G{Pcxk(0|>VG^<-^6sxrinrKu& zJC5ioTFk%wNLTN@6U)f@ki<*N&!b|x#4B|_)<9n{+N@0(M)hG z{9?ts_V?T7_nQNq!bUw-N0jv^_k@~f|1Sm6e@Kqog#~O2JzBwj(?|nYu1=F>Y>F-H zyY;K1#gcxOi}0)+n~EU$DeKGwvac@-(AHduSZb35t!>Z*dX?)Q`kYhezNx-(<#bt-L*n4trTMVvKuJQV&^ZFMy15>& zlpX#sIP{{tIkj4hWE{{}5igA;E}QPSGMR#k1*lV|m!NLu%GZFV>Np6$!E5Y@AkeFR zb=fzvURuiX^^vm!G@&N+TKerP`_wN}vj^F1Sf|Fm5f*QbD}uPiPXHa(i&5(@OM}j2 zbkqxwMAr=B=_k{BZdav2v9jPG(MMBRFI6|c8QLj|xSIMao6C`29Tng?*VC=YsF^Go z+!b?{0bQu<5FWR=CP@l{wv{OS@;TOs@EqtT9f73U^vC5T;CwN(9gi8dk zfhz`?Pw4_ud{t%~CQ^dkGRDk}uPa*~Ic*=>pt&fg1UareKkkduRnp7+yzThS%jgp~ zuP3xVYohFNs!bLuvuAqcC|VbFaw;t3==QLr2mKzDp_10MX7zKLHz)JT*CwI43EZYkn5E zCh`e8ZboYu&|JP?2{O#v+|SfsZdM$ z^K(i5zvG63Ie<1H7Z|Qwz4Cw$R;)J6ei&>#>DBY_LnQ|2(|*l-;qxQ2S()B)d{nw6%t^u^nOa$9_$`Aql{{S8IUdhWqTdI>C%FI~SE*S=hYv=hy zx;p)8{VzJX`yBS*dAdK`a@l$MlY}2alUln#+mjvmgw?V_xZ~t%f+Kh+Dv{cwbC5Io zxSx*EX>o8;NoOS}o+cS5N(T{_TP0QOtKW!}rA-adPU)xFrd7EqZv`iv67EZpi=D0W zG;GZrs~bI0!a~z35n~>6(^*N-tXu~Icu$)1lt{qwq+a}@fJeE8*u1=`($_SHJxm%% zhDXxFL}O~pPb<}06UIs!*V5=?H`B!SkIeD!c@q%E3phzn>X@pcfR>iEu`4$T7-=W>)cQUUGGkM$SVEg>bX z9v@^A5H29Rl24L$q)}F(ZJUZ2b2OA#3&{&ZcM*X8_&VCACzoZL8J`*HPt;1}Bbyp)D!p!1Z?=`4ZM!7X{a-@EAQhZY@+h$-e_|R!VlOo6cTWU*B0^M$I zG)l`EP;6;kWQv$jYoo^$fGa%Qod7JCJC=&qWBflT;My!wbW7WVY zcfR#`$OlQ~AK(7_@zwVCw|H?gtYa_c5!vr`MXulP=qFvTH+`6p@(*wS{XGBbh3CU| zpB^(-6+t%F!c?<1)BN3ZqKi7OHdlzOce=!#HAeDah4kfL>RdjaAK`lJbKyL-#gQD+ ze(?H}-p{4V`;2~Lk_5kgOmdD6ZC%M_h3pK8oQa_3b%F%IKH~4@!~EyC<;AYJXBWGA z>}Mjq&eaDNXeAHbiFfzfi8-%T{FTLvTPdF|&{amezD5|9!A_;FT|;b_038VE>lK^u zA!gAA18GvG2oX}5FXXh8YFe+Lc2LSHXZB*Atl`?oY=1XvtSXQ;9p=}alrBjQ$Zn{b zZ}1$F?GdS))-fE{8pHdJZ`QcvsaE4ntygUJFdG&frNVCIS&Tp30U{I3GoI_q$oTD! zj%IPBM#A0=l4MwdJ{|6pb6X zQfPUXY}-ELcKfC! zW}hMa%8t_LyRZh$6?haE)CAJ9q(v(cGz%LY9mU|uYex~eWt(|Es1>(zg`;o{&o3F4 zdvNlL%j*JN}Q?>RQ$55Yurr2uW>4Mze`2_*~(l`0t)Tu43z}; zVDI-qEDi^{-nLy%MfYkRx%i%0k2h`SmM-B&fBxrl{a=7qhUV@&HzmnoMb$gA5_^FO zL%+iw)wpNJ9LiUK1upfc*@h`2e=N6%?dBt1ns}K*h@M!<>$L#3HhLQT)*mPl2kdKo z%QmZYHT$0gsR+DFx&HI(oB63dRe?w=#Z9EIVTAwyJuhGfd#)M=Aa|d`v5TJWyBT+l z+grCZxeX6Jz%0YSdpxYo;*^b56MAM@CKtb9jps*j9Hnsx*)pRyhjrKLZzl0t8+74j z1Kc|QW{6=R+%WL0xd+BYFGsDtw>7V|>u_HilS5XQ*NM(VuC@hruV$Yd_A_mp5_tq? zdt5*pZlXI%o+>`pKS5BI;Wn4xjaQXQ)HlEB*pn@E!|Y%1Y)(tz ze02Djsa}o)V0l{|=?EFa0?GZ4c#kDj^q?7?1Hx>-fnxB}oOH@z1UdVZ?mSH^47a^j zi45h|Ompgk(r$=3B+Z^3OWeps9?}{} z(U8DJ0+hPaQFs7-pjYsD&#EiXs6ko3J{j)|8#RTww9HpsuXcpyrF%!mGmW>L5R;au zaB=w~Y>P+SF^fDuqEVXP5=elmM@i1WFaIdKkc@!H0%EtCs!(fyiL}eVv=%@&9=KRa z8B-XmD)?c#c%~O4CgFkAo!>X1#)`?M%tAc8Z9o={ur5ZFGM@B~F_ zHdPuc{Qy=x?_Q3?HpPT1XfPYx-wHbJkYDd>50JBUKGHotu^I_IS%{a^>$Up> zw$z0v;8`6_PMgBUcxk8u(3*&u-(%Hkv(jW&>FiD`5L$(omDPo8{;J0$+D+uzV*2S1 z5~9FEM>(@0(T3=QDO|WA{NBs@s1U7(JAOc}yOWmGde^3YvmB_^iVPI9Edrur#_BY* zx*=ON>5x3fYzZQQ%>Qh4rbC3E&#+ldKCf!}JE4l~R-9X@8`4 z5;uC4w@}i&KWKs^sUgSyCX3dfIIpEEZZlz+WZjyU9xbY6A3CPFxKifW_SQ|kNYbZG z2fE+1(<(cizHXQvq)dQ4gYlah`S;nHG12MKW(5J{+1Bf;ztpT5U-Ek3Uj#K7BO1he zp*?I&_0xFDKyOq?$i@BwxYIIi<=Y+pTdPGi*jgo-HU;#E_#h|Of9`1MxoIUwAKhX1 zqpm}jZuZ7puNzd8z*RDzv|NOp&Q@)%rbVF=LTg-_u=@ZIYs13QDse59&?h{XP#sv;A>6YTXK4_sba^n)VB)Dm=7gLMB|b$Y3vA9VC4 z1BOhbDY3!}6$~~!hEJt6G|yW&hhu!Ekw&}`ohFBIx%B={C(IDm$Z=@gHJ%pY%L!!;z1!-iyUcR!hRus3|~xca^VCPtO~ zx2rZUl;UhWe(?(fwY-(iXsy5c9YT1=37DupfC5|I!vcYhF6N~=Jr8yV=npeOsxQCl z&wT2awGuHUL>>8k9IVvirB0#nL|_s|uLG4cJR_W_=T7`LvBoW`Voofb62_Wc!>?Y!!ah7cM0= z>{sqTEHr0UmgHl{eX7H}{j%P_MuY^o3a8p66DqL8`@uBEw_DEFcW}Y=mM=)9h<963 z#d_ssh;7k)jo+9^;B;2v_?xkD12mzot7ziQlD@DF2zZhc-1(_Kb|hn&;fi?ojpw`S z?OF=Au?`U4quZ-vgRFHjhiB*jNrBLCuTwg%AZVSco#S@faq^rOKMa{ZKZ71r=#wg= zSURVcUIiDwRkbkdODO5Kxa{Z4ogE>~`+dH+@nHU_4@|ML>zh#%I?N}?iZ+%74$#+n z?SzqGL=_GfTc@$b#}%vq9%c((%=l<3p{v5D_~TY6Vp~sDM1dLeZW>F)7l|$EXL-Fc z9IW4pvD})vvjPZUcWSo_tMt+;=1~M#QDe1uTW#Z_0Ik}#K8={-0P2KNgRazRNSjdw zqI4k7csU&r_!S4`C{sg>O(~`8QmMTilcYodD+!%jO$Cb5VlG8L|LP~;KHfGe3RA`? z%d(%g+0mku2vZ>uwGecTX*ncx#Uu3W;x;)&sstkUdJ1tIsZ+3!$%);`s3bS>@>tVL zHNmfwl;#Vp=t*^u_)uCancFox=may6+{Oa+P>cf*N`Q2+$PrA)xm}qSebp;odqZsy z4z$EYY4RDO`Dv>Km-6Uh7{eE7=5S{#RHRitMHgepJ86$))y3u*z_6HzR>`I8z@lA9 zAopcHE@A-nR(OjvX&WXWq-dSCQa{c1o!(c1B$1cZC!}dguaEb1NUWNAIpJoM(7L9j z99GVnuN5=Drp*cXNo+tH&pMC+QbM@7W~S2Z2OqRUzZ>sS2^IexcID;nRX#~P-`$UA z&+Zc_rrPk;)lU4`ll%p6wEKTq92*M^>h8U*J0$!rJjcxeqvU+mU!M9}`+K9i^S z-ey@qi}j8yJ#ysf>0!r>NyWUrKTSgX_ZOS-Y`0uD#ky=JJba8~jT5n69LT}6Jq5s{ zqFw8tfBZ{QV7IZ?JWp*MRklkSwdP}mv8m2;R|`kZ58-sTa8|83K|p)6!#MtVRXi(s zhbYM^s1UYew;;6`b<^T!Yl8?Ty#~ywJ)L`HxFu|uDTm^`N`CB{H00=2e%NmNB~nYo zI50^YmiW?1#0<30J4o>|bzn8vY8#Trs{>|c3J?1c&p#yq|gK?0zMnn9=iuXIh=i>9mSIkwx1KY|TrT z4@g$MZ`mnvuxg88ga!%D zmrX-b=D0TU3HJ?p`L^~@Q4BM~g~stYJZPIW6~L8#v*CG1eje>>*Jfvkp}u4fE)^qt zY4CYTnGLvk0CaO?+l%G=syt_SeVkNH1)K;{=I4j=hGo~g^%P8 zK9k9jNc-~Zbi-l^+JM=#{mb+Ek~DLPX@#%GXSOeqo81>{fo{ttFHhEJHN9R7-NnUt zRfM-Nc+Bv&XriR?y*&pxF%o1elWiRno_7%jjMZXJ=Uc_zyM3VlWJNPIYTnQ~x_Lb5 z;ZysfL4?V8#p!bg!i`@=cEcE9HS?x++=;-T(UN(qn7WeJgM$;G2ir55$BDiQCZkSc z+^#u+vPg_#AY$l=Z}ihKb{Nk&94qs@P7$p+l*>8E zI9YCI-vW1b!JI^=xVRDTKjEw$^8#>GgRd8#VTc4$s3ftjJ@6l1{* zE>t@n^gW#Q>?ZhD3zQpBuWyd72vl?7FKX)kF0>7djk@rvaxCCZhjvjLd>@&bO(9t~ zQRjpO%GA}Z-LE+KXt8%2CCPrYVc^VfOAa;!ify-KGo^Gsi97q*tjj{-Z~yRip8w^T zU9B2jD*5|A-q!HZ0rz}&g)a`XV&{!kb5uqC{vc8D_C{wn=Qn@cj`1HZkof0)2XQZs zs2a)^J_uKf1rm-IK1I1RR-cl~)<0dTe2>Wn!Jc!bj^pu6OR0t)j=$ z(rw19*4}M(kXYHRG;>% zp=cqk@%Y}N;=)wnV(1sdfpIfb_MHfZ$(nlm7u+nX@ zTydW^yKh{oEyVItMkLLK2^)}IaH3UFD?7MeyaDp`-aTg*qmeN__)w7Kbm z4G%)x*EyOqRU7q_sciB~&4E#;r!UbfOrx7$mIdwca|!n{*qof6w4#Qq3)5bXqce}| zb6F;6TdOuD`}(%%Q)64H+I=Jg?i_I-Y^h0Zag7;P=o*`E+H2BN3H)vx4$kjRSiR-? zD1C)YwMpsHnlfihpzLTlaju|0ni{n2q(84Yi@YOh_SAS^F;`P=;_$aQ z;~phW=SQ&aw9Ve72ScZW*n<(L9*(nwOQM*2Gfq4G)g1u^^0VD9bPy}51T^ZM+Cy?O@LXS!smRXsLNaNEuVj;G^7!rk&ELGC;8AbTiq`XNE-;kB1JHfwVe#)a zI>*HynI+d_ajU})i;RBo)QOv*kv}ciyZp~i>TkZ$nWvu~Mlv!%$uvisyq7^xh;wMk z!pl|3svhL5m?qXqHW`0bw1_!(ddT7s_{{9v3-5(wq( zTOxc0h>{Y?uTyZG7$@I9MGnOn<5+#nK zua*@7rn|AB>5fS~ths0+zox5~&6^m)T*+h0-+mJ?K-@gdFH=5zhP8hYLyV|*ltlPZ zZl*PAJsnqgs{e5EVt#py2*mpjj>10yT9bu9GM{lbp(f$j%}ZNyZO(Q=9=uOsS#T{6*|!_t%uF?(#vt6hjS_H7dB*TaZy zy&Q=L>>w9}_cgTXNei*9BNZ0sXZ*N1(FN&c?u*e)^yi5>!3Gs)g&n)-83S2&HPbD@ zw-%vYVHK8P(`>PN6>!bf% zaTlA#HxgTaW)PFk_}!JHoNs5B-keuZ{(Bhl5$bqnt8atsfAF7&WtXpI+Jb^0wZ20N zPK_Z;rT*`t{&R`A!0|>LX|Uh;<8|5h<3A61Oou($dwk?QK6rj24oE#lYJ#W}t$DW! z2L}G&JpO}gc@MsBe`cA?Xs~rl)~+KeIf>znwIYoZmb>|q9S@X0RL$SiX zu$Ak<6+dvXJKJrOdt109JRAZaY7vXfHhpS@cGQ2!ymw{z*p2&pAurtM4dUjk`RUEl zF1_V_MPHlF3*=A;<}SZZzpQLag_fm@1*c}mo0GUq7p;IOaF-N^wNQd~$O{oLZ+i|> z83i3zRC-qAE&>W~vmp7(Aw0DrHLMIJ;o@N;LEDBwU1O(x7j?-kjwi=-{JzL&bKoor z7GWp+I5|*)u*#9b(~Fvzal@5S0guMQtYI&dyK5Q~TTXu+_#uhVtH&f?+F?r_N1o0SD9 z$cEnv2IC$JKEqzQerKbo5Af+qLwztLR-vYnMp_C7HXy`QA8YI;1iMI zsN5&~*`k4Is@KkD(uzLazdbRBjqNS)o4zJfxUn$m{8GQDKe#cBjr;*~ah`i+d()>? zyJnJ|hZt6|+Ax6RKhgq`y=n6fTrr$O#b>v6@Znq$2Z-w$!@!t94kx4!EMgSW%WRx2 z(wgctQ>qj zX@9_0N58GsgvvCJHTtG&MQXnu1gR}lWY*Qsj&nMkhPMmLca42yD(gM3hEC)Jol>e? zMiaJVtjEbP-LTKMw}a*E9`nllYn`aXEBNggbxjG}Jm8w<7#J+owqiZadqT_UDiLE- z_=F|+h_@|UX&auCPpnfi=`CwyzdA7RWq?UZ)LI18uq)tNrlsEj-lY-g2SiC&;xkE3 zGx*x%mj`%8BWKL44QhxsJ@qMl^xIn50MB6LcJBulLD}vk-pS7)-Ei?|s-fBzr8AT8 z&iU%e=Rb{ZCa+&nhNCMFicuBt@>xvrU$xLmv29x*eUHL;p~V%+;qz@jLnzTHL8qtM zp%0DQ{2HFIs?QunA5rIPBT1fW)Vo%zO**_xmHsLeaToRI^k%QwXi;piMdPE4_Z?)wjdcrbI%te(6A}>8=yJ8)(YYP&tm1?XCdjHJU)DT@);wSY zu4vpkTb(KWAlCCDsKWDDw1TdFb+pS|^{Ou8F|VALLa6{S9pJFm-dOOys3V>V+K!xi z#m$4!3g2S=#6r=aCm(O4^f0<#`GS2WsF#ylZ;&qe zk<)m!;w5+^b~ris_=~-Nx3uw3-|Qd%_hw4_EPq1=>1I4sEbN&eBg%)xeAAuIfgt4h zw^MD;Rkn2`^B>n!O#YT2meL1*cD^Koun&D8G1XB6F~mg(xO8Rm?HgsWbabzs8f`)dsqlx@uQKI;R9^zv|<i|$(_;5xj_qI>m1<4w$13roOwWB2P0NQH<=gpb!FQ02}k*> zb5CnNgvWPS@DqRrgJRGF_R0`HGgMFV&BW*f4eO0NwX8)gagDa9^t1lpWcLsgW^I_v z^XRJ+=QV8f8=zK$Akkw6(&-}>liCMb_K&xw{A~XwqJFkzGr8l!0T^#ZY+i5E=^ON( z%1+k#MTRIG8DVqQ*+=q}vO#=GhE3mw>u6nCU-T0!WfCR*e2!~OXQc~|_Os`N_|-u$ zba9gn29+BUc{mDcKwJA#ZM1BcNy9gs_|!i30DBjw$PZO-;OchHBi@#MKkw`)@u9Zt zIV33HgVJAl0;tHEg=@cPc?&8ULQBph*#KZG}Xr>qcyM=*63En|=oRXM* zWcr~-s*8Ffu_RTr2wlLpUsxL*d#JpXV|UMciF;|#tMnM}q7LlQ9H-1CY$a@WAp7$^ zxxu{XU9y>fSHO%qXlcTllh^q4O9`>K&kIAGP452H@%^1Grqz7M1N+a9Y_|NAa?JD6 z2P|U?U>Q?3*Qeaw=fm3Eb&KyVv$ zH3kr^2VK1J%MZUqRfSK)Zo@9Rb^P>r@Y0*UtDb1s+5tkL-;YXtBiJwe?pMOR|5aQ7 z@;-^d-Cg8rFt9IvQSvubb~EQYqE{~bnAW}EDVE}VKKj7E4ZwE3Q#7O%2SFVTzL6HmI zpPr{16rpd0NPD6g)9Wju6vkbZg)?*C{!9#x8b5gjzjt7cbm9~?xo(D^NqN(Jvj1l) z<7fp-*r$)%)-?D4@lxsgG{eF{esm&geOjD5&2Ma+yoZ8w62-+DE=ZhM0FADtM^xPp z3~DsEcFx{T>=3hsvBuNpuh*MZTQs+koEI!BM|B$WVV{aA^UxY*)wjVUecH-67pH7XC3-GjT6u^CB z66?}_UUcREQTNtyQSaNk_!bk34T>mIk|L$jjf!+hH`0yLIfK|pcQb^Pz|hSATTq&z zWN4Hg1{i^%>-QerDth)lXMgYS-g95~KbZQ|>gQQ&#hib5^4W;;4YF;>RDvdKbE^U{ z=6ucXczW-cXV`2>SF?YD^2`=#(&=llP~tYD=TpYAJfy2*KKepK_B@cYt_)?m(~K#- ztCs|6Wa84pb}xNOsAPpuFHg4}cw#;&Cn*?@m#*?}kTPXp*zLMX!uKni&-eC#tZZtJ zRd9<_zBDR0cW>UUNR4A*gv^v+i!*M$D4UmBkBD&j6o1Xy+5FNMn%lQriChHW#d9!F z%vm%*Bs>}#JhX-8j}zEk4Bff_QpFG68>g3_PNr{8rlz@s9dlh!-VbRPAc0A{fdEZ! z@@d7Wbne2#0aVFrY)*WYPM18r(ioFZ&0tAlk2fG#7sm!76UFoXSj=0mg8RHqQH=~M z4k?#PaeQ=cPM}}q&{kTZEH}TFH|(4O$i^|7oN0=dUR1ApbZydAMV>6I92*&

#&9 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

rtBo6hw4Np1omCzcyZE$k%?l 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%0D`wiI<%do~a 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 z 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 z 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

h^m}X54Lbqf1zd`;G>3a~ z3x$@4fXA7-&ZM+25kR~E$9VyDO-h}86fThD7#^hTr%p6k>1CrfGI7w^0DIV-IX6#5 z>FkM4V3PAOFQ^@gZkEyq;W-*PZB!t#O=o-c2-G| zKsa>kxl{;&(iflDSZ*aL>MGcdR>w>uq39(hgDq5khAYLbk;++*9?kck?knGUUY~2k zVD0+#^Hn1Ri!W@`2{2v`6{0Uw&G}2kx$prJCJs7xHm}SVg*_Zr_92sQoU$nM3vZjoF*m;)FHlIE8`X)0gM-7lcuYJv+0x11*V@ z47$ic5bUJwDmB3nW01#FICe1=GZO(n zjuxU`4S&FrJXUt}WJO2@8d+0|4a7`&DB@&Bt(vPl<1@_T+;q&8&G+w5aoj*b?heK{X zDf=~O)z;_tSH`d$s&yW?8Y42WkwG2f-&X=D_+~s8EDShjd?iLvn{xL;)R)Ff0;C%{ zL=|)S00$y#pJmV`I0L{}WC#=7n~m_``*5oWMQPv9)rVm7Bn`llTMDTP3$Pa^a)`ZX zM|kf%Jj|hjlBAUUT(0F#5Gy{!4tM!L`XWL06_HwK9Eo)QmN}g6Y~P2!H56-a?-x&k zb!=#M8W&Z?HxZ;J4%7F{z=}LlW3$m>fG4K$Wyp1(mD5K{2nuQm!Ds3q=VWgVFA*1G z`}_0SI&t@twEybI8tyo!9sWLr^f;%oRwrjf>vrqY3!{GKvKA||t_%H)I19OkHx3Q$ zTnvn&H-c0r4;9vHr#3vc`*vr~-O$?W0a@bdR2aaMGpP$&ZO-tXdf#N1g@F1hrb~j` z5$D&}g(nviK#Q{yrXH84T`G9U_rD6jv+KM33V}1w0M#*8)n{9~qp5|U6u8B75p&R2 z$xjCF1c|(=nA*AfD(i_~U@v|Qn(DqgR`7_YdGCz)!(ZA6U0$f!;0g1teNteE*ba

woMYY1PwvQ!FUESGN~E*b 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⋘t^-^$6C)_M=^)vJ;}>M|WB%+WnA} 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 z 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

oltgTVtjF{rLlyR8vnW~(F;~wV(#uY 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 kz6$s%SgWrfG*l)w8t=WyVEcK19P+<1ONa4 literal 0 HcmV?d00001 diff --git a/assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png b/assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png new file mode 100644 index 0000000000000000000000000000000000000000..46410f3518ba2fc77fc003e48090b05f65b898ef GIT binary patch literal 148682 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

  • vTn*O<$2u;te;Xbq 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 D1!+ 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 literal 0 HcmV?d00001 diff --git a/assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png b/assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png new file mode 100644 index 0000000000000000000000000000000000000000..d6ffe769ac6bbb1a590c439c759223d2a1996886 GIT binary patch literal 502324 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 z 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 ?x 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

    mi}>hZj_nLKhL4R>lm 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

    l7|x0CF0!iuN2; zJCpu%f8`5CNoH5VKm9v{vshRTSaQ1%(^@3lbHYIlIZ3n)4mkMKba%6-DHr!dTi+=T zq(El8x9yK!yx1xZJyvCN*c|QG^u9k^*X>=v3gsx@$_GH2KcbuAXb;s;a?8^oMz}@l zJtwX61yD@@D+FMlbA&9G8z(hl_HVucq^`mnH!U`cUSF$bW#n4sv}({}Cj^fOlTjM1 zQ=E+TbgCx2`!hUB-ZSAVPdG)6$Ymk^co^!&*54$t&-gkT#b8T z&rFnMM_%pRgdV2sx{ykuTWr>`^cXXm6;AV&Zy_Vrno?B2wvyleScMo@ zzYVeq{vbn|{JKFI7jGEfwlIW0=pW$lz3H}_krALVFj)soUy_hLDbq~44Y4q)?eJe}&c+2&VlcB<0X1FO_1%t!Z3J4O`zYg+*mn8RHxWp z8h`_TT5oJHK8_B9en5@IQpHt)_<6(bt+rj9`TpJ1#(ZO~htO2AWvBvenX_Htv`>>Dg<6AC^{CveLYQRn+hsNV^%Y90;G#L( zahbI&Knyr;iZd?C*=?QlWBd7wY=k)cr1zY~Cq+aQczJ;LPyM{*X~Jo>Ty;5C5KM?6 z;T2osj~||zuePA@o2^VQZcrPJ46@JTLx=NuQ7zQ518KLzN5*GN$WM-or@ict!2X@gQy&AAs7L zv{O2C(hQ0(-Oo_PK}|Hr@yuNx0aF|YwL}{Q4jB}e)lS2B z!gx}m0F$oNI)+Z!csn@ld}%2EJ6zIa@j@4_&zq}wd1_|T4Av*-2G2_upWA6TS_&F5 zVI*kjHk_Skd29SRp%ck4QLHQX-ULeekLkXRmmHY`d(<2_8#+!#4W=%0IUnI8k5p{Z zp8tz;0U5sjo0gy2#A(uSLH$h&?vv(dd0eKP`M$L(d>?b$-^hb8F2~4eDfeaNyS%g~ zg0VPnWRa?;@{J>OSdR=H~johM9Y*Gdwy!jq!GQGF^ zenwc1xe}J>d_f7tNTMJ%uf+z4!jvnB%!sB^MZbdDr==KDAxSL*&@@TksS2Fg`m3?0 zWtX!G+uYHGB4@|=+gYt#U+8(@Dy0iyJu$}zg-Eh$scN4*QgppWex_38+jl&-$TnXEZlGM318z7%U-Dd$pOJHcF$p}2^LRXHs8U~@Z z7*e>^&K|^WOu?Z6e*M?#5Op3YwZf{s{4QD?i;0)VOndUFBaBL9B!585d|w^9zmI%r z`^YuNA#PadeYV_gETb(_JYhDrr+47g?G7Yd{(1VEWY}vr!C~l;lBC5ZP3h!JRXI30 za=Dn1OKq&S&Wi|>wtJEhX}FOOmjq%)wfPJ$!fx~_&V-v=jDNs1#Uz9u;-v8Mzfrvm zyA8>io&K6G_w&2X<*@RuGU-DN^xf}uT6?99%=NNkKb800-Fz2O;u7zF0EOVXS5HN=~=02VaxmPSwD-w|`A!^(~g^ zGUX}+df#fxu&;?Dcryk)KAYmIb$6U85BY5MKx-b;h0rwfRW_E7r0|(fy(mH;@EwUU zoYgsN?~)CRtOAY61M|m2>PwN5HPeo$>*Kgs#holWmgF$EiLzaYwhgDzz}SP6-;ZSi zgrIvmkgw zs)u*+Z3S*C=<{ZNsTPlS~;$I5%w$miihG$YcL` z;Bdz-51CIkukgT8=3Bd%Hw6^H1ORwlzg3qddM4~oU1ZTg*WT$@-KuLtrRv>w?txCk z1g`k=#5Qxrk($h>n7-pT8dQ?~^e#FA$oTIv?hy}ojukR6P5*&!h~Kixcm3pPb4^d+ zG4^Rqbch9umj;V@ztpFR;u|?I%hXfjRQyC=Wg^~gUsd$M(915eJ%x3R9;21)xu3~4 z%b{ZW8V122Q;k@v(Q$*@x4pyP3oQn`CU?Ma%u!QS9M{e8O9;^9S+rHr=a> z?rZRZw_fih@3v&9`y5Vw3eFv$OX<f{&KfBlIX6U`^h#z&8M(CIK`Jsni-1)Ha2$yew5Aj&Q$Ba=~1-%51Huyq#XTy4ym*xRA~9%qxG- zU5{g-hoKZ?2$5d;TxWGlhjqD@ieZHNv^JLkdhcFrp89S$yX;P-q4nuMq4oqK~iC{~Z&0@_M|usOf2=ru&|CC3-Z%!ytJ@ z*WBY#hMmMWkrV~WMU;$E|7@0ai*{osIl1C01SEg&z6-llQJdO)@E?7gsONLR1{QG$ z@`82|l9-?d7ANtH*ww8iToMrufMlZsKm~}3qD9iFn%S)z%dlKpoufUb_oniE13IP9 z4-b_*+I`7DTMTXbdql3cDc?yw46c$-3SgKj=wu)sinsJ-NO|b}F=*10`D63}%HHd; z`q5qK2w{9jEe^f`D28vbv+;sIWe=-g485cle}thC_-ikfg0tCDxE$NBZhx;B8xW28 zX%1AvdaSym4T=i~E&W&FQJU2!;mvgHV}3^9$#+Ms8+mdc!je!4n!!Vb16YN(M#ZLD zY5;Rq%i%+`b?6Q{s`*{T#(D|DLlV*O2c#AzyGOL8~XCqdCl8pX*-05`yLI#Q2 z{)!Sg9>-L+Z$Q~rd=p2Sd!arO`fgFNY(DLSTNy1GvGP*nx6^t7k6QJIDX~+#5+-D6 z8$wO_Nb{fisG$D!xF@)}{_vE&x#_QnKgRl{TQ{Re4f%t%Ns9KjbN8Bp4qsLh?ZGA>*vHQo-LfqTc}>{zra0N{(c}Q{HwiLNl30&Y=n$i{Z^^Qxc15#wrf^ z(f6k7_JkMA2FSo>MI^+i5rRsM)j6UKbxhH;?jDWs%aQnCPqb<_612v5H+D^amyVVT8349}O<{Rw! zAQ^*=NkPvmW;AH_G159fR3wwlG>N>I9UKI2zg%}5VJ36DiuCIXwAQ_*#sGpL(5Hnkhb!jr98sAtpQ;C>s7j z=PPA1^@RQ%+mN=+Pca$H9f+wQZV#-esTNBG2}d3s{#CNqO07ZuITbN)8K$o3w{~YJ zC&Wdtq#%!8X~Se)K48;o17&K;Oo6aW$(%}BzZYMtC^~@}UzS2H`O}{mDLtw)OL6BE zXx!%MJrp|<4@Mgrobl^0%`oc?_1^gtQ-6ge<)3?+-l(9oYui22yhK-W6hMLZOPf7=GRs>yMS>kz>K#=^ngm zWY>?QL*S?+^C6rS(gZp5FzWSKSo=knVbCgnQ6Vm-zxQ^uDI0aN=nL{8UFc%TD!hc* zmoH_76Cl|?Fm@X&l~z`HufABCt2gQ{BO(BrGrZ9fm}d;s2A*+SKP;nLc>+ENm%J^+xXf;y6euh8=PcKMTAI9Wrgz z(2{5yQ0yE)E24MRQ)jM?QJbQZ@}M&^(M{8KtLl*R$b41LiWBjqA3GGWgjNX${>cC) zBHMP#$`468^}#xd-uMaZ0(sxJ7V2|)PoYu7O4jC9mKI*mbw~xX+hjGa<36Gyzl>2E zjLtLvzRQb)i&XqP>vupCG`|iaF@l?6^a&SSe8b*+I(dqU^3&@v${k?6m3$TfRb{#g z9=PutLo1$gQ}s@dUC^`8h}MiB*}(qgTgHZw=5MX)7Nj zJm|>ca4>p`4Wo!BOO=ey9(>fYDe0^tNcfaB@v#2C0Xi2WDlJ%EZ-nO#-WYgGPC;zp#7M@Y%vP$J0!3LxKav{} z7S<`2(JD=YQjCD;qqG8=#M9iWXfG1Aj!gxZvNUD~*8}JGPgeS3^AF1j;MJaq$YMSY zYD*uW9+B+Z=~tLhr8YOHh@(r0&37#@^73)}BnB^!Vul%#B6r>dKGDAKu`OSx%Un3|d0NR;I0{^2(_b-gIF3VG8Ec zVV)ocO?#_Qnwu$JbXRHl3}b~>bVcBBAr(F6>WM|A^u_W19+{iIb1@dKh!A?{L+i!h z_03$H@|hHd$}^99;NSvzL#ts zzIj5l2<74N`H`&KaZ@qs7g)B~U3O#sXzu&eeW;f?#zo_K8z@}!Y9(Q#ha46PlEEyD z0oF9QqY$X#4una1X7N+E7;SB0qadt)t^(EPqdRh&qqEysSA+#`w92#R@5!2zRh+8q zrMu&`PK@iU#YsJPsEJmE4UwwOxEh3!2`^|uuy$Yz4r`|x>9f;@J&J+D8xA#FdCGAK zl#_Gr6A%=klLjfRWb#Qvo9T)!EDE{!t`wXq6%_;Wqd(Uj`M^w$z60~Vf` zf@#~rUnQip!+L?3!4QKnU8mfrZU^z%thR?QN!cFha`PHWd z$}{-ReakjuDx6Cv#ESrYQEyxbo!RsVX; z!U7OOtr34{r9k9XZu@vNspV3h{AG$-Yd!M;YSlr z=B(4p(J~2+6}onubSizvGxg=h;uPV_Gb3OG7>Pe%yyyCdwm)9Y8!wU&mC1RF*T9=R6KPY~yQT!1_|=l?_xtMh{Vb zu+j-qczBP`5>DnPf&LQsRD5dO>oUwCc)^asX~k_L>%aki?l>w#Fk47nKONMmKatGr zwn{N~$^kM=FkW%W?P4^P6fXC$4@Iij#r#ig{A>Taf6KvtrrwI|iZ3Ern#d0>v&p~9 znSi24m1)-tGGS^AezBy~AU386>t#LCRg*gSt~R=t^u@n_=S zgF2k#6;!4eajR;UVQs8kg-*`c(Mx~q>~Rx^ zFq-x++jZ_8Ep4Fk?v82)=bOFK3CcNq5dhHV{_0qUb?L%HSv}Ye?9c{jBG{i{iL<{B;OW$9})21^Npl& z2+f3>v8sso>=;u+D_jUw-PaqEr*^@^+{|#9cot)>>_=k5Fgi9e`Kcej3-=^=(0>g@bb{Sv=%R<7lMCp{AD7Q0#1wVaE$+hq;!kDxP$RKJew_N`o% z%WT*W-b3t#+$SN$uplccE|Jw;;>BO{bNW*Tl%?-f+p17c*m7Y?5}s;%!ChE?Op^^J zPubH0-Q?`#9~exuP)xLl;r=JST)bvD*n9apOH}gH<8RsZTLi`W2kMu_6MACROZZ0z zJ!h%1)3N=r)Nda|3x(9f0<7M-)HlZC?idC?B^8>@sB!h5JN?%0mODz(*UfTl$o=+V zTiUDs$InOQa^-O?NGohOgt*@Z*EHHa0U~BCx&lUnOAe^Crj*SW(zyx+o@dzNii{6D zKhJtPy?=vI5m(_tEtD9q{pxeq#_L~4P@aDSKjet`=!YN7#75XPyDtFt@}KGKFBp5) zJ6#DSnXsYF3iBEx&gi=%j$M;!&yLoqx#n*tDCjjWQ!*L)F3548bjk~ExM89QS)ran z_Urr(>inSHrP+au9pU9=aFNWTG=;^LYXyD*ujF%0>Q4RsEFZ>N#Gf)7-&e<)&e<_G z#T6ZiDjl)v@(a0%rCq!qV=L{v&ynO&DvpP3zwHtf%YW?%*N71ol}tFSRLyTm(Dym0 ziqLzTF}hR8qtyHNkoo-=u&w<&F~ir;b|K`xeKQsm)x0JfaVR&GH`bm__B=HuXS;lm z#h5Qi>N%raYtddVmyczhBO$jDR^q?ti2=kv{`bl2M{j9pt!^#_x2L+l)AY9ETJf0; zN@1F(RW}{Y&`5t3T;6qjwto>_{Ll-oO%lDxgKYLB`H@eHT@A;-4#Q6B&q@9Ii!=(; z8QtKFT~X}ob`^)s!WU~UPyf#XG5>CaJ9T{(qv}kkd@MIjVZX{$(fJO}t*tS*mh-@# z$S`MxS?JPq;6U_0na!VEeQ_rIcmFLYh1!ww{mNNdxq z4W47$o?7QPelY@>YSN#VBSVuaYw#$B0di2E}sqZM|i z{}1u?&@B0mXZ^6tC^F%VG<}XAvb~}0v&toO7=hFh`enLw>Sdlm*M)V^=<>SC< z>hSSmHi^7_%=hfo$gdrR~`)VqbF~z{8{|JAELlNw~CeA;k8t@_gPiUYKO5x z;Wkv8j&02uo`*JD>+V757%{2Ih65YT6

    %hI{SQNb7nrcCx{l5w0tY5E;h8!P2=g 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

    Fe< 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

  • 表解析
  • 函数解析
  • - \ No newline at end of file + \ No newline at end of file diff --git a/docs/quickstart/setup.html b/docs/quickstart/setup.html index bb165c8..53cf096 100644 --- a/docs/quickstart/setup.html +++ b/docs/quickstart/setup.html @@ -1,7 +1,7 @@ -快速开始 | SqlParserX +快速开始 | SqlParserX -
    版本:1.0

    快速开始

    +
    版本:1.0

    快速开始

    1. 环境要求​

    依赖版本
    JDKJava 8+
    Maven3.6+
    Node.js(仅 sqlparserx-ui)>= 20

    2. 引入依赖​

    @@ -28,4 +28,4 @@

    4. 下一步表血缘解析

  • 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 \ No newline at end of file diff --git a/docs/next/contributing.html b/docs/next/contributing.html index a4a3d80..68c1828 100644 --- a/docs/next/contributing.html +++ b/docs/next/contributing.html @@ -1,7 +1,7 @@ -贡献指南 | SqlParserX +贡献指南 | SqlParserX -
    版本:Next 🚧

    贡献指南

    +
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/next/core/field-lineage.html b/docs/next/core/field-lineage.html index fe0ea6f..96c5734 100644 --- a/docs/next/core/field-lineage.html +++ b/docs/next/core/field-lineage.html @@ -1,7 +1,7 @@ -字段血缘解析 | SqlParserX +字段血缘解析 | SqlParserX -
    版本:Next 🚧

    字段血缘解析

    +
    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/next/core/function-parse.html b/docs/next/core/function-parse.html index 268f296..f622e54 100644 --- a/docs/next/core/function-parse.html +++ b/docs/next/core/function-parse.html @@ -1,7 +1,7 @@ -函数解析 | SqlParserX +函数解析 | SqlParserX -
    版本:Next 🚧

    函数解析

    +
    版本:Next 🚧

    函数解析

    1. 引入依赖​

    <dependency>
    <groupId>com.dtstack</groupId>
    <artifactId>sqlparserx-core</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    @@ -21,4 +21,4 @@

    5. 支持粒
    能力项支持情况说明
    普通函数调用已支持 ✅如 substr(name, 1, 3)
    聚合函数已支持 ✅如 sum、count、max
    窗口函数已支持 ✅如 row_number() over(...)
    嵌套函数已支持 ✅递归收集内外层函数

    更多函数场景与数据源差异,以项目 docs/02、SQL业务层解析能力支撑情况/能力支持情况/通用解析能力/函数解析支持情况.md 为准。

    -

    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/next/core/parameter-compile.html b/docs/next/core/parameter-compile.html new file mode 100644 index 0000000..e175ecf --- /dev/null +++ b/docs/next/core/parameter-compile.html @@ -0,0 +1,11 @@ +参数提取与预编译 | SqlParserX + + +
    版本:Next 🚧

    参数提取与预编译

    +

    SqlParserX 可识别 SELECT 中的 ${变量},返回输入参数和输出字段;传入参数值后,可生成 JDBC ? 占位符 SQL 与按出现顺序排列的绑定值。

    +
    ParameterCompileDemo.java
    import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;
    import com.dtstack.sqlparserx.core.parser.ISqlParser;
    import com.dtstack.sqlparserx.core.parser.SqlParserFactory;
    import com.dtstack.sqlparserx.core.parser.base.parameter.vo.ParseParameterResult;
    import com.dtstack.sqlparserx.core.parser.base.parameter.vo.PrepareCompileResult;

    import java.util.Collections;
    import java.util.HashMap;
    import java.util.Map;

    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);
    String sql = "SELECT id, name FROM users "
    + "WHERE dt = '${bizdate}' AND region = '${region}'";

    // 第一步:提取输入参数与输出字段
    ParseParameterResult parsed = parser.parseParameterSql(
    sql, false, Collections.emptyMap());
    parsed.getInputParams().forEach(param ->
    System.out.println(param.getName() + " / " + param.getSqlPart()));

    // 第二步:传入参数值并生成预编译 SQL
    Map<String, Object> values = new HashMap<>();
    values.put("bizdate", "20261014");
    values.put("region", "hangzhou");

    PrepareCompileResult compiled = parser.buildSqlByPrepareCompile(
    sql, values, Collections.emptyMap());
    System.out.println(compiled.getBeautifulSql());
    System.out.println(compiled.getInputFields());
    +

    输出示例:

    +
    SELECT id, name FROM users WHERE dt = ? AND region = ?
    [20261014, hangzhou]
    +

    返回内容​

    +
    阶段返回内容
    参数提取输入参数名称、类型、是否必填、默认值、SQL 片段以及输出字段
    预编译格式化后的占位符 SQL 与有序绑定值列表
    +

    当前通用实现面向 SELECT;排序、分组等标识符位置的变量会以内联方式处理。

    \ No newline at end of file diff --git a/docs/next/core/sql-type.html b/docs/next/core/sql-type.html new file mode 100644 index 0000000..12ff039 --- /dev/null +++ b/docs/next/core/sql-type.html @@ -0,0 +1,9 @@ +SQL 类型识别 | SqlParserX + + +
    版本:Next 🚧

    SQL 类型识别

    +

    parseSqlType 先按所选数据源方言构建 Druid AST,再返回统一的 SqlType,适合语句路由、审计分类和执行策略选择。

    +
    SqlTypeDemo.java
    import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;
    import com.dtstack.sqlparserx.core.enums.SqlType;
    import com.dtstack.sqlparserx.core.parser.ISqlParser;
    import com.dtstack.sqlparserx.core.parser.SqlParserFactory;

    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);

    SqlType queryType = parser.parseSqlType("SELECT id FROM users");
    SqlType insertType = parser.parseSqlType(
    "INSERT INTO target_table SELECT id FROM source_table");

    System.out.println(queryType); // QUERY
    System.out.println(insertType); // INSERT
    +

    支持范围​

    +
    分类典型类型
    查询QUERY、WITH_QUERY、QUERY_NO_FROM
    DMLINSERT、UPDATE、DELETE、MERGE_INTO
    DDLCREATE、CREATE_AS、ALTER、DROP、TRUNCATE
    管理与查看SHOW_TABLES、SHOW_COLUMNS、DESC_TABLE、EXPLAIN
    其他无法归类的 AST 返回 OTHER
    +

    具体 SQL 能否构建 AST,仍取决于所选数据源的方言支持情况。

    \ No newline at end of file diff --git a/docs/next/core/table-lineage.html b/docs/next/core/table-lineage.html index 6953d49..8919f66 100644 --- a/docs/next/core/table-lineage.html +++ b/docs/next/core/table-lineage.html @@ -1,7 +1,7 @@ -表血缘解析 | SqlParserX +表血缘解析 | SqlParserX -
    版本:Next 🚧

    表血缘解析

    +
    版本:Next 🚧

    表血缘解析

    1. 引入依赖​

    <dependency>
    <groupId>com.dtstack</groupId>
    <artifactId>sqlparserx-core</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    @@ -21,4 +21,4 @@

    5. 支持粒
    能力项支持情况说明
    单表 / 多表 JOIN已支持 ✅解析所有参与表
    UNION / UNION ALL已支持 ✅归并各分支来源表
    子查询 / 派生表已支持 ✅递归收集真实表
    CTE(WITH)已支持 ✅识别 CTE 与其真实来源
    INSERT INTO ... SELECT已支持 ✅输出目标表与来源表

    更多表血缘场景与数据源差异,以项目 docs/02、SQL业务层解析能力支撑情况/能力支持情况/通用解析能力/表血缘解析支持情况.md 为准。

    -

    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/next/core/table-parse.html b/docs/next/core/table-parse.html index 9da540d..ab7926d 100644 --- a/docs/next/core/table-parse.html +++ b/docs/next/core/table-parse.html @@ -1,7 +1,7 @@ -表解析 | SqlParserX +表解析 | SqlParserX -
    版本:Next 🚧

    表解析

    +
    版本:Next 🚧

    表解析

    1. 引入依赖​

    <dependency>
    <groupId>com.dtstack</groupId>
    <artifactId>sqlparserx-core</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    @@ -21,4 +21,4 @@

    5. 支持粒
    能力项支持情况说明
    查询用表识别已支持 ✅SELECT / INSERT / UPDATE / DELETE
    CTE 识别已支持 ✅WITH 定义的临时表
    CREATE TABLE DDL已支持 ✅表名、字段、类型、注释
    分区与表属性已支持 ✅各数据源方言差异内聚在语法层
    catalog.db.table 多级命名已支持 ✅多 catalog 场景

    更多表解析场景与数据源差异,以项目 docs/02、SQL业务层解析能力支撑情况/能力支持情况/通用解析能力/表解析支持情况.md 为准。

    -

    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/next/intro.html b/docs/next/intro.html index 7f1730d..5a5dfaa 100644 --- a/docs/next/intro.html +++ b/docs/next/intro.html @@ -1,8 +1,8 @@ -SqlParserX 文档 | SqlParserX +SqlParserX 文档 | SqlParserX -
    版本:Next 🚧

    欢迎使用 SqlParserX

    -

    SqlParserX 是一个多方言 SQL 解析引擎与工具包,面向表/DDL 解析、表与字段血缘、函数提取、SQL 拆分以及行级权限改写等场景。

    +
    版本:Next 🚧

    欢迎使用 SqlParserX

    +

    SqlParserX 是一个多方言 SQL 解析引擎与工具包,面向 SQL 类型识别、表/DDL 解析、表与字段血缘、函数提取以及参数提取与预编译等场景。

    项目采用两层架构:sqlparserx-syntax 负责把 SQL 解析为 Druid AST 并承载语法扩展;sqlparserx-core 通过统一的 ISqlParser 契约消费 AST,产出业务解析结果。sqlparserx-web 与 sqlparserx-ui 提供服务化与可视化访问能力。

    从这里开始​

    :::tip 提示 本站右侧导航栏可切换版本(1.0 / Next)与语言(简体中文 / English)。 -:::

    \ No newline at end of file +:::
    \ No newline at end of file diff --git a/docs/next/quickstart/setup.html b/docs/next/quickstart/setup.html index d031e70..7c41d82 100644 --- a/docs/next/quickstart/setup.html +++ b/docs/next/quickstart/setup.html @@ -1,7 +1,7 @@ -快速开始 | SqlParserX +快速开始 | SqlParserX -
    版本:Next 🚧

    快速开始

    +
    版本:Next 🚧

    快速开始

    1. 环境要求​

    依赖版本
    JDKJava 8+
    Maven3.6+
    Node.js(仅 sqlparserx-ui)>= 20

    2. 引入依赖​

    @@ -28,4 +28,4 @@

    4. 下一步表血缘解析

  • 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íi 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 z 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%0DG^79x548QLptZ!o>Xe~9GG!v< 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 I?WI5cFX-*a-2eap literal 0 HcmV?d00001 diff --git a/assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png b/assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png new file mode 100644 index 0000000000000000000000000000000000000000..3f0be57eb0472f1d00659707f420fde0ddbfdba7 GIT binary patch literal 472973 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�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

  • 表解析
  • 函数解析
  • - \ No newline at end of file + \ No newline at end of file diff --git a/en/404.html b/en/404.html index 68f366b..b06a46e 100644 --- a/en/404.html +++ b/en/404.html @@ -1,4 +1,4 @@ -Page Not Found | SqlParserX +Page Not Found | SqlParserX -

    Page Not Found

    We could not find what you were looking for.

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

    \ No newline at end of file +

    Page Not Found

    We could not find what you were looking for.

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

    \ No newline at end of file diff --git a/en/assets/css/styles.c4a679e7.css b/en/assets/css/styles.325f5414.css similarity index 81% rename from en/assets/css/styles.c4a679e7.css rename to en/assets/css/styles.325f5414.css index bf1749c..a2babab 100644 --- a/en/assets/css/styles.c4a679e7.css +++ b/en/assets/css/styles.325f5414.css @@ -1 +1 @@ -@layer docusaurus.infima{:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:.2s;--ifm-transition-slow:.4s;--ifm-transition-timing-default:cubic-bezier(.08,.52,.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:.1rem;--ifm-code-padding-vertical:.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:.875rem;--ifm-h6-font-size:.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:.8rem;--ifm-breadcrumb-padding-vertical:.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url("data:image/svg+xml;utf8,");--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-color:var(--ifm-font-color-base-inverse);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:.5rem;--ifm-toc-padding-horizontal:.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:.75rem;--ifm-menu-link-padding-vertical:.375rem;--ifm-menu-link-sublist-icon:url("data:image/svg+xml;utf8,");--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:.75rem;--ifm-navbar-item-padding-vertical:.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url("data:image/svg+xml;utf8,");--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base)var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{word-wrap:break-word;margin:0}iframe{color-scheme:normal;border:0}.container{max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%;margin:0 auto}.container--fluid{max-width:inherit}.row{margin:0 calc(var(--ifm-spacing-horizontal)*-1);flex-wrap:wrap;display:flex}.row--no-gutters{margin-left:0;margin-right:0}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);flex:1 0;width:100%;margin-left:0}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:calc(1/12*100%)}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:calc(2/12*100%)}.col--offset-2{margin-left:16.6667%}.col--3{--ifm-col-width:calc(3/12*100%)}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:calc(4/12*100%)}.col--offset-4{margin-left:33.3333%}.col--5{--ifm-col-width:calc(5/12*100%)}.col--offset-5{margin-left:41.6667%}.col--6{--ifm-col-width:calc(6/12*100%)}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:calc(7/12*100%)}.col--offset-7{margin-left:58.3333%}.col--8{--ifm-col-width:calc(8/12*100%)}.col--offset-8{margin-left:66.6667%}.col--9{--ifm-col-width:calc(9/12*100%)}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:calc(10/12*100%)}.col--offset-10{margin-left:83.3333%}.col--11{--ifm-col-width:calc(11/12*100%)}.col--offset-11{margin-left:91.6667%}.col--12{--ifm-col-width:calc(12/12*100%)}.col--offset-12{margin-left:100%}.margin--none{margin:0!important}.margin-top--none{margin-top:0!important}.margin-left--none{margin-left:0!important}.margin-bottom--none{margin-bottom:0!important}.margin-right--none{margin-right:0!important}.margin-vert--none{margin-top:0!important;margin-bottom:0!important}.margin-horiz--none{margin-left:0!important;margin-right:0!important}.margin--xs{margin:.25rem!important}.margin-top--xs{margin-top:.25rem!important}.margin-left--xs{margin-left:.25rem!important}.margin-bottom--xs{margin-bottom:.25rem!important}.margin-right--xs{margin-right:.25rem!important}.margin-vert--xs{margin-top:.25rem!important;margin-bottom:.25rem!important}.margin-horiz--xs{margin-left:.25rem!important;margin-right:.25rem!important}.margin--sm{margin:.5rem!important}.margin-top--sm{margin-top:.5rem!important}.margin-left--sm{margin-left:.5rem!important}.margin-bottom--sm{margin-bottom:.5rem!important}.margin-right--sm{margin-right:.5rem!important}.margin-vert--sm{margin-top:.5rem!important;margin-bottom:.5rem!important}.margin-horiz--sm{margin-left:.5rem!important;margin-right:.5rem!important}.margin--md{margin:1rem!important}.margin-top--md{margin-top:1rem!important}.margin-left--md{margin-left:1rem!important}.margin-bottom--md{margin-bottom:1rem!important}.margin-right--md{margin-right:1rem!important}.margin-vert--md{margin-top:1rem!important;margin-bottom:1rem!important}.margin-horiz--md{margin-left:1rem!important;margin-right:1rem!important}.margin--lg{margin:2rem!important}.margin-top--lg{margin-top:2rem!important}.margin-left--lg{margin-left:2rem!important}.margin-bottom--lg{margin-bottom:2rem!important}.margin-right--lg{margin-right:2rem!important}.margin-vert--lg{margin-top:2rem!important;margin-bottom:2rem!important}.margin-horiz--lg{margin-left:2rem!important;margin-right:2rem!important}.margin--xl{margin:5rem!important}.margin-top--xl{margin-top:5rem!important}.margin-left--xl{margin-left:5rem!important}.margin-bottom--xl{margin-bottom:5rem!important}.margin-right--xl{margin-right:5rem!important}.margin-vert--xl{margin-top:5rem!important;margin-bottom:5rem!important}.margin-horiz--xl{margin-left:5rem!important;margin-right:5rem!important}.padding--none{padding:0!important}.padding-top--none{padding-top:0!important}.padding-left--none{padding-left:0!important}.padding-bottom--none{padding-bottom:0!important}.padding-right--none{padding-right:0!important}.padding-vert--none{padding-top:0!important;padding-bottom:0!important}.padding-horiz--none{padding-left:0!important;padding-right:0!important}.padding--xs{padding:.25rem!important}.padding-top--xs{padding-top:.25rem!important}.padding-left--xs{padding-left:.25rem!important}.padding-bottom--xs{padding-bottom:.25rem!important}.padding-right--xs{padding-right:.25rem!important}.padding-vert--xs{padding-top:.25rem!important;padding-bottom:.25rem!important}.padding-horiz--xs{padding-left:.25rem!important;padding-right:.25rem!important}.padding--sm{padding:.5rem!important}.padding-top--sm{padding-top:.5rem!important}.padding-left--sm{padding-left:.5rem!important}.padding-bottom--sm{padding-bottom:.5rem!important}.padding-right--sm{padding-right:.5rem!important}.padding-vert--sm{padding-top:.5rem!important;padding-bottom:.5rem!important}.padding-horiz--sm{padding-left:.5rem!important;padding-right:.5rem!important}.padding--md{padding:1rem!important}.padding-top--md{padding-top:1rem!important}.padding-left--md{padding-left:1rem!important}.padding-bottom--md{padding-bottom:1rem!important}.padding-right--md{padding-right:1rem!important}.padding-vert--md{padding-top:1rem!important;padding-bottom:1rem!important}.padding-horiz--md{padding-left:1rem!important;padding-right:1rem!important}.padding--lg{padding:2rem!important}.padding-top--lg{padding-top:2rem!important}.padding-left--lg{padding-left:2rem!important}.padding-bottom--lg{padding-bottom:2rem!important}.padding-right--lg{padding-right:2rem!important}.padding-vert--lg{padding-top:2rem!important;padding-bottom:2rem!important}.padding-horiz--lg{padding-left:2rem!important;padding-right:2rem!important}.padding--xl{padding:5rem!important}.padding-top--xl{padding-top:5rem!important}.padding-left--xl{padding-left:5rem!important}.padding-bottom--xl{padding-bottom:5rem!important}.padding-right--xl{padding-right:5rem!important}.padding-vert--xl{padding-top:5rem!important;padding-bottom:5rem!important}.padding-horiz--xl{padding-left:5rem!important;padding-right:5rem!important}code{background-color:var(--ifm-code-background);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical)var(--ifm-code-padding-horizontal);vertical-align:middle;border:.1rem solid rgba(0,0,0,.1)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height)var(--ifm-font-family-monospace);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-pre-padding);overflow:auto}pre code{font-size:100%;line-height:inherit;background-color:transparent;border:none;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);border-radius:.2rem;padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top)0 var(--ifm-heading-margin-bottom)0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:before{content:"";display:table}.markdown:after{clear:both;content:"";display:table}.markdown>:last-child{margin-bottom:0!important}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>pre,.markdown>ul,.markdown>p{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ul,ol{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ul ul,ul ol,ol ol,ol ul{margin:0}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:block;overflow:auto}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead{background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width)solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table th,table td{border:var(--ifm-table-border-width)solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width)solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-blockquote-padding-vertical)var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical)0;border:0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text--break{word-wrap:break-word!important;word-break:break-word!important}.text--no-decoration,.text--no-decoration:hover{-webkit-text-decoration:none;text-decoration:none}.clean-btn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.clean-list{padding-left:0;list-style:none}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width)solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);color:var(--ifm-alert-foreground-color);padding:var(--ifm-alert-padding-vertical)var(--ifm-alert-padding-horizontal)}.alert__heading{font:bold var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase;align-items:center;margin-bottom:.5rem;display:flex}.alert__icon{margin-right:.4em;display:inline-flex}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{color:var(--ifm-alert-foreground-color);margin:calc(var(--ifm-alert-padding-vertical)*-1)calc(var(--ifm-alert-padding-horizontal)*-1)0 0;opacity:.75}.alert .close:hover,.alert .close:focus{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size);border-radius:50%;display:block;overflow:hidden}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{text-align:var(--ifm-avatar-intro-alignment);flex-direction:column;flex:1;justify-content:center;display:flex}.avatar__name{font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:.5rem;flex-direction:column;align-items:center}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width)solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);padding:var(--ifm-badge-padding-vertical)var(--ifm-badge-padding-horizontal);line-height:1;display:inline-block}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);--ifm-badge-border-color:var(--ifm-badge-background-color);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger);--ifm-badge-border-color:var(--ifm-badge-background-color)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item{display:inline-block}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator)center;content:" ";filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));display:inline-block}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier))calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-property:background,color;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);display:inline-block}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width)solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);color:var(--ifm-button-color);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier))calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;transition-property:color,background,border-color;transition-duration:var(--ifm-button-transition-duration);transition-timing-function:var(--ifm-transition-timing-default);line-height:1.5;display:inline-block}.button:hover{color:var(--ifm-button-color);-webkit-text-decoration:none;text-decoration:none}.button--outline{--ifm-button-background-color:transparent;--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--outline:hover,.button--outline:active,.button--outline.button--active{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button--link{--ifm-button-background-color:transparent;--ifm-button-border-color:transparent;color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration)}.button--link:hover,.button--link:active,.button--link.button--active{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{width:100%;display:block}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary:active,.button--primary.button--active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary:active,.button--secondary.button--active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success:active,.button--success.button--active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info:active,.button--info.button--active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning:active,.button--warning.button--active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger:active,.button--danger.button--active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{gap:var(--ifm-button-group-spacing);display:inline-flex}.button-group>.button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.button-group>.button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.button-group--block{justify-content:stretch;display:flex}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);flex-direction:column;display:flex;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__header,.card__body,.card__footer{padding:var(--ifm-card-vertical-spacing)var(--ifm-card-horizontal-spacing)}.card__header:not(:last-child),.card__body:not(:last-child),.card__footer:not(:last-child){padding-bottom:0}.card__header>:last-child,.card__body>:last-child,.card__footer>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{padding:var(--ifm-toc-padding-vertical)0;margin-bottom:0;font-size:.8rem}.table-of-contents,.table-of-contents ul{padding-left:var(--ifm-toc-padding-horizontal);list-style:none}.table-of-contents li{margin:var(--ifm-toc-padding-vertical)var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link:hover,.table-of-contents__link:hover code,.table-of-contents__link--active,.table-of-contents__link--active code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default);padding:1rem;line-height:1}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{font-weight:var(--ifm-dropdown-font-weight);vertical-align:top;display:inline-flex;position:relative}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;visibility:visible;transform:translateY(-1px)}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);opacity:0;pointer-events:none;min-width:10rem;max-height:80vh;left:0;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);visibility:hidden;z-index:var(--ifm-z-index-dropdown);transition-property:opacity,transform,visibility;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);padding:.5rem;list-style:none;position:absolute;overflow-y:auto;transform:translateY(-.625rem)}.dropdown__link{color:var(--ifm-dropdown-link-color);white-space:nowrap;border-radius:.25rem;margin-top:.2rem;padding:.25rem .5rem;font-size:.875rem;display:block}.dropdown__link:hover,.dropdown__link--active{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);-webkit-text-decoration:none;text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{content:"";border:.4em solid transparent;border-top-color:currentColor;border-bottom:0 solid;margin-left:.3em;display:inline-block;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical)var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin-top:1rem}.footer__title{color:var(--ifm-footer-title-color);font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);align-items:center;padding:4rem 2rem;display:flex}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0;list-style:none}.menu__list .menu__list{padding-left:var(--ifm-menu-link-padding-horizontal);flex:0 0 100%;margin-top:.25rem}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item--collapsed .menu__caret:before{transform:rotate(90deg)}.menu__list-item-collapsible{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;flex-wrap:wrap;display:flex;position:relative}.menu__list-item-collapsible:hover,.menu__list-item-collapsible--active{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link:hover,.menu__list-item-collapsible .menu__link--active{background:0 0!important}.menu__link,.menu__caret{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;align-items:center;display:flex}.menu__link:hover,.menu__caret:hover{background:var(--ifm-menu-color-background-hover)}.menu__link{color:var(--ifm-menu-color);padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default);-webkit-text-decoration:none;text-decoration:none}.menu__link--sublist-caret:after{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;min-width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;margin-left:auto;transform:rotate(180deg)}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu__caret:before{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;transform:rotate(180deg)}html[data-theme=dark],.navbar--dark{--ifm-menu-link-sublist-icon-filter:invert(100%)sepia(94%)saturate(17%)hue-rotate(223deg)brightness(104%)contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);display:flex}.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{z-index:var(--ifm-z-index-fixed);position:sticky;top:0}.navbar__inner{flex-wrap:wrap;justify-content:space-between;width:100%;display:flex}.navbar__brand{color:var(--ifm-navbar-link-color);align-items:center;min-width:0;margin-right:1rem;display:flex}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar__title{flex:auto}.navbar__toggle{margin-right:.5rem;display:none}.navbar__logo{flex:none;height:2rem;margin-right:.5rem}.navbar__logo img{height:100%}.navbar__items{flex:1;align-items:center;min-width:0;display:flex}.navbar__items--center{flex:none}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:none;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal);display:inline-block}.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{color:var(--ifm-navbar-link-color);font-weight:var(--ifm-font-weight-semibold)}.navbar__link:hover,.navbar__link--active{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:rgba(255,255,255,.1);--ifm-navbar-search-input-placeholder-color:rgba(255,255,255,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-menu-color-background-active:rgba(255,255,255,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color)var(--ifm-navbar-search-input-icon)no-repeat .75rem center/1rem 1rem;color:var(--ifm-navbar-search-input-color);cursor:text;border:none;border-radius:2rem;width:12.5rem;height:2rem;padding:0 .5rem 0 2.25rem;font-size:1rem;display:inline-block}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);opacity:0;visibility:hidden;width:var(--ifm-navbar-sidebar-width);transition-property:opacity,visibility,transform;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;transform:translate(-100%)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translate(0,0)}.navbar-sidebar__backdrop{opacity:0;visibility:hidden;transition-property:opacity,visibility;transition-duration:var(--ifm-transition-fast);background-color:rgba(0,0,0,.6);transition-timing-function:ease-in-out;position:fixed;inset:0}.navbar-sidebar__brand{box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);flex:1;align-items:center;display:flex}.navbar-sidebar__items{height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast)ease-in-out;display:flex;transform:translateZ(0)}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{width:calc(var(--ifm-navbar-sidebar-width));flex-shrink:0;padding:.5rem}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);text-align:left;width:calc(100% + 1rem);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;top:-.5rem}.navbar-sidebar__close{margin-left:auto;display:flex}.pagination{column-gap:var(--ifm-pagination-page-spacing);font-size:var(--ifm-pagination-font-size);padding-left:0;display:flex}.pagination--sm{--ifm-pagination-font-size:.8rem;--ifm-pagination-padding-horizontal:.8rem;--ifm-pagination-padding-vertical:.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{background:var(--ifm-pagination-item-active-background);color:var(--ifm-pagination-color-active)}.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical)var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:inline-block}.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr);display:grid}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:block}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);-webkit-text-decoration:none;text-decoration:none}.pagination-nav__link--next{text-align:right;grid-column:2/3}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills{gap:var(--ifm-pills-spacing);padding-left:0;display:flex}.pills__item{cursor:pointer;font-weight:var(--ifm-font-weight-bold);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.5rem;padding:.25rem 1rem;display:inline-block}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{text-align:center;flex-grow:1}.tabs{color:var(--ifm-tabs-color);font-weight:var(--ifm-font-weight-bold);margin-bottom:0;padding-left:0;display:flex;overflow-x:auto}.tabs__item{border-radius:var(--ifm-global-radius);cursor:pointer;padding:var(--ifm-tabs-padding-vertical)var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-bottom:3px solid transparent;display:inline-flex}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);color:var(--ifm-tabs-color-active);border-bottom-right-radius:0;border-bottom-left-radius:0}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:rgba(255,255,255,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%)sepia(11%)saturate(0%)hue-rotate(149deg)brightness(99%)contrast(95%);--ifm-code-background:rgba(255,255,255,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:rgba(255,255,255,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}@media (width>=1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (width<=996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{width:max-content;display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__item{display:none}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}}@media (width<=576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0s;--ifm-transition-slow:0s}}@media print{.table-of-contents,.footer,.menu,.navbar,.pagination-nav{display:none}.tabs{page-break-inside:avoid}}}@layer docusaurus.theme-common{.themedComponent_mlkZ{display:none}[data-theme=light] .themedComponent--light_NVdE,[data-theme=dark] .themedComponent--dark_xIcU,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.errorBoundaryError_a6uf{white-space:pre-wrap;color:red}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.anchorTargetStickyNavbar_Vzrq{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorTargetHideOnScrollNavbar_vjPI{scroll-margin-top:.5rem}.details_lb9f{--docusaurus-details-summary-arrow-size:.38rem;--docusaurus-details-transition:transform .2s ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;list-style:none;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{content:"";border-width:var(--docusaurus-details-summary-arrow-size);border-style:solid;border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);transition:var(--docusaurus-details-transition);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2)50%;position:absolute;top:.45rem;left:0;transform:rotate(0)}.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before{transform:rotate(90deg)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child{margin-bottom:0}}@layer docusaurus.theme-classic{:root{--docusaurus-progress-bar-color:var(--ifm-color-primary)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);z-index:1031;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{width:100px;height:100%;box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);opacity:1;position:absolute;right:0;transform:rotate(3deg)translateY(-4px)}.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1);padding:calc(var(--ifm-global-spacing)/2)var(--ifm-global-spacing);color:var(--ifm-color-emphasis-900);background-color:var(--ifm-background-surface-color);position:fixed;top:1rem;left:100%}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{padding:0;line-height:0}.content_knG7{text-align:center;padding:5px 0;font-size:85%}.content_knG7 a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}:root{--docusaurus-announcement-bar-height:auto}.announcementBar_mb4j{height:var(--docusaurus-announcement-bar-height);background-color:var(--ifm-color-white);color:var(--ifm-color-black);border-bottom:1px solid var(--ifm-color-emphasis-100);align-items:center;display:flex}html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{flex:0 0 30px;align-self:stretch}.announcementBarContent_xLdY{flex:auto}@media print{.announcementBar_mb4j{display:none}}@media (width>=997px){:root{--docusaurus-announcement-bar-height:30px}.announcementBarPlaceholder_vyr4,.announcementBarClose_gvF7{flex-basis:50px}}.toggle_vylO{width:2rem;height:2rem}.toggleButton_gllP{-webkit-tap-highlight-color:transparent;width:100%;height:100%;transition:background var(--ifm-transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleIcon_g3eP{display:none}[data-theme-choice=system] .systemToggleIcon_QzmC,[data-theme-choice=light] .lightToggleIcon_pyhR,[data-theme-choice=dark] .darkToggleIcon_wfgR{display:initial}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_J0Sd{cursor:pointer}.iconLanguage_nlXk{vertical-align:text-bottom;margin-right:5px}.navbarSearchContainer_Bca1:empty{display:none}@media (width<=996px){.navbarSearchContainer_Bca1{right:var(--ifm-navbar-padding-horizontal);position:absolute}}@media (width>=997px){.navbarSearchContainer_Bca1{padding:0 var(--ifm-navbar-item-padding-horizontal)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast)ease}.navbarHidden_jGov{transform:translateY(calc(-100% - 2px))}@media (width<=996px){.colorModeToggle_DEke{display:none}}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover{opacity:1}.hash-link{opacity:0;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none;padding-left:.5rem}.hash-link:before{content:"#"}.hash-link:focus,:hover>.hash-link{opacity:1}html,body{height:100%}.mainWrapper_z2l0{flex-direction:column;flex:1 0 auto;display:flex}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{flex-direction:column;min-height:100%;display:flex}.sidebar_re4s{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 2rem);position:sticky;overflow-y:auto}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLink_mo7H:hover{-webkit-text-decoration:none;text-decoration:none}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}@media (width<=996px){.sidebar_re4s{display:none}}.yearGroupHeading_rMGB{margin-top:1.6rem;margin-bottom:.4rem}.yearGroupHeading_QT03{margin:1rem .75rem .5rem}.title_f1Hy{font-size:3rem}@media (width<=576px){.title_f1Hy{font-size:2rem}}.container_mt6G{font-size:.9rem}[data-theme=dark] .githubSvg_Uu4N{fill:var(--light)}[data-theme=light] .githubSvg_Uu4N{fill:var(--dark)}[data-theme=dark] .xSvg_y3PF{fill:var(--light)}[data-theme=light] .xSvg_y3PF{fill:var(--dark)}[data-theme=dark] .linkedinSvg_FCgI{fill:var(--light)}[data-theme=light] .linkedinSvg_FCgI{fill:var(--dark)}[data-theme=dark] .blueskySvg_AzZw{fill:var(--light)}[data-theme=light] .blueskySvg_AzZw{fill:var(--dark)}[data-theme=dark] .instagramSvg_YC40{fill:var(--light)}[data-theme=light] .instagramSvg_YC40{fill:var(--dark)}[data-theme=dark] .threadsSvg_PTXY{fill:var(--light)}[data-theme=light] .threadsSvg_PTXY{fill:var(--dark)}:root{--docusaurus-blog-social-icon-size:1rem}.authorSocials_rSDt{height:var(--docusaurus-blog-social-icon-size);line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;flex-wrap:wrap;align-items:center;line-height:0;display:flex;overflow:hidden}.authorSocialLink_owbf{height:var(--docusaurus-blog-social-icon-size);width:var(--docusaurus-blog-social-icon-size);margin-right:.4rem;line-height:0}.authorSocialIcon_XYv3{width:var(--docusaurus-blog-social-icon-size);height:var(--docusaurus-blog-social-icon-size)}.authorImage_XqGP{--ifm-avatar-photo-size:3.6rem}.author-as-h1_n9oJ .authorImage_XqGP{--ifm-avatar-photo-size:7rem}.author-as-h2_gXvM .authorImage_XqGP{--ifm-avatar-photo-size:5.4rem}.authorDetails_lV9A{flex-direction:column;justify-content:space-around;align-items:flex-start;display:flex}.authorName_yefp{flex-direction:row;font-size:1.1rem;line-height:1.1rem;display:flex}.author-as-h1_n9oJ .authorName_yefp{font-size:2.4rem;line-height:2.4rem;display:inline}.author-as-h2_gXvM .authorName_yefp{font-size:1.4rem;line-height:1.4rem;display:inline}.authorTitle_nd0D{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.8rem;line-height:1rem;display:-webkit-box;overflow:hidden}.author-as-h1_n9oJ .authorTitle_nd0D{font-size:1.2rem;line-height:1.6rem}.author-as-h2_gXvM .authorTitle_nd0D{font-size:1rem;line-height:1.3rem}.authorBlogPostCount_iiJ5{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.8rem;line-height:1.2}.authorCol_Hf19{max-width:inherit!important}.imageOnlyAuthorRow_pa_O{flex-flow:wrap;display:flex}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.authorListItem_n3yI{margin-bottom:2rem;list-style-type:none}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);width:3rem;height:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1);box-shadow:var(--ifm-global-shadow-lw);transition:all var(--ifm-transition-fast)var(--ifm-transition-timing-default);opacity:0;visibility:hidden;border-radius:50%;position:fixed;bottom:1.3rem;right:1.3rem;transform:scale(0)}.backToTopButton_sjWU:after{content:" ";-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;background-color:var(--ifm-color-emphasis-1000);width:100%;height:100%;display:inline-block}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}.backToTopButtonShow_xfvO{opacity:1;visibility:visible;transform:scale(1)}:root{--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1)}[data-theme=dark]:root{--docusaurus-collapse-button-bg:rgba(255,255,255,.05);--docusaurus-collapse-button-bg-hover:rgba(255,255,255,.1)}@media (width>=997px){.collapseSidebarButton_PEFL{background-color:var(--docusaurus-collapse-button-bg);border:1px solid var(--ifm-toc-border-color);border-radius:0;height:40px;position:sticky;bottom:0;display:block!important}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:hover,.collapseSidebarButton_PEFL:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}}.collapseSidebarButton_PEFL{margin:0;display:none}.menuExternalLink_NmtK{align-items:center}.linkLabel_WmDU{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.categoryLink_byQd{overflow:hidden}.menu__link--sublist-caret:after{margin-left:var(--ifm-menu-link-padding-vertical)}.categoryLinkLabel_W154{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}@media (width>=997px){.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{scrollbar-gutter:stable;padding:.5rem 0 .5rem .5rem}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width);flex-direction:column;display:flex}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{margin:0 var(--ifm-navbar-padding-horizontal);min-height:var(--ifm-navbar-height);max-height:var(--ifm-navbar-height);align-items:center;color:inherit!important;-webkit-text-decoration:none!important;text-decoration:none!important;display:flex!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}}.sidebarLogo_isFc{display:none}@media (width>=997px){.expandButton_TmdG{width:100%;height:100%;transition:background-color var(--ifm-transition-fast)ease;background-color:var(--docusaurus-collapse-button-bg);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.expandButton_TmdG:hover,.expandButton_TmdG:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_i1dp{transform:rotate(0)}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}}:root{--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.docSidebarContainer_YfHR{display:none}@media (width>=997px){.docSidebarContainer_YfHR{width:var(--doc-sidebar-width);margin-top:calc(-1*var(--ifm-navbar-height));border-right:1px solid var(--ifm-toc-border-color);will-change:width;transition:width var(--ifm-transition-fast)ease;clip-path:inset(0);display:block}.docSidebarContainerHidden_DPk8{width:var(--doc-sidebar-hidden-width);cursor:pointer}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}}.docMainContainer_TBSr{width:100%;display:flex}@media (width>=997px){.docMainContainer_TBSr{max-width:calc(100% - var(--doc-sidebar-width));flex-grow:1}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}.docRoot_UBD9{width:100%;display:flex}.docsWrapper_hBAB{flex:1 0 auto;display:flex}.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color);margin-bottom:var(--ifm-leading);box-shadow:var(--ifm-global-shadow-lw);border-radius:var(--ifm-code-border-radius)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockStandalone_MEMb{padding:0}.codeBlockLines_e6Vv{font:inherit;float:left;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{padding:var(--ifm-pre-padding)0;display:table}@media print{.codeBlockLines_e6Vv{white-space:pre-wrap}}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);margin:0 calc(-1*var(--ifm-pre-padding));padding:0 var(--ifm-pre-padding);display:block}.codeLine_lJS_{counter-increment:line-count;display:table-row}.codeLineNumber_Tfdd{text-align:right;width:1%;padding:0 var(--ifm-pre-padding);background:var(--ifm-pre-background);overflow-wrap:normal;display:table-cell;position:sticky;left:0}.codeLineNumber_Tfdd:before{content:counter(line-count);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_Vdqa{opacity:1!important}.copyButtonIcons_IEyt{width:1.125rem;height:1.125rem;position:relative}.copyButtonIcon_TrPX,.copyButtonSuccessIcon_cVMy{fill:currentColor;opacity:inherit;width:inherit;height:inherit;transition:all var(--ifm-transition-fast)ease;position:absolute;top:0;left:0}.copyButtonSuccessIcon_cVMy{opacity:0;color:#00d600;top:50%;left:50%;transform:translate(-50%,-50%)scale(.33)}.copyButtonCopied_Vdqa .copyButtonIcon_TrPX{opacity:0;transform:scale(.33)}.copyButtonCopied_Vdqa .copyButtonSuccessIcon_cVMy{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.wordWrapButtonIcon_b1P5{width:1.2rem;height:1.2rem}.wordWrapButtonEnabled_uzNF .wordWrapButtonIcon_b1P5{color:var(--ifm-color-primary)}.buttonGroup_M5ko{right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);column-gap:.2rem;display:flex;position:absolute}.buttonGroup_M5ko button{background:var(--prism-background-color);color:var(--prism-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);transition:opacity var(--ifm-transition-fast)ease-in-out;opacity:0;align-items:center;padding:.4rem;line-height:0;display:flex}.buttonGroup_M5ko button:hover{opacity:1!important}.buttonGroup_M5ko button:focus-visible{opacity:1!important}.theme-code-block:hover .buttonGroup_M5ko button{opacity:.4}.codeBlockContent_QJqH{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_OeMC{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);padding:.75rem var(--ifm-pre-padding);border-top-left-radius:inherit;border-top-right-radius:inherit;font-weight:500}.codeBlockTitle_OeMC+.codeBlockContent_QJqH .codeBlock_a8dz{border-top-left-radius:0;border-top-right-radius:0}:root{--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);padding:.2rem .5rem .3rem;font-size:90%}.tagWithCount_h2kH{border-left:0;align-items:center;padding:0 .5rem 0 1rem;display:flex;position:relative}.tagWithCount_h2kH:before,.tagWithCount_h2kH:after{content:"";border:1px solid var(--docusaurus-tag-list-border);transition:inherit;position:absolute;top:50%}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;width:1.18rem;height:1.18rem;right:100%;transform:translate(50%,-50%)rotate(-45deg)}.tagWithCount_h2kH:after{border-radius:50%;width:.5rem;height:.5rem;left:0;transform:translateY(-50%)}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem;line-height:1.2}.tag_Nnez{margin:.5rem .5rem 0 1rem;display:inline-block}.tags_jXut{display:inline}.tag_QGVx{margin:0 .4rem .5rem 0;display:inline-block}.iconEdit_Z9Sw{vertical-align:sub;margin-right:.3em}.lastUpdated_JAkA{margin-top:.2rem;font-size:smaller;font-style:italic}@media (width>=997px){.lastUpdated_JAkA{text-align:right}}@media print{.noPrint_WFHX{display:none}}.tocCollapsibleButton_TO0P{font-size:inherit;justify-content:space-between;align-items:center;width:100%;padding:.4rem .8rem;display:flex}.tocCollapsibleButton_TO0P:after{content:"";background:var(--ifm-menu-link-sublist-icon)50% 50%/2rem 2rem no-repeat;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast);transform:rotate(180deg)}.tocCollapsibleButtonExpanded_MG3E:after{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);padding:.2rem 0;font-size:15px}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tocCollapsibleExpanded_sAul{transform:none}@media (width>=997px){.tocMobile_ITEo{display:none}}@media print{.tocMobile_ITEo{display:none}}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast)ease;margin:0 0 var(--ifm-spacing-vertical);border:1px solid var(--ifm-alert-border-color)}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight)var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{vertical-align:middle;margin-right:.4em;display:inline-block}.admonitionIcon_Rf37 svg{width:1.6em;height:1.6em;fill:var(--ifm-alert-foreground-color);display:inline-block}.admonitionContent_BuS1>:last-child{margin-bottom:0}.tableOfContents_bqdL{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 1rem);position:sticky;overflow-y:auto}@media (width<=996px){.tableOfContents_bqdL{display:none}.docItemContainer_F8PC{padding:0 .3rem}}.breadcrumbHomeIcon_YNFT{vertical-align:top;width:1.1rem;height:1.1rem;position:relative;top:1px}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:.8;margin-bottom:.8rem}.docItemContainer_Djhp header+*,.docItemContainer_Djhp article>:first-child{margin-top:0}@media (width>=997px){.docItemCol_VOVn{max-width:75%!important}}}@layer docusaurus.core{#__docusaurus-base-url-issue-banner-container{display:none}}@layer docusaurus.plugin-debug;@layer docusaurus.theme-mermaid{.container_lyt7,.container_lyt7>svg{max-width:100%}}@layer docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;:root{--ifm-color-primary:#4f46e5;--ifm-color-primary-dark:#4338ca;--ifm-color-primary-darker:#3f35c0;--ifm-color-primary-darkest:#342ca0;--ifm-color-primary-light:#635bec;--ifm-color-primary-lighter:#6e67ee;--ifm-color-primary-lightest:#8f89f2;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.1);--ifm-navbar-background-color:rgba(255,255,255,.85);--ifm-background-surface-color:#fff;--ifm-color-content:#1f2430;--ifm-color-content-secondary:#6b7280;--banner-gradient-from:#f8faff;--banner-gradient-to:#eef1ff;--home-border:rgba(15,23,42,.08);--home-border-strong:rgba(15,23,42,.16);--home-hero-bg:linear-gradient(180deg,#f7f9ff 0%,#fff 100%);--home-grid-image:linear-gradient(rgba(79,70,229,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(79,70,229,.06) 1px,transparent 1px);--home-glow-a:rgba(99,102,241,.32);--home-glow-b:rgba(192,38,211,.2);--home-brand-gradient:linear-gradient(120deg,#4f46e5 0%,#7c3aed 50%,#c026d3 100%);--home-primary-glow:rgba(99,102,241,.45);--home-badge-bg:rgba(79,70,229,.08);--home-badge-border:rgba(79,70,229,.18);--home-badge-text-dark:#4338ca;--home-window-bg:#fff;--home-window-bar:#f8fafc;--home-window-shadow:0 30px 60px -20px rgba(15,23,42,.25);--home-code-kw:#7c3aed;--home-code-tbl:#0284c7;--home-tag-bg:rgba(79,70,229,.1);--home-tag-warm-bg:rgba(245,158,11,.14);--home-tag-warm-text:#b45309;--home-soft-bg:#f8fafc;--home-cta-bg:linear-gradient(120deg,#4f46e5 0%,#7c3aed 55%,#c026d3 100%)}[data-theme=dark]{--ifm-color-primary:#8f89f2;--ifm-color-primary-dark:#6e67ee;--ifm-color-primary-darker:#635bec;--ifm-color-primary-darkest:#4f46e5;--ifm-color-primary-light:#a6a1f5;--ifm-color-primary-lighter:#b0acf6;--ifm-color-primary-lightest:#d2cffa;--docusaurus-highlighted-code-line-bg:rgba(255,255,255,.1);--ifm-background-color:#0f1220;--ifm-background-surface-color:#171a2b;--ifm-navbar-background-color:rgba(15,18,32,.85);--ifm-color-content:#e7e9f3;--ifm-color-content-secondary:#9aa0b5;--banner-gradient-from:#12162a;--banner-gradient-to:#0f1220;--home-border:rgba(255,255,255,.08);--home-border-strong:rgba(255,255,255,.16);--home-hero-bg:linear-gradient(180deg,#0c0f1d 0%,#0f1220 100%);--home-grid-image:linear-gradient(rgba(139,92,246,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(139,92,246,.1) 1px,transparent 1px);--home-glow-a:rgba(99,102,241,.36);--home-glow-b:rgba(192,38,211,.24);--home-brand-gradient:linear-gradient(120deg,#818cf8 0%,#a78bfa 50%,#e879f9 100%);--home-primary-glow:rgba(124,58,237,.55);--home-badge-bg:rgba(129,140,248,.12);--home-badge-border:rgba(129,140,248,.28);--home-badge-text-dark:#c7d2fe;--home-window-bg:#12162a;--home-window-bar:#0d101d;--home-window-shadow:0 30px 60px -20px rgba(0,0,0,.6);--home-code-kw:#a78bfa;--home-code-tbl:#38bdf8;--home-tag-bg:rgba(129,140,248,.16);--home-tag-warm-bg:rgba(245,158,11,.18);--home-tag-warm-text:#fbbf24;--home-soft-bg:#10131f;--home-cta-bg:linear-gradient(120deg,#4f46e5 0%,#7c3aed 55%,#c026d3 100%)}table{width:100%;display:table}table thead tr{border-bottom:none}.navbar{-webkit-backdrop-filter:saturate(180%)blur(8px);backdrop-filter:saturate(180%)blur(8px)}.header-github-link:hover{opacity:.6}.header-github-link:before{content:"";background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%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") no-repeat;width:24px;height:24px;display:flex}[data-theme=dark] .header-github-link:before{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' 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") no-repeat}.main_mXnJ{max-width:1100px;margin:0 auto;padding:3rem 1rem 5rem}.hero_Xgt0{text-align:center;margin-bottom:3rem}.title_P3Qk{margin-bottom:.75rem;font-size:2.4rem}.subtitle_E8C4{color:var(--ifm-color-content-secondary);font-size:1.1rem}.grid_N3Zu{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;display:grid}.card_SFkr{border:1px solid var(--ifm-color-emphasis-200);background:var(--ifm-background-surface-color);border-radius:12px;flex-direction:column;gap:.6rem;padding:1.75rem;display:flex}.icon_ZV17{font-size:2rem}.cardTitle_tde4{margin:0}.cardDesc_eKeg{color:var(--ifm-color-content-secondary);flex:1}.hero_reY0{border-bottom:1px solid var(--home-border);background:var(--home-hero-bg);padding:6rem 1.5rem 5rem;position:relative;overflow:hidden}.gridBg_zRbt{background-image:var(--home-grid-image);pointer-events:none;background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 0,#000 40%,transparent 100%);mask-image:radial-gradient(80% 60% at 50% 0,#000 40%,transparent 100%)}.glowA_dnBZ,.glowB_NjYj{filter:blur(90px);opacity:.55;pointer-events:none;border-radius:50%;position:absolute}.glowA_dnBZ{background:var(--home-glow-a);width:460px;height:460px;top:-180px;right:6%}.glowB_NjYj{background:var(--home-glow-b);width:380px;height:380px;bottom:-200px;left:-80px}.inner_IGGz{z-index:1;grid-template-columns:1.05fr .95fr;align-items:center;gap:3.5rem;max-width:1200px;margin:0 auto;display:grid;position:relative}.left_uKTZ{text-align:left}.badge_D9jF{letter-spacing:.01em;color:var(--ifm-color-primary-dark);background:var(--home-badge-bg);border:1px solid var(--home-badge-border);border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.35rem .85rem;font-size:.82rem;font-weight:600;display:inline-flex}[data-theme=dark] .badge_D9jF{color:var(--home-badge-text-dark)}.badgeDot_ycdE{background:var(--ifm-color-primary);width:7px;height:7px;box-shadow:0 0 0 3px var(--home-glow-a);border-radius:50%}.title_DbXn{letter-spacing:-.035em;margin:0 0 .5rem;font-size:4.25rem;font-weight:900;line-height:1.02}.titleGrad_wsmG{background:var(--home-brand-gradient);-webkit-text-fill-color:transparent;color:transparent;-webkit-background-clip:text;background-clip:text}.tagline_Omcq{color:var(--ifm-color-content);margin:0 0 .85rem;font-size:1.55rem;font-weight:700}.desc_oE5c{color:var(--ifm-color-content-secondary);max-width:34rem;margin:0 0 2rem;font-size:1.05rem;line-height:1.7}.actions_BPoi{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.ctaPrimary_nzdu{background:var(--home-brand-gradient);box-shadow:0 10px 24px -8px var(--home-primary-glow);border:none;transition:transform .18s,box-shadow .18s}.ctaPrimary_nzdu:hover{box-shadow:0 16px 32px -8px var(--home-primary-glow);background:var(--home-brand-gradient);transform:translateY(-2px)}.arrow_ohpH{margin-left:.5rem;transition:transform .18s;display:inline-block}.ctaPrimary_nzdu:hover .arrow_ohpH{transform:translate(3px)}.ctaSecondary_ioAi{border:1px solid var(--home-border-strong);color:var(--ifm-color-content);background:0 0}.ctaSecondary_ioAi:hover{border-color:var(--ifm-color-primary);color:var(--ifm-color-primary);background:0 0}.ghLink_HXFT{color:var(--ifm-color-content-secondary);font-weight:600;-webkit-text-decoration:none;text-decoration:none}.ghLink_HXFT:hover{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.stats_UghV{border-top:1px solid var(--home-border);flex-wrap:wrap;gap:2.25rem;margin:3rem 0 0;padding:1.75rem 0 0;list-style:none;display:flex}.stats_UghV li{flex-direction:column;gap:.2rem;display:flex}.stats_UghV strong{letter-spacing:-.02em;color:var(--ifm-color-content);background:var(--home-brand-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.6rem;font-weight:800}.stats_UghV span{color:var(--ifm-color-content-secondary);font-size:.85rem}.right_YUha{perspective:1200px}.window_mZAp{border:1px solid var(--home-border);background:var(--home-window-bg);box-shadow:var(--home-window-shadow);border-radius:16px;transition:transform .4s;overflow:hidden;transform:rotateY(-2deg)rotateX(1deg)}.window_mZAp:hover{transform:rotateY(0)rotateX(0)}.windowBar_IG7S{border-bottom:1px solid var(--home-border);background:var(--home-window-bar);align-items:center;gap:.75rem;padding:.7rem 1rem;display:flex}.dots_dSgu{gap:6px;display:inline-flex}.dots_dSgu i{border-radius:50%;width:11px;height:11px;display:block}.dots_dSgu i:first-child{background:#ff5f57}.dots_dSgu i:nth-child(2){background:#febc2e}.dots_dSgu i:nth-child(3){background:#28c840}.windowTitle_C7Wi{font-size:.82rem;font-family:var(--ifm-font-family-monospace);color:var(--ifm-color-content-secondary)}.pane_IGTq{padding:1.1rem 1.25rem}.paneLabel_AJ3a{text-transform:uppercase;letter-spacing:.08em;color:var(--ifm-color-content-secondary);margin-bottom:.6rem;font-size:.72rem;font-weight:700}.code_ciTM{font-family:var(--ifm-font-family-monospace);white-space:pre;color:var(--ifm-color-content);font-size:.88rem;line-height:1.85;overflow-x:auto}.kw_CYEt{color:var(--home-code-kw);font-weight:700}.tbl_ICwn{color:var(--home-code-tbl)}.divider_ybTj{text-transform:uppercase;letter-spacing:.08em;color:var(--ifm-color-content-secondary);background:var(--home-window-bar);border-top:1px solid var(--home-border);border-bottom:1px solid var(--home-border);align-items:center;gap:.5rem;margin:0;padding:.55rem 1.25rem;font-size:.72rem;font-weight:700;display:flex}.dividerDot_PbM6{background:#28c840;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px rgba(40,200,64,.18)}.result_UYmE{flex-direction:column;gap:.55rem;display:flex}.resLine_Yxvh{font-family:var(--ifm-font-family-monospace);color:var(--ifm-color-content);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.check_W2bt{color:#22c55e;font-weight:800}.tag_bkpi{color:var(--ifm-color-primary-dark);background:var(--home-tag-bg);border-radius:6px;padding:.1rem .45rem;font-size:.68rem;font-weight:700}.tagWarm_CVvE{color:var(--home-tag-warm-text);background:var(--home-tag-warm-bg);border-radius:6px;padding:.1rem .45rem;font-size:.68rem;font-weight:700}.arrowSm_NRI0{color:var(--ifm-color-content-secondary)}@media (width<=996px){.hero_reY0{padding:4.5rem 1.25rem 3.5rem}.inner_IGGz{grid-template-columns:1fr;gap:2.5rem}.title_DbXn{font-size:3.25rem}.tagline_Omcq{font-size:1.3rem}.stats_UghV{gap:1.75rem}.window_mZAp{transform:none}}@media (width<=600px){.title_DbXn{font-size:2.6rem}.stats_UghV li{min-width:40%}}.section_eBTT{text-align:center;max-width:1160px;margin:0 auto;padding:0 1.5rem 1rem}.lead_wHuz{letter-spacing:.06em;text-transform:uppercase;color:var(--ifm-color-content-secondary);margin-bottom:1.75rem;font-size:.85rem;font-weight:600}.row_w6Q8{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.item_Mtdw{border:1px solid var(--home-border);background:var(--ifm-background-surface-color);color:var(--ifm-color-content-secondary);border-radius:10px;align-items:center;gap:.5rem;padding:.5rem .85rem;font-size:.85rem;font-weight:600;transition:transform .18s,border-color .18s,color .18s;display:flex}.item_Mtdw:hover{border-color:var(--home-border-strong);color:var(--ifm-color-content);transform:translateY(-3px)}.item_Mtdw img{object-fit:contain;filter:grayscale();opacity:.75;width:20px;height:20px;transition:filter .18s,opacity .18s}.item_Mtdw:hover img{filter:grayscale(0%);opacity:1}@media (width<=600px){.item_Mtdw span{display:none}.item_Mtdw{padding:.55rem}}.section_R2J0{max-width:1160px;margin:0 auto;padding:5.5rem 1.5rem 4.5rem}.header_nMSq{text-align:center;max-width:640px;margin:0 auto 3rem}.eyebrow_KQpq{letter-spacing:.1em;text-transform:uppercase;color:var(--ifm-color-primary);margin-bottom:.75rem;font-size:.8rem;font-weight:700;display:inline-block}.heading_fnW7{letter-spacing:-.02em;margin:0 0 .75rem;font-size:2.15rem;font-weight:800}.subheading_cJ8g{color:var(--ifm-color-content-secondary);margin:0;font-size:1.05rem}.grid_vg4X{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.card_ooQ2{border:1px solid var(--home-border);background:var(--ifm-background-surface-color);border-radius:16px;padding:1.85rem 1.6rem;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.card_ooQ2:before{content:"";background:var(--home-brand-gradient);opacity:0;height:3px;transition:opacity .2s;position:absolute;inset:0 0 auto}.card_ooQ2:hover{box-shadow:0 18px 40px -18px var(--home-primary-glow);border-color:transparent;transform:translateY(-5px)}.card_ooQ2:hover:before{opacity:1}.iconWrap_ISBW{background:var(--home-badge-bg);border:1px solid var(--home-badge-border);border-radius:13px;place-items:center;width:48px;height:48px;margin-bottom:1.1rem;display:grid}.icon_R0VM{font-size:1.5rem;line-height:1}.cardTitle_FpVF{margin:0 0 .5rem;font-size:1.15rem;font-weight:700}.cardDesc_Hcpx{color:var(--ifm-color-content-secondary);margin:0;font-size:.95rem;line-height:1.65}@media (width<=996px){.grid_vg4X{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.section_R2J0{padding:3.5rem 1.25rem 3rem}.heading_fnW7{font-size:1.7rem}.grid_vg4X{grid-template-columns:1fr}}.section_XM3Q{max-width:1160px;margin:0 auto;padding:1rem 1.5rem 5rem}.row_mLVB{align-items:center;gap:3.5rem;margin:4rem 0;display:flex}.reverse_tY76{flex-direction:row-reverse}.info_rZXn{flex:1}.eyebrow_cIXQ{letter-spacing:.1em;text-transform:uppercase;color:var(--ifm-color-primary);margin-bottom:.6rem;font-size:.78rem;font-weight:700;display:inline-block}.title_ULaK{letter-spacing:-.02em;margin-bottom:1rem;font-size:1.75rem;font-weight:800}.desc_yXFq{color:var(--ifm-color-content-secondary);margin-bottom:1.5rem;font-size:1rem;line-height:1.75}.steps_EEbF{counter-reset:step;flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.step_eGvK{color:var(--ifm-color-content);align-items:center;gap:.7rem;font-size:.95rem;display:flex}.stepNo_MhRk{color:#fff;background:var(--home-brand-gradient);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.78rem;font-weight:700;display:grid}.showcase_mNzI{flex:1.15}.showcase_mNzI img{border:1px solid var(--home-border);background:var(--ifm-background-surface-color);width:100%;box-shadow:0 24px 50px -28px var(--home-primary-glow);border-radius:16px}@media (width<=996px){.row_mLVB,.reverse_tY76{flex-direction:column;gap:2rem;margin:3rem 0}.showcase_mNzI{width:100%}}.band_iMg9{max-width:1160px;margin:0 auto 5rem;padding:0 1.5rem}.inner_s1W7{text-align:center;background:var(--home-cta-bg);color:#fff;border-radius:24px;padding:4rem 2rem;position:relative;overflow:hidden}.inner_s1W7:before{content:"";pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 70% at 50% 0,#000 20%,transparent 80%);mask-image:radial-gradient(70% 70% at 50% 0,#000 20%,transparent 80%)}.title_Xeao{letter-spacing:-.02em;color:#fff;margin:0 0 .75rem;font-size:2rem;font-weight:800;position:relative}.desc_fTY7{color:rgba(255,255,255,.85);margin:0 0 2rem;font-size:1.05rem;position:relative}.actions_AcwB{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex;position:relative}.primary_lgmO{color:#4f46e5;background:#fff;border:none;font-weight:700}.primary_lgmO:hover{color:#4f46e5;background:#f1f0ff}.secondary_m1GY{color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4);font-weight:700}.secondary_m1GY:hover{color:#fff;background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.7)}@media (width<=600px){.inner_s1W7{padding:3rem 1.25rem}.title_Xeao{font-size:1.5rem}}.main_iUjq{background:var(--ifm-background-color)} \ No newline at end of file +@layer docusaurus.infima{:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:.2s;--ifm-transition-slow:.4s;--ifm-transition-timing-default:cubic-bezier(.08,.52,.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:.1rem;--ifm-code-padding-vertical:.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:.875rem;--ifm-h6-font-size:.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:.8rem;--ifm-breadcrumb-padding-vertical:.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url("data:image/svg+xml;utf8,");--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-color:var(--ifm-font-color-base-inverse);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:.5rem;--ifm-toc-padding-horizontal:.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:.75rem;--ifm-menu-link-padding-vertical:.375rem;--ifm-menu-link-sublist-icon:url("data:image/svg+xml;utf8,");--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:.75rem;--ifm-navbar-item-padding-vertical:.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url("data:image/svg+xml;utf8,");--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base)var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{word-wrap:break-word;margin:0}iframe{color-scheme:normal;border:0}.container{max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%;margin:0 auto}.container--fluid{max-width:inherit}.row{margin:0 calc(var(--ifm-spacing-horizontal)*-1);flex-wrap:wrap;display:flex}.row--no-gutters{margin-left:0;margin-right:0}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);flex:1 0;width:100%;margin-left:0}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:calc(1/12*100%)}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:calc(2/12*100%)}.col--offset-2{margin-left:16.6667%}.col--3{--ifm-col-width:calc(3/12*100%)}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:calc(4/12*100%)}.col--offset-4{margin-left:33.3333%}.col--5{--ifm-col-width:calc(5/12*100%)}.col--offset-5{margin-left:41.6667%}.col--6{--ifm-col-width:calc(6/12*100%)}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:calc(7/12*100%)}.col--offset-7{margin-left:58.3333%}.col--8{--ifm-col-width:calc(8/12*100%)}.col--offset-8{margin-left:66.6667%}.col--9{--ifm-col-width:calc(9/12*100%)}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:calc(10/12*100%)}.col--offset-10{margin-left:83.3333%}.col--11{--ifm-col-width:calc(11/12*100%)}.col--offset-11{margin-left:91.6667%}.col--12{--ifm-col-width:calc(12/12*100%)}.col--offset-12{margin-left:100%}.margin--none{margin:0!important}.margin-top--none{margin-top:0!important}.margin-left--none{margin-left:0!important}.margin-bottom--none{margin-bottom:0!important}.margin-right--none{margin-right:0!important}.margin-vert--none{margin-top:0!important;margin-bottom:0!important}.margin-horiz--none{margin-left:0!important;margin-right:0!important}.margin--xs{margin:.25rem!important}.margin-top--xs{margin-top:.25rem!important}.margin-left--xs{margin-left:.25rem!important}.margin-bottom--xs{margin-bottom:.25rem!important}.margin-right--xs{margin-right:.25rem!important}.margin-vert--xs{margin-top:.25rem!important;margin-bottom:.25rem!important}.margin-horiz--xs{margin-left:.25rem!important;margin-right:.25rem!important}.margin--sm{margin:.5rem!important}.margin-top--sm{margin-top:.5rem!important}.margin-left--sm{margin-left:.5rem!important}.margin-bottom--sm{margin-bottom:.5rem!important}.margin-right--sm{margin-right:.5rem!important}.margin-vert--sm{margin-top:.5rem!important;margin-bottom:.5rem!important}.margin-horiz--sm{margin-left:.5rem!important;margin-right:.5rem!important}.margin--md{margin:1rem!important}.margin-top--md{margin-top:1rem!important}.margin-left--md{margin-left:1rem!important}.margin-bottom--md{margin-bottom:1rem!important}.margin-right--md{margin-right:1rem!important}.margin-vert--md{margin-top:1rem!important;margin-bottom:1rem!important}.margin-horiz--md{margin-left:1rem!important;margin-right:1rem!important}.margin--lg{margin:2rem!important}.margin-top--lg{margin-top:2rem!important}.margin-left--lg{margin-left:2rem!important}.margin-bottom--lg{margin-bottom:2rem!important}.margin-right--lg{margin-right:2rem!important}.margin-vert--lg{margin-top:2rem!important;margin-bottom:2rem!important}.margin-horiz--lg{margin-left:2rem!important;margin-right:2rem!important}.margin--xl{margin:5rem!important}.margin-top--xl{margin-top:5rem!important}.margin-left--xl{margin-left:5rem!important}.margin-bottom--xl{margin-bottom:5rem!important}.margin-right--xl{margin-right:5rem!important}.margin-vert--xl{margin-top:5rem!important;margin-bottom:5rem!important}.margin-horiz--xl{margin-left:5rem!important;margin-right:5rem!important}.padding--none{padding:0!important}.padding-top--none{padding-top:0!important}.padding-left--none{padding-left:0!important}.padding-bottom--none{padding-bottom:0!important}.padding-right--none{padding-right:0!important}.padding-vert--none{padding-top:0!important;padding-bottom:0!important}.padding-horiz--none{padding-left:0!important;padding-right:0!important}.padding--xs{padding:.25rem!important}.padding-top--xs{padding-top:.25rem!important}.padding-left--xs{padding-left:.25rem!important}.padding-bottom--xs{padding-bottom:.25rem!important}.padding-right--xs{padding-right:.25rem!important}.padding-vert--xs{padding-top:.25rem!important;padding-bottom:.25rem!important}.padding-horiz--xs{padding-left:.25rem!important;padding-right:.25rem!important}.padding--sm{padding:.5rem!important}.padding-top--sm{padding-top:.5rem!important}.padding-left--sm{padding-left:.5rem!important}.padding-bottom--sm{padding-bottom:.5rem!important}.padding-right--sm{padding-right:.5rem!important}.padding-vert--sm{padding-top:.5rem!important;padding-bottom:.5rem!important}.padding-horiz--sm{padding-left:.5rem!important;padding-right:.5rem!important}.padding--md{padding:1rem!important}.padding-top--md{padding-top:1rem!important}.padding-left--md{padding-left:1rem!important}.padding-bottom--md{padding-bottom:1rem!important}.padding-right--md{padding-right:1rem!important}.padding-vert--md{padding-top:1rem!important;padding-bottom:1rem!important}.padding-horiz--md{padding-left:1rem!important;padding-right:1rem!important}.padding--lg{padding:2rem!important}.padding-top--lg{padding-top:2rem!important}.padding-left--lg{padding-left:2rem!important}.padding-bottom--lg{padding-bottom:2rem!important}.padding-right--lg{padding-right:2rem!important}.padding-vert--lg{padding-top:2rem!important;padding-bottom:2rem!important}.padding-horiz--lg{padding-left:2rem!important;padding-right:2rem!important}.padding--xl{padding:5rem!important}.padding-top--xl{padding-top:5rem!important}.padding-left--xl{padding-left:5rem!important}.padding-bottom--xl{padding-bottom:5rem!important}.padding-right--xl{padding-right:5rem!important}.padding-vert--xl{padding-top:5rem!important;padding-bottom:5rem!important}.padding-horiz--xl{padding-left:5rem!important;padding-right:5rem!important}code{background-color:var(--ifm-code-background);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical)var(--ifm-code-padding-horizontal);vertical-align:middle;border:.1rem solid rgba(0,0,0,.1)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height)var(--ifm-font-family-monospace);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-pre-padding);overflow:auto}pre code{font-size:100%;line-height:inherit;background-color:transparent;border:none;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);border-radius:.2rem;padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top)0 var(--ifm-heading-margin-bottom)0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:before{content:"";display:table}.markdown:after{clear:both;content:"";display:table}.markdown>:last-child{margin-bottom:0!important}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>pre,.markdown>ul,.markdown>p{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ul,ol{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ul ul,ul ol,ol ol,ol ul{margin:0}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:block;overflow:auto}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead{background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width)solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table th,table td{border:var(--ifm-table-border-width)solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width)solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-blockquote-padding-vertical)var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical)0;border:0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text--break{word-wrap:break-word!important;word-break:break-word!important}.text--no-decoration,.text--no-decoration:hover{-webkit-text-decoration:none;text-decoration:none}.clean-btn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.clean-list{padding-left:0;list-style:none}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width)solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);color:var(--ifm-alert-foreground-color);padding:var(--ifm-alert-padding-vertical)var(--ifm-alert-padding-horizontal)}.alert__heading{font:bold var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase;align-items:center;margin-bottom:.5rem;display:flex}.alert__icon{margin-right:.4em;display:inline-flex}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{color:var(--ifm-alert-foreground-color);margin:calc(var(--ifm-alert-padding-vertical)*-1)calc(var(--ifm-alert-padding-horizontal)*-1)0 0;opacity:.75}.alert .close:hover,.alert .close:focus{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size);border-radius:50%;display:block;overflow:hidden}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{text-align:var(--ifm-avatar-intro-alignment);flex-direction:column;flex:1;justify-content:center;display:flex}.avatar__name{font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:.5rem;flex-direction:column;align-items:center}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width)solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);padding:var(--ifm-badge-padding-vertical)var(--ifm-badge-padding-horizontal);line-height:1;display:inline-block}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);--ifm-badge-border-color:var(--ifm-badge-background-color);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger);--ifm-badge-border-color:var(--ifm-badge-background-color)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item{display:inline-block}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator)center;content:" ";filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));display:inline-block}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier))calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-property:background,color;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);display:inline-block}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width)solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);color:var(--ifm-button-color);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier))calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;transition-property:color,background,border-color;transition-duration:var(--ifm-button-transition-duration);transition-timing-function:var(--ifm-transition-timing-default);line-height:1.5;display:inline-block}.button:hover{color:var(--ifm-button-color);-webkit-text-decoration:none;text-decoration:none}.button--outline{--ifm-button-background-color:transparent;--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--outline:hover,.button--outline:active,.button--outline.button--active{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button--link{--ifm-button-background-color:transparent;--ifm-button-border-color:transparent;color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration)}.button--link:hover,.button--link:active,.button--link.button--active{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{width:100%;display:block}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary:active,.button--primary.button--active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary:active,.button--secondary.button--active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success:active,.button--success.button--active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info:active,.button--info.button--active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning:active,.button--warning.button--active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger:active,.button--danger.button--active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{gap:var(--ifm-button-group-spacing);display:inline-flex}.button-group>.button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.button-group>.button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.button-group--block{justify-content:stretch;display:flex}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);flex-direction:column;display:flex;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__header,.card__body,.card__footer{padding:var(--ifm-card-vertical-spacing)var(--ifm-card-horizontal-spacing)}.card__header:not(:last-child),.card__body:not(:last-child),.card__footer:not(:last-child){padding-bottom:0}.card__header>:last-child,.card__body>:last-child,.card__footer>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{padding:var(--ifm-toc-padding-vertical)0;margin-bottom:0;font-size:.8rem}.table-of-contents,.table-of-contents ul{padding-left:var(--ifm-toc-padding-horizontal);list-style:none}.table-of-contents li{margin:var(--ifm-toc-padding-vertical)var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link:hover,.table-of-contents__link:hover code,.table-of-contents__link--active,.table-of-contents__link--active code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default);padding:1rem;line-height:1}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{font-weight:var(--ifm-dropdown-font-weight);vertical-align:top;display:inline-flex;position:relative}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;visibility:visible;transform:translateY(-1px)}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);opacity:0;pointer-events:none;min-width:10rem;max-height:80vh;left:0;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);visibility:hidden;z-index:var(--ifm-z-index-dropdown);transition-property:opacity,transform,visibility;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);padding:.5rem;list-style:none;position:absolute;overflow-y:auto;transform:translateY(-.625rem)}.dropdown__link{color:var(--ifm-dropdown-link-color);white-space:nowrap;border-radius:.25rem;margin-top:.2rem;padding:.25rem .5rem;font-size:.875rem;display:block}.dropdown__link:hover,.dropdown__link--active{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);-webkit-text-decoration:none;text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{content:"";border:.4em solid transparent;border-top-color:currentColor;border-bottom:0 solid;margin-left:.3em;display:inline-block;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical)var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin-top:1rem}.footer__title{color:var(--ifm-footer-title-color);font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);align-items:center;padding:4rem 2rem;display:flex}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0;list-style:none}.menu__list .menu__list{padding-left:var(--ifm-menu-link-padding-horizontal);flex:0 0 100%;margin-top:.25rem}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item--collapsed .menu__caret:before{transform:rotate(90deg)}.menu__list-item-collapsible{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;flex-wrap:wrap;display:flex;position:relative}.menu__list-item-collapsible:hover,.menu__list-item-collapsible--active{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link:hover,.menu__list-item-collapsible .menu__link--active{background:0 0!important}.menu__link,.menu__caret{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;align-items:center;display:flex}.menu__link:hover,.menu__caret:hover{background:var(--ifm-menu-color-background-hover)}.menu__link{color:var(--ifm-menu-color);padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default);-webkit-text-decoration:none;text-decoration:none}.menu__link--sublist-caret:after{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;min-width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;margin-left:auto;transform:rotate(180deg)}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu__caret:before{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;transform:rotate(180deg)}html[data-theme=dark],.navbar--dark{--ifm-menu-link-sublist-icon-filter:invert(100%)sepia(94%)saturate(17%)hue-rotate(223deg)brightness(104%)contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);display:flex}.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{z-index:var(--ifm-z-index-fixed);position:sticky;top:0}.navbar__inner{flex-wrap:wrap;justify-content:space-between;width:100%;display:flex}.navbar__brand{color:var(--ifm-navbar-link-color);align-items:center;min-width:0;margin-right:1rem;display:flex}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar__title{flex:auto}.navbar__toggle{margin-right:.5rem;display:none}.navbar__logo{flex:none;height:2rem;margin-right:.5rem}.navbar__logo img{height:100%}.navbar__items{flex:1;align-items:center;min-width:0;display:flex}.navbar__items--center{flex:none}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:none;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal);display:inline-block}.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{color:var(--ifm-navbar-link-color);font-weight:var(--ifm-font-weight-semibold)}.navbar__link:hover,.navbar__link--active{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:rgba(255,255,255,.1);--ifm-navbar-search-input-placeholder-color:rgba(255,255,255,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-menu-color-background-active:rgba(255,255,255,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color)var(--ifm-navbar-search-input-icon)no-repeat .75rem center/1rem 1rem;color:var(--ifm-navbar-search-input-color);cursor:text;border:none;border-radius:2rem;width:12.5rem;height:2rem;padding:0 .5rem 0 2.25rem;font-size:1rem;display:inline-block}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);opacity:0;visibility:hidden;width:var(--ifm-navbar-sidebar-width);transition-property:opacity,visibility,transform;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;transform:translate(-100%)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translate(0,0)}.navbar-sidebar__backdrop{opacity:0;visibility:hidden;transition-property:opacity,visibility;transition-duration:var(--ifm-transition-fast);background-color:rgba(0,0,0,.6);transition-timing-function:ease-in-out;position:fixed;inset:0}.navbar-sidebar__brand{box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);flex:1;align-items:center;display:flex}.navbar-sidebar__items{height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast)ease-in-out;display:flex;transform:translateZ(0)}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{width:calc(var(--ifm-navbar-sidebar-width));flex-shrink:0;padding:.5rem}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);text-align:left;width:calc(100% + 1rem);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;top:-.5rem}.navbar-sidebar__close{margin-left:auto;display:flex}.pagination{column-gap:var(--ifm-pagination-page-spacing);font-size:var(--ifm-pagination-font-size);padding-left:0;display:flex}.pagination--sm{--ifm-pagination-font-size:.8rem;--ifm-pagination-padding-horizontal:.8rem;--ifm-pagination-padding-vertical:.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{background:var(--ifm-pagination-item-active-background);color:var(--ifm-pagination-color-active)}.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical)var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:inline-block}.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr);display:grid}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:block}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);-webkit-text-decoration:none;text-decoration:none}.pagination-nav__link--next{text-align:right;grid-column:2/3}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills{gap:var(--ifm-pills-spacing);padding-left:0;display:flex}.pills__item{cursor:pointer;font-weight:var(--ifm-font-weight-bold);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.5rem;padding:.25rem 1rem;display:inline-block}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{text-align:center;flex-grow:1}.tabs{color:var(--ifm-tabs-color);font-weight:var(--ifm-font-weight-bold);margin-bottom:0;padding-left:0;display:flex;overflow-x:auto}.tabs__item{border-radius:var(--ifm-global-radius);cursor:pointer;padding:var(--ifm-tabs-padding-vertical)var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-bottom:3px solid transparent;display:inline-flex}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);color:var(--ifm-tabs-color-active);border-bottom-right-radius:0;border-bottom-left-radius:0}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:rgba(255,255,255,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%)sepia(11%)saturate(0%)hue-rotate(149deg)brightness(99%)contrast(95%);--ifm-code-background:rgba(255,255,255,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:rgba(255,255,255,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}@media (width>=1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (width<=996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{width:max-content;display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__item{display:none}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}}@media (width<=576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0s;--ifm-transition-slow:0s}}@media print{.table-of-contents,.footer,.menu,.navbar,.pagination-nav{display:none}.tabs{page-break-inside:avoid}}}@layer docusaurus.theme-common{.themedComponent_mlkZ{display:none}[data-theme=light] .themedComponent--light_NVdE,[data-theme=dark] .themedComponent--dark_xIcU,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.errorBoundaryError_a6uf{white-space:pre-wrap;color:red}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.anchorTargetStickyNavbar_Vzrq{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorTargetHideOnScrollNavbar_vjPI{scroll-margin-top:.5rem}.details_lb9f{--docusaurus-details-summary-arrow-size:.38rem;--docusaurus-details-transition:transform .2s ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;list-style:none;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{content:"";border-width:var(--docusaurus-details-summary-arrow-size);border-style:solid;border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);transition:var(--docusaurus-details-transition);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2)50%;position:absolute;top:.45rem;left:0;transform:rotate(0)}.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before{transform:rotate(90deg)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child{margin-bottom:0}}@layer docusaurus.theme-classic{:root{--docusaurus-progress-bar-color:var(--ifm-color-primary)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);z-index:1031;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{width:100px;height:100%;box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);opacity:1;position:absolute;right:0;transform:rotate(3deg)translateY(-4px)}.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1);padding:calc(var(--ifm-global-spacing)/2)var(--ifm-global-spacing);color:var(--ifm-color-emphasis-900);background-color:var(--ifm-background-surface-color);position:fixed;top:1rem;left:100%}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{padding:0;line-height:0}.content_knG7{text-align:center;padding:5px 0;font-size:85%}.content_knG7 a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}:root{--docusaurus-announcement-bar-height:auto}.announcementBar_mb4j{height:var(--docusaurus-announcement-bar-height);background-color:var(--ifm-color-white);color:var(--ifm-color-black);border-bottom:1px solid var(--ifm-color-emphasis-100);align-items:center;display:flex}html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{flex:0 0 30px;align-self:stretch}.announcementBarContent_xLdY{flex:auto}@media print{.announcementBar_mb4j{display:none}}@media (width>=997px){:root{--docusaurus-announcement-bar-height:30px}.announcementBarPlaceholder_vyr4,.announcementBarClose_gvF7{flex-basis:50px}}.toggle_vylO{width:2rem;height:2rem}.toggleButton_gllP{-webkit-tap-highlight-color:transparent;width:100%;height:100%;transition:background var(--ifm-transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleIcon_g3eP{display:none}[data-theme-choice=system] .systemToggleIcon_QzmC,[data-theme-choice=light] .lightToggleIcon_pyhR,[data-theme-choice=dark] .darkToggleIcon_wfgR{display:initial}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_J0Sd{cursor:pointer}.iconLanguage_nlXk{vertical-align:text-bottom;margin-right:5px}.navbarSearchContainer_Bca1:empty{display:none}@media (width<=996px){.navbarSearchContainer_Bca1{right:var(--ifm-navbar-padding-horizontal);position:absolute}}@media (width>=997px){.navbarSearchContainer_Bca1{padding:0 var(--ifm-navbar-item-padding-horizontal)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast)ease}.navbarHidden_jGov{transform:translateY(calc(-100% - 2px))}@media (width<=996px){.colorModeToggle_DEke{display:none}}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover{opacity:1}.hash-link{opacity:0;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none;padding-left:.5rem}.hash-link:before{content:"#"}.hash-link:focus,:hover>.hash-link{opacity:1}html,body{height:100%}.mainWrapper_z2l0{flex-direction:column;flex:1 0 auto;display:flex}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{flex-direction:column;min-height:100%;display:flex}.sidebar_re4s{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 2rem);position:sticky;overflow-y:auto}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLink_mo7H:hover{-webkit-text-decoration:none;text-decoration:none}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}@media (width<=996px){.sidebar_re4s{display:none}}.yearGroupHeading_rMGB{margin-top:1.6rem;margin-bottom:.4rem}.yearGroupHeading_QT03{margin:1rem .75rem .5rem}.title_f1Hy{font-size:3rem}@media (width<=576px){.title_f1Hy{font-size:2rem}}.container_mt6G{font-size:.9rem}[data-theme=dark] .githubSvg_Uu4N{fill:var(--light)}[data-theme=light] .githubSvg_Uu4N{fill:var(--dark)}[data-theme=dark] .xSvg_y3PF{fill:var(--light)}[data-theme=light] .xSvg_y3PF{fill:var(--dark)}[data-theme=dark] .linkedinSvg_FCgI{fill:var(--light)}[data-theme=light] .linkedinSvg_FCgI{fill:var(--dark)}[data-theme=dark] .blueskySvg_AzZw{fill:var(--light)}[data-theme=light] .blueskySvg_AzZw{fill:var(--dark)}[data-theme=dark] .instagramSvg_YC40{fill:var(--light)}[data-theme=light] .instagramSvg_YC40{fill:var(--dark)}[data-theme=dark] .threadsSvg_PTXY{fill:var(--light)}[data-theme=light] .threadsSvg_PTXY{fill:var(--dark)}:root{--docusaurus-blog-social-icon-size:1rem}.authorSocials_rSDt{height:var(--docusaurus-blog-social-icon-size);line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;flex-wrap:wrap;align-items:center;line-height:0;display:flex;overflow:hidden}.authorSocialLink_owbf{height:var(--docusaurus-blog-social-icon-size);width:var(--docusaurus-blog-social-icon-size);margin-right:.4rem;line-height:0}.authorSocialIcon_XYv3{width:var(--docusaurus-blog-social-icon-size);height:var(--docusaurus-blog-social-icon-size)}.authorImage_XqGP{--ifm-avatar-photo-size:3.6rem}.author-as-h1_n9oJ .authorImage_XqGP{--ifm-avatar-photo-size:7rem}.author-as-h2_gXvM .authorImage_XqGP{--ifm-avatar-photo-size:5.4rem}.authorDetails_lV9A{flex-direction:column;justify-content:space-around;align-items:flex-start;display:flex}.authorName_yefp{flex-direction:row;font-size:1.1rem;line-height:1.1rem;display:flex}.author-as-h1_n9oJ .authorName_yefp{font-size:2.4rem;line-height:2.4rem;display:inline}.author-as-h2_gXvM .authorName_yefp{font-size:1.4rem;line-height:1.4rem;display:inline}.authorTitle_nd0D{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.8rem;line-height:1rem;display:-webkit-box;overflow:hidden}.author-as-h1_n9oJ .authorTitle_nd0D{font-size:1.2rem;line-height:1.6rem}.author-as-h2_gXvM .authorTitle_nd0D{font-size:1rem;line-height:1.3rem}.authorBlogPostCount_iiJ5{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.8rem;line-height:1.2}.authorCol_Hf19{max-width:inherit!important}.imageOnlyAuthorRow_pa_O{flex-flow:wrap;display:flex}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.authorListItem_n3yI{margin-bottom:2rem;list-style-type:none}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);width:3rem;height:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1);box-shadow:var(--ifm-global-shadow-lw);transition:all var(--ifm-transition-fast)var(--ifm-transition-timing-default);opacity:0;visibility:hidden;border-radius:50%;position:fixed;bottom:1.3rem;right:1.3rem;transform:scale(0)}.backToTopButton_sjWU:after{content:" ";-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;background-color:var(--ifm-color-emphasis-1000);width:100%;height:100%;display:inline-block}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}.backToTopButtonShow_xfvO{opacity:1;visibility:visible;transform:scale(1)}:root{--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1)}[data-theme=dark]:root{--docusaurus-collapse-button-bg:rgba(255,255,255,.05);--docusaurus-collapse-button-bg-hover:rgba(255,255,255,.1)}@media (width>=997px){.collapseSidebarButton_PEFL{background-color:var(--docusaurus-collapse-button-bg);border:1px solid var(--ifm-toc-border-color);border-radius:0;height:40px;position:sticky;bottom:0;display:block!important}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:hover,.collapseSidebarButton_PEFL:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}}.collapseSidebarButton_PEFL{margin:0;display:none}.menuExternalLink_NmtK{align-items:center}.linkLabel_WmDU{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.categoryLink_byQd{overflow:hidden}.menu__link--sublist-caret:after{margin-left:var(--ifm-menu-link-padding-vertical)}.categoryLinkLabel_W154{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}@media (width>=997px){.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{scrollbar-gutter:stable;padding:.5rem 0 .5rem .5rem}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width);flex-direction:column;display:flex}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{margin:0 var(--ifm-navbar-padding-horizontal);min-height:var(--ifm-navbar-height);max-height:var(--ifm-navbar-height);align-items:center;color:inherit!important;-webkit-text-decoration:none!important;text-decoration:none!important;display:flex!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}}.sidebarLogo_isFc{display:none}@media (width>=997px){.expandButton_TmdG{width:100%;height:100%;transition:background-color var(--ifm-transition-fast)ease;background-color:var(--docusaurus-collapse-button-bg);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.expandButton_TmdG:hover,.expandButton_TmdG:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_i1dp{transform:rotate(0)}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}}:root{--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.docSidebarContainer_YfHR{display:none}@media (width>=997px){.docSidebarContainer_YfHR{width:var(--doc-sidebar-width);margin-top:calc(-1*var(--ifm-navbar-height));border-right:1px solid var(--ifm-toc-border-color);will-change:width;transition:width var(--ifm-transition-fast)ease;clip-path:inset(0);display:block}.docSidebarContainerHidden_DPk8{width:var(--doc-sidebar-hidden-width);cursor:pointer}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}}.docMainContainer_TBSr{width:100%;display:flex}@media (width>=997px){.docMainContainer_TBSr{max-width:calc(100% - var(--doc-sidebar-width));flex-grow:1}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}.docRoot_UBD9{width:100%;display:flex}.docsWrapper_hBAB{flex:1 0 auto;display:flex}.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color);margin-bottom:var(--ifm-leading);box-shadow:var(--ifm-global-shadow-lw);border-radius:var(--ifm-code-border-radius)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockStandalone_MEMb{padding:0}.codeBlockLines_e6Vv{font:inherit;float:left;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{padding:var(--ifm-pre-padding)0;display:table}@media print{.codeBlockLines_e6Vv{white-space:pre-wrap}}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);margin:0 calc(-1*var(--ifm-pre-padding));padding:0 var(--ifm-pre-padding);display:block}.codeLine_lJS_{counter-increment:line-count;display:table-row}.codeLineNumber_Tfdd{text-align:right;width:1%;padding:0 var(--ifm-pre-padding);background:var(--ifm-pre-background);overflow-wrap:normal;display:table-cell;position:sticky;left:0}.codeLineNumber_Tfdd:before{content:counter(line-count);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_Vdqa{opacity:1!important}.copyButtonIcons_IEyt{width:1.125rem;height:1.125rem;position:relative}.copyButtonIcon_TrPX,.copyButtonSuccessIcon_cVMy{fill:currentColor;opacity:inherit;width:inherit;height:inherit;transition:all var(--ifm-transition-fast)ease;position:absolute;top:0;left:0}.copyButtonSuccessIcon_cVMy{opacity:0;color:#00d600;top:50%;left:50%;transform:translate(-50%,-50%)scale(.33)}.copyButtonCopied_Vdqa .copyButtonIcon_TrPX{opacity:0;transform:scale(.33)}.copyButtonCopied_Vdqa .copyButtonSuccessIcon_cVMy{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.wordWrapButtonIcon_b1P5{width:1.2rem;height:1.2rem}.wordWrapButtonEnabled_uzNF .wordWrapButtonIcon_b1P5{color:var(--ifm-color-primary)}.buttonGroup_M5ko{right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);column-gap:.2rem;display:flex;position:absolute}.buttonGroup_M5ko button{background:var(--prism-background-color);color:var(--prism-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);transition:opacity var(--ifm-transition-fast)ease-in-out;opacity:0;align-items:center;padding:.4rem;line-height:0;display:flex}.buttonGroup_M5ko button:hover{opacity:1!important}.buttonGroup_M5ko button:focus-visible{opacity:1!important}.theme-code-block:hover .buttonGroup_M5ko button{opacity:.4}.codeBlockContent_QJqH{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_OeMC{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);padding:.75rem var(--ifm-pre-padding);border-top-left-radius:inherit;border-top-right-radius:inherit;font-weight:500}.codeBlockTitle_OeMC+.codeBlockContent_QJqH .codeBlock_a8dz{border-top-left-radius:0;border-top-right-radius:0}:root{--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);padding:.2rem .5rem .3rem;font-size:90%}.tagWithCount_h2kH{border-left:0;align-items:center;padding:0 .5rem 0 1rem;display:flex;position:relative}.tagWithCount_h2kH:before,.tagWithCount_h2kH:after{content:"";border:1px solid var(--docusaurus-tag-list-border);transition:inherit;position:absolute;top:50%}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;width:1.18rem;height:1.18rem;right:100%;transform:translate(50%,-50%)rotate(-45deg)}.tagWithCount_h2kH:after{border-radius:50%;width:.5rem;height:.5rem;left:0;transform:translateY(-50%)}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem;line-height:1.2}.tag_Nnez{margin:.5rem .5rem 0 1rem;display:inline-block}.tags_jXut{display:inline}.tag_QGVx{margin:0 .4rem .5rem 0;display:inline-block}.iconEdit_Z9Sw{vertical-align:sub;margin-right:.3em}.lastUpdated_JAkA{margin-top:.2rem;font-size:smaller;font-style:italic}@media (width>=997px){.lastUpdated_JAkA{text-align:right}}@media print{.noPrint_WFHX{display:none}}.tocCollapsibleButton_TO0P{font-size:inherit;justify-content:space-between;align-items:center;width:100%;padding:.4rem .8rem;display:flex}.tocCollapsibleButton_TO0P:after{content:"";background:var(--ifm-menu-link-sublist-icon)50% 50%/2rem 2rem no-repeat;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast);transform:rotate(180deg)}.tocCollapsibleButtonExpanded_MG3E:after{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);padding:.2rem 0;font-size:15px}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tocCollapsibleExpanded_sAul{transform:none}@media (width>=997px){.tocMobile_ITEo{display:none}}@media print{.tocMobile_ITEo{display:none}}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast)ease;margin:0 0 var(--ifm-spacing-vertical);border:1px solid var(--ifm-alert-border-color)}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight)var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{vertical-align:middle;margin-right:.4em;display:inline-block}.admonitionIcon_Rf37 svg{width:1.6em;height:1.6em;fill:var(--ifm-alert-foreground-color);display:inline-block}.admonitionContent_BuS1>:last-child{margin-bottom:0}.tableOfContents_bqdL{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 1rem);position:sticky;overflow-y:auto}@media (width<=996px){.tableOfContents_bqdL{display:none}.docItemContainer_F8PC{padding:0 .3rem}}.breadcrumbHomeIcon_YNFT{vertical-align:top;width:1.1rem;height:1.1rem;position:relative;top:1px}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:.8;margin-bottom:.8rem}.docItemContainer_Djhp header+*,.docItemContainer_Djhp article>:first-child{margin-top:0}@media (width>=997px){.docItemCol_VOVn{max-width:75%!important}}}@layer docusaurus.core{#__docusaurus-base-url-issue-banner-container{display:none}}@layer docusaurus.plugin-debug;@layer docusaurus.theme-mermaid{.container_lyt7,.container_lyt7>svg{max-width:100%}}@layer docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;:root{--ifm-color-primary:#1684ff;--ifm-color-primary-dark:#0872eb;--ifm-color-primary-darker:#066bdc;--ifm-color-primary-darkest:#0758b4;--ifm-color-primary-light:#3495ff;--ifm-color-primary-lighter:#43a0ff;--ifm-color-primary-lightest:#7abfff;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.1);--ifm-navbar-background-color:rgba(255,255,255,.85);--ifm-background-surface-color:#fff;--ifm-color-content:#1f2430;--ifm-color-content-secondary:#6b7280;--banner-gradient-from:#f8fbff;--banner-gradient-to:#ecfeff;--home-border:rgba(15,23,42,.08);--home-border-strong:rgba(15,23,42,.16);--home-hero-bg:linear-gradient(180deg,#f7fbff 0%,#fff 72%);--home-grid-image:linear-gradient(rgba(22,132,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(22,132,255,.055) 1px,transparent 1px);--home-glow-a:rgba(22,132,255,.28);--home-glow-b:rgba(17,201,232,.2);--home-brand-gradient:linear-gradient(120deg,#11c9e8 0%,#1684ff 52%,#073de1 100%);--home-primary-glow:rgba(22,132,255,.35);--home-badge-bg:rgba(22,132,255,.075);--home-badge-border:rgba(22,132,255,.18);--home-badge-text-dark:#0864c8;--home-window-bg:#fff;--home-window-bar:#f8fafc;--home-window-shadow:0 30px 60px -20px rgba(15,23,42,.25);--home-code-kw:#2563eb;--home-code-tbl:#0891b2;--home-tag-bg:rgba(22,132,255,.1);--home-tag-warm-bg:rgba(245,158,11,.14);--home-tag-warm-text:#b45309;--home-soft-bg:#f8fafc;--home-cta-bg:linear-gradient(120deg,#0b72e7 0%,#1684ff 52%,#08b9d7 100%)}[data-theme=dark]{--ifm-color-primary:#53a8ff;--ifm-color-primary-dark:#2993ff;--ifm-color-primary-darker:#1689ff;--ifm-color-primary-darkest:#0070df;--ifm-color-primary-light:#7dbdff;--ifm-color-primary-lighter:#91c7ff;--ifm-color-primary-lightest:#cbe5ff;--docusaurus-highlighted-code-line-bg:rgba(255,255,255,.1);--ifm-background-color:#0f1220;--ifm-background-surface-color:#171a2b;--ifm-navbar-background-color:rgba(15,18,32,.85);--ifm-color-content:#e7e9f3;--ifm-color-content-secondary:#9aa0b5;--banner-gradient-from:#12162a;--banner-gradient-to:#0f1220;--home-border:rgba(255,255,255,.08);--home-border-strong:rgba(255,255,255,.16);--home-hero-bg:linear-gradient(180deg,#0c0f1d 0%,#0f1220 100%);--home-grid-image:linear-gradient(rgba(56,189,248,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(56,189,248,.09) 1px,transparent 1px);--home-glow-a:rgba(22,132,255,.34);--home-glow-b:rgba(17,201,232,.22);--home-brand-gradient:linear-gradient(120deg,#22d3ee 0%,#53a8ff 50%,#4770ff 100%);--home-primary-glow:rgba(22,132,255,.46);--home-badge-bg:rgba(83,168,255,.12);--home-badge-border:rgba(83,168,255,.28);--home-badge-text-dark:#bae0ff;--home-window-bg:#12162a;--home-window-bar:#0d101d;--home-window-shadow:0 30px 60px -20px rgba(0,0,0,.6);--home-code-kw:#7dbdff;--home-code-tbl:#38bdf8;--home-tag-bg:rgba(83,168,255,.16);--home-tag-warm-bg:rgba(245,158,11,.18);--home-tag-warm-text:#fbbf24;--home-soft-bg:#10131f;--home-cta-bg:linear-gradient(120deg,#075fc4 0%,#137fe8 52%,#078da8 100%)}table{width:100%;display:table}table thead tr{border-bottom:none}.navbar{-webkit-backdrop-filter:saturate(180%)blur(8px);backdrop-filter:saturate(180%)blur(8px);border-bottom:1px solid var(--home-border);box-shadow:0 4px 18px rgba(15,67,120,.043)}.navbar__logo{width:38px;height:38px}.navbar__logo img{object-fit:contain;width:100%;height:100%}.navbar__title{letter-spacing:-.025em;font-weight:800}.header-github-link:hover{opacity:.6}.header-github-link:before{content:"";background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%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") no-repeat;width:24px;height:24px;display:flex}[data-theme=dark] .header-github-link:before{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' 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") no-repeat}.main_mXnJ{max-width:1100px;margin:0 auto;padding:3rem 1rem 5rem}.hero_Xgt0{text-align:center;margin-bottom:3rem}.title_P3Qk{margin-bottom:.75rem;font-size:2.4rem}.subtitle_E8C4{color:var(--ifm-color-content-secondary);font-size:1.1rem}.grid_N3Zu{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;display:grid}.card_SFkr{border:1px solid var(--ifm-color-emphasis-200);background:var(--ifm-background-surface-color);border-radius:12px;flex-direction:column;gap:.6rem;padding:1.75rem;display:flex}.icon_ZV17{font-size:2rem}.cardTitle_tde4{margin:0}.cardDesc_eKeg{color:var(--ifm-color-content-secondary);flex:1}.hero_reY0{border-bottom:1px solid var(--home-border);background:var(--home-hero-bg);padding:6rem 1.5rem 5rem;position:relative;overflow:hidden}.gridBg_zRbt{background-image:var(--home-grid-image);pointer-events:none;background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 0,#000 40%,transparent 100%);mask-image:radial-gradient(80% 60% at 50% 0,#000 40%,transparent 100%)}.glowA_dnBZ,.glowB_NjYj{filter:blur(90px);opacity:.55;pointer-events:none;border-radius:50%;position:absolute}.glowA_dnBZ{background:var(--home-glow-a);width:460px;height:460px;top:-180px;right:6%}.glowB_NjYj{background:var(--home-glow-b);width:380px;height:380px;bottom:-200px;left:-80px}.inner_IGGz{z-index:1;grid-template-columns:1.05fr .95fr;align-items:center;gap:3.5rem;max-width:1200px;margin:0 auto;display:grid;position:relative}.left_uKTZ{text-align:left}.badge_D9jF{letter-spacing:.01em;color:var(--ifm-color-primary-dark);background:var(--home-badge-bg);border:1px solid var(--home-badge-border);border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.35rem .85rem;font-size:.82rem;font-weight:600;display:inline-flex}[data-theme=dark] .badge_D9jF{color:var(--home-badge-text-dark)}.badgeDot_ycdE{background:var(--ifm-color-primary);width:7px;height:7px;box-shadow:0 0 0 3px var(--home-glow-a);border-radius:50%}.title_DbXn{letter-spacing:-.035em;align-items:center;gap:0;margin:0 0 .5rem;font-size:4.25rem;font-weight:900;line-height:1.02;display:flex}.brandLogo_fzYv{object-fit:contain;width:74px;height:74px;margin-right:.7rem}.titleGrad_wsmG{background:var(--home-brand-gradient);-webkit-text-fill-color:transparent;color:transparent;-webkit-background-clip:text;background-clip:text}@media (width<=600px){.title_DbXn{font-size:3rem}.brandLogo_fzYv{width:56px;height:56px;margin-right:.45rem}}.tagline_Omcq{color:var(--ifm-color-content);margin:0 0 .85rem;font-size:1.55rem;font-weight:700}.desc_oE5c{color:var(--ifm-color-content-secondary);max-width:34rem;margin:0 0 2rem;font-size:1.05rem;line-height:1.7}.actions_BPoi{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.ctaPrimary_nzdu{background:var(--home-brand-gradient);box-shadow:0 10px 24px -8px var(--home-primary-glow);border:none;transition:transform .18s,box-shadow .18s}.ctaPrimary_nzdu:hover{box-shadow:0 16px 32px -8px var(--home-primary-glow);background:var(--home-brand-gradient);transform:translateY(-2px)}.arrow_ohpH{margin-left:.5rem;transition:transform .18s;display:inline-block}.ctaPrimary_nzdu:hover .arrow_ohpH{transform:translate(3px)}.ctaSecondary_ioAi{border:1px solid var(--home-border-strong);color:var(--ifm-color-content);background:0 0}.ctaSecondary_ioAi:hover{border-color:var(--ifm-color-primary);color:var(--ifm-color-primary);background:0 0}.ghLink_HXFT{color:var(--ifm-color-content-secondary);font-weight:600;-webkit-text-decoration:none;text-decoration:none}.ghLink_HXFT:hover{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.stats_UghV{border-top:1px solid var(--home-border);flex-wrap:wrap;gap:2.25rem;margin:3rem 0 0;padding:1.75rem 0 0;list-style:none;display:flex}.stats_UghV li{flex-direction:column;gap:.2rem;display:flex}.stats_UghV strong{letter-spacing:-.02em;color:var(--ifm-color-content);background:var(--home-brand-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.6rem;font-weight:800}.stats_UghV span{color:var(--ifm-color-content-secondary);font-size:.85rem}.right_YUha{perspective:1200px}.window_mZAp{border:1px solid var(--home-border);background:var(--home-window-bg);box-shadow:var(--home-window-shadow);border-radius:16px;transition:transform .4s;overflow:hidden;transform:rotateY(-2deg)rotateX(1deg)}.window_mZAp:hover{transform:rotateY(0)rotateX(0)}.windowBar_IG7S{border-bottom:1px solid var(--home-border);background:var(--home-window-bar);align-items:center;gap:.75rem;padding:.7rem 1rem;display:flex}.dots_dSgu{gap:6px;display:inline-flex}.dots_dSgu i{border-radius:50%;width:11px;height:11px;display:block}.dots_dSgu i:first-child{background:#ff5f57}.dots_dSgu i:nth-child(2){background:#febc2e}.dots_dSgu i:nth-child(3){background:#28c840}.windowTitle_C7Wi{font-size:.82rem;font-family:var(--ifm-font-family-monospace);color:var(--ifm-color-content-secondary)}.pane_IGTq{padding:1.1rem 1.25rem}.paneLabel_AJ3a{text-transform:uppercase;letter-spacing:.08em;color:var(--ifm-color-content-secondary);margin-bottom:.6rem;font-size:.72rem;font-weight:700}.code_ciTM{font-family:var(--ifm-font-family-monospace);white-space:pre;color:var(--ifm-color-content);font-size:.88rem;line-height:1.85;overflow-x:auto}.kw_CYEt{color:var(--home-code-kw);font-weight:700}.tbl_ICwn{color:var(--home-code-tbl)}.divider_ybTj{text-transform:uppercase;letter-spacing:.08em;color:var(--ifm-color-content-secondary);background:var(--home-window-bar);border-top:1px solid var(--home-border);border-bottom:1px solid var(--home-border);align-items:center;gap:.5rem;margin:0;padding:.55rem 1.25rem;font-size:.72rem;font-weight:700;display:flex}.dividerDot_PbM6{background:#28c840;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px rgba(40,200,64,.18)}.result_UYmE{flex-direction:column;gap:.55rem;display:flex}.resLine_Yxvh{font-family:var(--ifm-font-family-monospace);color:var(--ifm-color-content);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.check_W2bt{color:#22c55e;font-weight:800}.tag_bkpi{color:var(--ifm-color-primary-dark);background:var(--home-tag-bg);border-radius:6px;padding:.1rem .45rem;font-size:.68rem;font-weight:700}.tagWarm_CVvE{color:var(--home-tag-warm-text);background:var(--home-tag-warm-bg);border-radius:6px;padding:.1rem .45rem;font-size:.68rem;font-weight:700}.arrowSm_NRI0{color:var(--ifm-color-content-secondary)}@media (width<=996px){.hero_reY0{padding:4.5rem 1.25rem 3.5rem}.inner_IGGz{grid-template-columns:1fr;gap:2.5rem}.title_DbXn{font-size:3.25rem}.tagline_Omcq{font-size:1.3rem}.stats_UghV{gap:1.75rem}.window_mZAp{transform:none}}@media (width<=600px){.title_DbXn{font-size:2.6rem}.stats_UghV li{min-width:40%}}.section_eBTT{text-align:center;max-width:1160px;margin:0 auto;padding:0 1.5rem 1rem}.lead_wHuz{letter-spacing:.06em;text-transform:uppercase;color:var(--ifm-color-content-secondary);margin-bottom:1.75rem;font-size:.85rem;font-weight:600}.row_w6Q8{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.item_Mtdw{border:1px solid var(--home-border);background:var(--ifm-background-surface-color);color:var(--ifm-color-content-secondary);border-radius:10px;align-items:center;gap:.5rem;padding:.5rem .85rem;font-size:.85rem;font-weight:600;transition:transform .18s,border-color .18s,color .18s;display:flex}.item_Mtdw:hover{border-color:var(--home-border-strong);color:var(--ifm-color-content);transform:translateY(-3px)}.item_Mtdw img{object-fit:contain;filter:grayscale();opacity:.75;width:20px;height:20px;transition:filter .18s,opacity .18s}.fallbackIcon_XJXT{width:20px;height:20px;color:var(--ifm-color-primary);opacity:.72;place-items:center;font-size:.65rem;display:grid}.item_Mtdw:hover img{filter:grayscale(0%);opacity:1}@media (width<=600px){.item_Mtdw span{display:none}.item_Mtdw{padding:.55rem}}.section_R2J0{max-width:1160px;margin:0 auto;padding:5.5rem 1.5rem 4.5rem}.header_nMSq{text-align:center;max-width:640px;margin:0 auto 3rem}.eyebrow_KQpq{letter-spacing:.1em;text-transform:uppercase;color:var(--ifm-color-primary);margin-bottom:.75rem;font-size:.8rem;font-weight:700;display:inline-block}.heading_fnW7{letter-spacing:-.02em;margin:0 0 .75rem;font-size:2.15rem;font-weight:800}.subheading_cJ8g{color:var(--ifm-color-content-secondary);margin:0;font-size:1.05rem}.grid_vg4X{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.card_ooQ2{border:1px solid var(--home-border);background:var(--ifm-background-surface-color);border-radius:16px;padding:1.85rem 1.6rem;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.card_ooQ2:before{content:"";background:var(--home-brand-gradient);opacity:0;height:3px;transition:opacity .2s;position:absolute;inset:0 0 auto}.card_ooQ2:hover{box-shadow:0 18px 40px -18px var(--home-primary-glow);border-color:transparent;transform:translateY(-5px)}.card_ooQ2:hover:before{opacity:1}.iconWrap_ISBW{background:var(--home-badge-bg);border:1px solid var(--home-badge-border);border-radius:13px;place-items:center;width:48px;height:48px;margin-bottom:1.1rem;display:grid}.iconWrap_ISBW svg{width:27px;height:27px;color:var(--ifm-color-primary)}.iconAccent_kca4{stroke-width:2.15px}.cardTitle_FpVF{margin:0 0 .5rem;font-size:1.15rem;font-weight:700}.cardDesc_Hcpx{color:var(--ifm-color-content-secondary);margin:0;font-size:.95rem;line-height:1.65}@media (width<=996px){.grid_vg4X{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.section_R2J0{padding:3.5rem 1.25rem 3rem}.heading_fnW7{font-size:1.7rem}.grid_vg4X{grid-template-columns:1fr}}.section_XM3Q{max-width:1160px;margin:0 auto;padding:1rem 1.5rem 5rem}.row_mLVB{align-items:center;gap:3.5rem;margin:4rem 0;display:flex}.reverse_tY76{flex-direction:row-reverse}.info_rZXn{flex:1}.eyebrow_cIXQ{letter-spacing:.1em;text-transform:uppercase;color:var(--ifm-color-primary);margin-bottom:.6rem;font-size:.78rem;font-weight:700;display:inline-block}.title_ULaK{letter-spacing:-.02em;margin-bottom:1rem;font-size:1.75rem;font-weight:800}.desc_yXFq{color:var(--ifm-color-content-secondary);margin-bottom:1.5rem;font-size:1rem;line-height:1.75}.steps_EEbF{counter-reset:step;flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.step_eGvK{color:var(--ifm-color-content);align-items:center;gap:.7rem;font-size:.95rem;display:flex}.stepNo_MhRk{color:#fff;background:var(--home-brand-gradient);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.78rem;font-weight:700;display:grid}.showcase_mNzI{flex:1.15}.showcase_mNzI img{border:1px solid var(--home-border);background:var(--ifm-background-surface-color);width:100%;box-shadow:0 24px 50px -28px var(--home-primary-glow);border-radius:16px}@media (width<=996px){.row_mLVB,.reverse_tY76{flex-direction:column;gap:2rem;margin:3rem 0}.showcase_mNzI{width:100%}}.band_iMg9{max-width:1160px;margin:0 auto 5rem;padding:0 1.5rem}.inner_s1W7{text-align:center;background:var(--home-cta-bg);color:#fff;border-radius:24px;padding:4rem 2rem;position:relative;overflow:hidden}.inner_s1W7:before{content:"";pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 70% at 50% 0,#000 20%,transparent 80%);mask-image:radial-gradient(70% 70% at 50% 0,#000 20%,transparent 80%)}.title_Xeao{letter-spacing:-.02em;color:#fff;margin:0 0 .75rem;font-size:2rem;font-weight:800;position:relative}.desc_fTY7{color:rgba(255,255,255,.85);margin:0 0 2rem;font-size:1.05rem;position:relative}.actions_AcwB{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex;position:relative}.primary_lgmO{color:#4f46e5;background:#fff;border:none;font-weight:700}.primary_lgmO:hover{color:#4f46e5;background:#f1f0ff}.secondary_m1GY{color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4);font-weight:700}.secondary_m1GY:hover{color:#fff;background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.7)}@media (width<=600px){.inner_s1W7{padding:3rem 1.25rem}.title_Xeao{font-size:1.5rem}}.main_iUjq{background:var(--ifm-background-color)} \ No newline at end of file diff --git a/en/assets/js/02854a60.7e7e9bd4.js b/en/assets/js/02854a60.34877af3.js similarity index 88% rename from en/assets/js/02854a60.7e7e9bd4.js rename to en/assets/js/02854a60.34877af3.js index b2efd39..57b060f 100644 --- a/en/assets/js/02854a60.7e7e9bd4.js +++ b/en/assets/js/02854a60.34877af3.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8384"],{7455(e,n,s){s.r(n),s.d(n,{metadata:()=>r,default:()=>u,frontMatter:()=>t,contentTitle:()=>i,toc:()=>o,assets:()=>d});var r=JSON.parse('{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/en/docs/next/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/quickstart/setup.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar_label":"Setup & Build","sidebar_position":1},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/SqlParserX/en/docs/next/about/architecture"},"next":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage"}}'),a=s(4848),l=s(8453);let t={title:"Quick Start",description:"Add the dependency, build and run SqlParserX locally",sidebar_label:"Setup & Build",sidebar_position:1},i="Quick Start",d={},o=[{value:"1. Requirements",id:"1-requirements",level:2},{value:"2. Add the Dependency",id:"2-add-the-dependency",level:2},{value:"3. Hello World: Parse a SQL",id:"3-hello-world-parse-a-sql",level:2},{value:"4. Next Steps",id:"4-next-steps",level:2}];function c(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"quick-start",children:"Quick Start"})}),"\n",(0,a.jsx)(n.h2,{id:"1-requirements",children:"1. Requirements"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Dependency"}),(0,a.jsx)(n.th,{children:"Version"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"JDK"}),(0,a.jsx)(n.td,{children:"Java 8+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Maven"}),(0,a.jsx)(n.td,{children:"3.6+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsxs)(n.td,{children:["Node.js (only ",(0,a.jsx)(n.code,{children:"sqlparserx-ui"}),")"]}),(0,a.jsx)(n.td,{children:">= 20"})]})]})]}),"\n",(0,a.jsx)(n.h2,{id:"2-add-the-dependency",children:"2. Add the Dependency"}),"\n",(0,a.jsxs)(n.p,{children:["Add the ",(0,a.jsx)(n.strong,{children:"business parsing layer"})," ",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," to your ",(0,a.jsx)(n.code,{children:"pom.xml"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,a.jsxs)(n.p,{children:[":::tip Dependency note\n",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," (syntax layer) and official Druid, so business parsing only needs the single ",(0,a.jsx)(n.code,{children:"core"})," coordinate. If you only need SQL\u2192AST syntax parsing, you can depend on ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," alone.\n:::"]}),"\n",(0,a.jsxs)(n.p,{children:[":::note Use from source\nIf ",(0,a.jsx)(n.code,{children:"1.0-SNAPSHOT"})," is not published to a remote repository yet, build and install it locally first:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,a.jsx)(n.p,{children:":::"}),"\n",(0,a.jsx)(n.h2,{id:"3-hello-world-parse-a-sql",children:"3. Hello World: Parse a SQL"}),"\n",(0,a.jsxs)(n.p,{children:["A ",(0,a.jsx)(n.strong,{children:"complete runnable"})," class covering table parsing, column lineage, table lineage and functions, consistent with the official ",(0,a.jsx)(n.code,{children:"sqlparserx-core/README.md"})," demo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser by datasource type (mysql/hive/doris/... 15+ dialects)\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse column lineage (pass metadata for select * cases)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4. Parse table lineage\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("table lineage: " + tableLineages);\n\n // 5. Parse functions\n Set functions = parser.parseFunction(sql);\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\ntable lineage: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\nfunctions: [sum, count]\n"})}),"\n",(0,a.jsx)(n.h2,{id:"4-next-steps",children:"4. Next Steps"}),"\n",(0,a.jsx)(n.p,{children:"Dependency + complete example for each capability:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/field-lineage",children:"Field lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/table-lineage",children:"Table lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/table-parse",children:"Table parsing"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/function-parse",children:"Function parsing"})}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8384"],{7455(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>l,contentTitle:()=>i,toc:()=>d,assets:()=>o});var s=JSON.parse('{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/en/docs/next/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/quickstart/setup.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar_label":"Setup & Build","sidebar_position":1},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/SqlParserX/en/docs/next/about/architecture"},"next":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/next/core/sql-type"}}'),a=r(4848),t=r(8453);let l={title:"Quick Start",description:"Add the dependency, build and run SqlParserX locally",sidebar_label:"Setup & Build",sidebar_position:1},i="Quick Start",o={},d=[{value:"1. Requirements",id:"1-requirements",level:2},{value:"2. Add the Dependency",id:"2-add-the-dependency",level:2},{value:"3. Hello World: Parse a SQL",id:"3-hello-world-parse-a-sql",level:2},{value:"4. Next Steps",id:"4-next-steps",level:2}];function c(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"quick-start",children:"Quick Start"})}),"\n",(0,a.jsx)(n.h2,{id:"1-requirements",children:"1. Requirements"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Dependency"}),(0,a.jsx)(n.th,{children:"Version"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"JDK"}),(0,a.jsx)(n.td,{children:"Java 8+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Maven"}),(0,a.jsx)(n.td,{children:"3.6+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsxs)(n.td,{children:["Node.js (only ",(0,a.jsx)(n.code,{children:"sqlparserx-ui"}),")"]}),(0,a.jsx)(n.td,{children:">= 20"})]})]})]}),"\n",(0,a.jsx)(n.h2,{id:"2-add-the-dependency",children:"2. Add the Dependency"}),"\n",(0,a.jsxs)(n.p,{children:["Add the ",(0,a.jsx)(n.strong,{children:"business parsing layer"})," ",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," to your ",(0,a.jsx)(n.code,{children:"pom.xml"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,a.jsxs)(n.p,{children:[":::tip Dependency note\n",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," (syntax layer) and official Druid, so business parsing only needs the single ",(0,a.jsx)(n.code,{children:"core"})," coordinate. If you only need SQL\u2192AST syntax parsing, you can depend on ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," alone.\n:::"]}),"\n",(0,a.jsxs)(n.p,{children:[":::note Use from source\nIf ",(0,a.jsx)(n.code,{children:"1.0-SNAPSHOT"})," is not published to a remote repository yet, build and install it locally first:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,a.jsx)(n.p,{children:":::"}),"\n",(0,a.jsx)(n.h2,{id:"3-hello-world-parse-a-sql",children:"3. Hello World: Parse a SQL"}),"\n",(0,a.jsxs)(n.p,{children:["A ",(0,a.jsx)(n.strong,{children:"complete runnable"})," class covering table parsing, column lineage, table lineage and functions, consistent with the official ",(0,a.jsx)(n.code,{children:"sqlparserx-core/README.md"})," demo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser by datasource type (mysql/hive/doris/... 15+ dialects)\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse column lineage (pass metadata for select * cases)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4. Parse table lineage\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("table lineage: " + tableLineages);\n\n // 5. Parse functions\n Set functions = parser.parseFunction(sql);\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\ntable lineage: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\nfunctions: [sum, count]\n"})}),"\n",(0,a.jsx)(n.h2,{id:"4-next-steps",children:"4. Next Steps"}),"\n",(0,a.jsx)(n.p,{children:"Dependency + complete example for each capability:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/field-lineage",children:"Field lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/table-lineage",children:"Table lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/table-parse",children:"Table parsing"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/function-parse",children:"Function parsing"})}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>l,x:()=>i});var s=r(6540);let a={},t=s.createContext(a);function l(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1016.43603c7f.js b/en/assets/js/1016.1b255e6a.js similarity index 96% rename from assets/js/1016.43603c7f.js rename to en/assets/js/1016.1b255e6a.js index a8a68cb..f522f17 100644 --- a/assets/js/1016.43603c7f.js +++ b/en/assets/js/1016.1b255e6a.js @@ -1 +1 @@ -(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1016"],{8426(e,t){function n(e){let t,n=[];for(let s of e.split(",").map(e=>e.trim()))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,r]=t;if(s&&r){let e=(s=parseInt(s))<(r=parseInt(r))?1:-1;("-"===a||".."===a||"\u2025"===a)&&(r+=e);for(let t=s;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},7444(e,t,n){"use strict";n.d(t,{A:()=>y});var s=n(4848),a=n(6540),r=n(4164),i=n(568),l=n(8287);function c({type:e,className:t,children:n,id:a}){return(0,s.jsx)("div",{className:(0,r.A)(l.G.common.admonition,l.G.common.admonitionType(e),"admonition_xJq3",t),id:a,children:n})}function o({icon:e,title:t}){return(0,s.jsxs)("div",{className:"admonitionHeading_Gvgb",children:[(0,s.jsx)("span",{className:"admonitionIcon_Rf37",children:e}),t]})}function d({children:e}){return e?(0,s.jsx)("div",{className:"admonitionContent_BuS1",children:e}):null}function u(e){let{type:t,icon:n,title:a,children:r,className:i,id:l}=e;return(0,s.jsxs)(c,{type:t,className:i,id:l,children:[a||n?(0,s.jsx)(o,{title:a,icon:n}):null,(0,s.jsx)(d,{children:r})]})}let m={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})},{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function h(e){return(0,s.jsx)(u,{...m,...e,className:(0,r.A)("alert alert--secondary",e.className),children:e.children})}let f={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})},{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function p(e){return(0,s.jsx)(u,{...f,...e,className:(0,r.A)("alert alert--success",e.className),children:e.children})}let x={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})},{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function j(e){return(0,s.jsx)(u,{...x,...e,className:(0,r.A)("alert alert--info",e.className),children:e.children})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}let b={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},v={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})},{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},N={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})},A={note:h,tip:p,info:j,warning:function(e){return(0,s.jsx)(u,{...b,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(u,{...v,...e,className:(0,r.A)("alert alert--danger",e.className),children:e.children})},secondary:e=>(0,s.jsx)(h,{title:"secondary",...e}),important:e=>(0,s.jsx)(j,{title:"important",...e}),success:e=>(0,s.jsx)(p,{title:"success",...e}),caution:function(e){return(0,s.jsx)(u,{...N,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})}};function y(e){var t;let n,r=function(e){var t;let n,r,i,{mdxAdmonitionTitle:l,rest:c}=(t=e.children,r=(n=a.Children.toArray(t)).find(e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),i=n.filter(e=>e!==r),{mdxAdmonitionTitle:r?.props.children,rest:i.length>0?(0,s.jsx)(s.Fragment,{children:i}):null}),o=e.title??l;return{...e,...o&&{title:o},children:c}}(e),i=(n=A[t=r.type])||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),A.info);return(0,s.jsx)(i,{...r})}},7410(e,t,n){"use strict";n.d(t,{A:()=>f});var s=n(4848);n(6540);var a=n(4164),r=n(568),i=n(8287),l=n(5310);function c({className:e,...t}){return(0,s.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,a.A)("iconEdit_Z9Sw",e),"aria-hidden":"true",...t,children:(0,s.jsx)("g",{children:(0,s.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function o({editUrl:e}){return(0,s.jsxs)(l.A,{to:e,className:i.G.common.editThisPage,children:[(0,s.jsx)(c,{}),(0,s.jsx)(r.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var d=n(7954);function u({lastUpdatedAt:e}){let t=new Date(e),n=(0,d.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,s.jsx)(r.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,s.jsx)("b",{children:(0,s.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:n})})},children:" on {date}"})}function m({lastUpdatedBy:e}){return(0,s.jsx)(r.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,s.jsx)("b",{children:e})},children:" by {user}"})}function h({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,s.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,s.jsx)(r.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,s.jsx)(u,{lastUpdatedAt:e}):"",byUser:t?(0,s.jsx)(m,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function f({className:e,editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r}){return(0,s.jsxs)("div",{className:(0,a.A)("row",e),children:[(0,s.jsx)("div",{className:(0,a.A)("col","noPrint_WFHX"),children:t&&(0,s.jsx)(o,{editUrl:t})}),(0,s.jsx)("div",{className:(0,a.A)("col","lastUpdated_JAkA"),children:(n||r)&&(0,s.jsx)(h,{lastUpdatedAt:n,lastUpdatedBy:r})})]})}},4743(e,t,n){"use strict";n.d(t,{A:()=>eg});var s=n(4848),a=n(6540),r=n(8453),i=n(3572),l=n(9863),c=n(4164),o=n(3941),d=n(1022);function u(){let{prism:e}=(0,d.p)(),{colorMode:t}=(0,o.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var m=n(8287),h=n(8426),f=n.n(h),p=n(2260);let x=/title=(?["'])(?.*?)\1/,j=/\{(?<range>[\d,-]+)\}/,g={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},b={...g,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},v=Object.keys(g);function N(e,t){let n=e.map(e=>{let{start:n,end:s}=b[e];return`(?:${n}\\s*(${t.flatMap(e=>[e.line,e.block?.start,e.block?.end].filter(Boolean)).join("|")})\\s*${s})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}let A=(0,a.createContext)(null);function y({metadata:e,wordWrap:t,children:n}){let r=(0,a.useMemo)(()=>({metadata:e,wordWrap:t}),[e,t]);return(0,s.jsx)(A.Provider,{value:r,children:n})}function w(){let e=(0,a.useContext)(A);if(null===e)throw new p.dV("CodeBlockContextProvider");return e}function k({as:e,...t}){let n,a,r=(n={color:"--prism-color",backgroundColor:"--prism-background-color"},a={},Object.entries(u().plain).forEach(([e,t])=>{let s=n[e];s&&"string"==typeof t&&(a[s]=t)}),a);return(0,s.jsx)(e,{...t,style:r,className:(0,c.A)(t.className,"codeBlockContainer_Ckt0",m.G.common.codeBlock)})}let C="codeBlockLines_e6Vv";function _({children:e,className:t}){return(0,s.jsx)(k,{as:"pre",tabIndex:0,className:(0,c.A)("codeBlockStandalone_MEMb","thin-scrollbar",t),children:(0,s.jsx)("code",{className:C,children:e})})}let B={attributes:!0,characterData:!0,childList:!0,subtree:!0};function T({children:e}){return e}var L=n(1765);function E({line:e,token:t,...n}){return(0,s.jsx)("span",{...n})}function M(){return(0,s.jsx)("br",{})}function S({line:e,classNames:t,showLineNumbers:n,getLineProps:a,getTokenProps:r}){let i,l=(i=1===e.length&&"\n"===e[0].content?e[0]:void 0)?[{...i,content:""}]:e,o=a({line:l,className:(0,c.A)(t,n&&"codeLine_lJS_")}),d=l.map((e,t)=>{let n=r({token:e});return(0,s.jsx)(E,{...n,line:l,token:e,children:n.children},t)});return(0,s.jsxs)("div",{...o,children:[n?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"codeLineNumber_Tfdd"}),(0,s.jsx)("span",{className:"codeLineContent_feaV",children:d})]}):d,(0,s.jsx)(M,{})]})}let z=a.forwardRef((e,t)=>(0,s.jsx)("pre",{ref:t,tabIndex:0,...e,className:(0,c.A)(e.className,"codeBlock_bY9V","thin-scrollbar")}));function I(e){let{metadata:t}=w();return(0,s.jsx)("code",{...e,className:(0,c.A)(e.className,C,void 0!==t.lineNumbersStart&&"codeBlockLinesWithNumbering_o6Pm"),style:{...e.style,counterReset:void 0===t.lineNumbersStart?void 0:`line-count ${t.lineNumbersStart-1}`}})}function H({className:e}){let{metadata:t,wordWrap:n}=w(),a=u(),{code:r,language:i,lineNumbersStart:l,lineClassNames:o}=t;return(0,s.jsx)(L.f4,{theme:a,code:r,language:i,children:({className:t,style:a,tokens:r,getLineProps:i,getTokenProps:d})=>(0,s.jsx)(z,{ref:n.codeBlockRef,className:(0,c.A)(e,t),style:a,children:(0,s.jsx)(I,{children:r.map((e,t)=>(0,s.jsx)(S,{line:e,getLineProps:i,getTokenProps:d,classNames:o[t],showLineNumbers:void 0!==l},t))})})})}function V({children:e,fallback:t}){return(0,l.A)()?(0,s.jsx)(s.Fragment,{children:e?.()}):t??null}var R=n(568);function U({className:e,...t}){return(0,s.jsx)("button",{type:"button",...t,className:(0,c.A)("clean-btn",e)})}function $(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function q(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}let D={copyButtonCopied:"copyButtonCopied_Vdqa",copyButtonIcons:"copyButtonIcons_IEyt",copyButtonIcon:"copyButtonIcon_TrPX",copyButtonSuccessIcon:"copyButtonSuccessIcon_cVMy"};async function F(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);let{default:t}=await n.e("3693").then(n.bind(n,3436));return t(e)}function O({className:e}){let{copyCode:t,isCopied:n}=function(){let{metadata:{code:e}}=w(),[t,n]=(0,a.useState)(!1),s=(0,a.useRef)(void 0),r=(0,a.useCallback)(()=>{F(e).then(()=>{n(!0),s.current=window.setTimeout(()=>{n(!1)},1e3)})},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(s.current),[]),{copyCode:r,isCopied:t}}();return(0,s.jsx)(U,{"aria-label":n?(0,R.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,R.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,R.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.A)(e,D.copyButton,n&&D.copyButtonCopied),onClick:t,children:(0,s.jsxs)("span",{className:D.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)($,{className:D.copyButtonIcon}),(0,s.jsx)(q,{className:D.copyButtonSuccessIcon})]})})}function P(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}function W({className:e}){let{wordWrap:t}=w();if(!(t.isEnabled||t.isCodeScrollable))return!1;let n=(0,R.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)(U,{onClick:()=>t.toggle(),className:(0,c.A)(e,t.isEnabled&&"wordWrapButtonEnabled_uzNF"),"aria-label":n,title:n,children:(0,s.jsx)(P,{className:"wordWrapButtonIcon_b1P5","aria-hidden":"true"})})}function G({className:e}){return(0,s.jsx)(V,{children:()=>(0,s.jsxs)("div",{className:(0,c.A)(e,"buttonGroup_M5ko"),children:[(0,s.jsx)(W,{}),(0,s.jsx)(O,{})]})})}function J({className:e}){let{metadata:t}=w();return(0,s.jsxs)(k,{as:"div",className:(0,c.A)(e,t.className),children:[t.title&&(0,s.jsx)("div",{className:"codeBlockTitle_OeMC",children:(0,s.jsx)(T,{children:t.title})}),(0,s.jsxs)("div",{className:"codeBlockContent_QJqH",children:[(0,s.jsx)(H,{}),(0,s.jsx)(G,{})]})]})}function Z(e){let t=function(e){let{prism:t}=(0,d.p)();return function(e){var t,n,s,a,r;let i,l=(n=(t={language:e.language,defaultLanguage:e.defaultLanguage,className:e.className}).language??function(e){if(!e)return;let t=e.split(" ").find(e=>e.startsWith("language-"));return t?.replace(/language-/,"")}(t.className)??t.defaultLanguage,n?.toLowerCase()??"text"),{lineClassNames:o,code:d}=(s=e.code,a={metastring:e.metastring,magicComments:e.magicComments,language:l},function(e,{metastring:t,magicComments:n}){if(t&&j.test(t)){let s=t.match(j).groups.range;if(0===n.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${t}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let a=n[0].className;return{lineClassNames:Object.fromEntries(f()(s).filter(e=>e>0).map(e=>[e-1,[a]])),code:e}}return null}(i=s.replace(/\r?\n$/,""),{...a})??function(e,t){let{language:n,magicComments:s}=t;if(void 0===n)return{lineClassNames:{},code:e};let a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return N(["js","jsBlock"],t);case"jsx":case"tsx":return N(["js","jsBlock","jsx"],t);case"html":return N(["js","jsBlock","html"],t);case"python":case"py":case"bash":return N(["bash"],t);case"markdown":case"md":return N(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return N(["tex"],t);case"lua":case"haskell":return N(["lua"],t);case"sql":return N(["lua","jsBlock"],t);case"wasm":return N(["wasm"],t);case"vb":case"vba":case"visual-basic":return N(["vb","rem"],t);case"vbnet":return N(["vbnet","rem"],t);case"batch":return N(["rem"],t);case"basic":return N(["rem","f90"],t);case"fsharp":return N(["js","ml"],t);case"ocaml":case"sml":return N(["ml"],t);case"fortran":return N(["f90"],t);case"cobol":return N(["cobol"],t);default:return N(v,t)}}(n,s),r=e.split(/\r?\n/),i=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),l=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),c=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),o=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<r.length;){let t=r[e].match(a);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);l[n]?i[l[n]].range+=`${e},`:c[n]?i[c[n]].start=e:o[n]&&(i[o[n]].range+=`${i[o[n]].start}-${e-1},`),r.splice(e,1)}let d={};return Object.entries(i).forEach(([e,{range:t}])=>{f()(t).forEach(t=>{d[t]??=[],d[t].push(e)})}),{code:r.join("\n"),lineClassNames:d}}(i,{...a})),u=function({className:e,language:t}){return(0,c.A)(e,t&&!e?.includes(`language-${t}`)&&`language-${t}`)}({className:e.className,language:l}),m=(r=e.metastring,(r?.match(x)?.groups.title??"")||e.title),h=function({showLineNumbers:e,metastring:t}){if("boolean"==typeof e)return e?1:void 0;if("number"==typeof e)return e;let n=t?.split(" ").find(e=>e.startsWith("showLineNumbers"));if(n)return n.startsWith("showLineNumbers=")?parseInt(n.replace("showLineNumbers=",""),10):1}({showLineNumbers:e.showLineNumbers,metastring:e.metastring});return{codeInput:e.code,code:d,className:u,language:l,title:m,lineNumbersStart:h,lineClassNames:o}}({code:e.children,className:e.className,metastring:e.metastring,magicComments:t.magicComments,defaultLanguage:t.defaultLanguage,language:e.language,title:e.title,showLineNumbers:e.showLineNumbers})}(e),n=function(){let[e,t]=(0,a.useState)(!1),[n,s]=(0,a.useState)(!1),r=(0,a.useRef)(null),i=(0,a.useCallback)(()=>{let n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[r,e]),l=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=r.current;s(e>t||r.current.querySelector("code").hasAttribute("style"))},[r]);return!function(e,t){let[n,s]=(0,a.useState)(),r=(0,a.useCallback)(()=>{s(e.current?.closest("[role=tabpanel][hidden]"))},[e,s]);(0,a.useEffect)(()=>{r()},[r]),function(e,t,n=B){let s=(0,p._q)(t),r=(0,p.Be)(n);(0,a.useEffect)(()=>{let t=new MutationObserver(s);return e&&t.observe(e,r),()=>t.disconnect()},[e,s,r])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),r())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(r,l),(0,a.useEffect)(()=>{l()},[e,l]),(0,a.useEffect)(()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)}),[l]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:i}}();return(0,s.jsx)(y,{metadata:t,wordWrap:n,children:(0,s.jsx)(J,{})})}function X({children:e,...t}){let n=(0,l.A)(),r=a.Children.toArray(e).some(e=>(0,a.isValidElement)(e))?e:Array.isArray(e)?e.join(""):e;return(0,s.jsx)("string"==typeof r?Z:_,{...t,children:r},String(n))}function Q(e){return(0,s.jsx)("code",{...e})}var Y=n(5310),K=n(4727),ee=n(5916),et=n(9510);function en(e){return!!e&&("SUMMARY"===e.tagName||en(e.parentElement))}function es({summary:e,children:t,...n}){(0,ee.A)().collectAnchor(n.id);let r=(0,l.A)(),i=(0,a.useRef)(null),{collapsed:o,setCollapsed:d}=(0,et.u)({initialState:!n.open}),[u,m]=(0,a.useState)(n.open),h=a.isValidElement(e)?e:(0,s.jsx)("summary",{children:e??"Details"});return(0,s.jsxs)("details",{...n,ref:i,open:u,"data-collapsed":o,className:(0,c.A)("details_lb9f",r&&"isBrowser_bmU9",n.className),onMouseDown:e=>{en(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;en(t)&&function e(t,n){return!!t&&(t===n||e(t.parentElement,n))}(t,i.current)&&(e.preventDefault(),o?(d(!1),m(!0)):d(!0))},children:[h,(0,s.jsx)(et.N,{lazy:!1,collapsed:o,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,s.jsx)("div",{className:"collapsibleContent_i85q",children:t})})]})}function ea({...e}){return(0,s.jsx)(es,{...e,className:(0,c.A)("alert alert--info","details_b_Ee",e.className)})}function er(e){let t=a.Children.toArray(e.children),n=t.find(e=>a.isValidElement(e)&&"summary"===e.type),r=(0,s.jsx)(s.Fragment,{children:t.filter(e=>e!==n)});return(0,s.jsx)(ea,{...e,summary:n,children:r})}var ei=n(2072);function el(e){return(0,s.jsx)(ei.A,{...e})}var ec=n(7444),eo=n(1701),ed=n(3072);async function eu(){return(await n.e("1134").then(n.bind(n,2346))).default}let em=null;async function eh(){return em||(em=eu()),em}async function ef({id:e,text:t,config:n}){let s=await eh();s.initialize(n);try{return await s.render(e,t)}catch(t){throw document.querySelector(`#d${e}`)?.remove(),t}}function ep({renderResult:e}){let t=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let n=t.current;e.bindFunctions?.(n)},[e]),(0,s.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_lyt7",dangerouslySetInnerHTML:{__html:e.svg}})}function ex({value:e}){let t=function({text:e,config:t}){let[n,s]=(0,a.useState)(null),r=(0,a.useState)(`mermaid-svg-${Math.round(1e7*Math.random())}`)[0],i=function(){let{colorMode:e}=(0,o.G)(),t=(0,d.p)().mermaid,n=t.theme[e],{options:s}=t;return(0,a.useMemo)(()=>({startOnLoad:!1,...s,theme:n}),[n,s])}(),l=t??i;return(0,a.useEffect)(()=>{ef({id:r,text:e,config:l}).then(s).catch(e=>{s(()=>{throw e})})},[r,e,l]),n}({text:e});return null===t?null:(0,s.jsx)(ep,{renderResult:t})}let ej={Head:i.A,details:er,Details:er,code:function(e){return void 0!==e.children&&a.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,s.jsx)(Q,{...e}):(0,s.jsx)(X,{...e})},a:function(e){let t=(0,K.v)(e.id);return(0,s.jsx)(Y.A,{...e,className:(0,c.A)(t,e.className)})},pre:function(e){return(0,s.jsx)(s.Fragment,{children:e.children})},ul:function(e){return(0,s.jsx)("ul",{...e,className:function(e){if(void 0!==e)return(0,c.A)(e,e?.includes("contains-task-list")&&"containsTaskList_mC6p")}(e.className)})},li:function(e){(0,ee.A)().collectAnchor(e.id);let t=(0,K.v)(e.id);return(0,s.jsx)("li",{className:(0,c.A)(t,e.className),...e})},img:function(e){var t;return(0,s.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,c.A)(t,"img_ev3q"))})},h1:e=>(0,s.jsx)(el,{as:"h1",...e}),h2:e=>(0,s.jsx)(el,{as:"h2",...e}),h3:e=>(0,s.jsx)(el,{as:"h3",...e}),h4:e=>(0,s.jsx)(el,{as:"h4",...e}),h5:e=>(0,s.jsx)(el,{as:"h5",...e}),h6:e=>(0,s.jsx)(el,{as:"h6",...e}),admonition:ec.A,mermaid:function(e){return(0,s.jsx)(eo.A,{fallback:e=>(0,s.jsx)(ed.MN,{...e}),children:(0,s.jsx)(ex,{...e})})}};function eg({children:e}){return(0,s.jsx)(r.x,{components:ej,children:e})}},7174(e,t,n){"use strict";n.d(t,{A:()=>i});var s=n(4848);n(6540);var a=n(4164),r=n(5310);function i(e){let{permalink:t,title:n,subLabel:i,isNext:l}=e;return(0,s.jsxs)(r.A,{className:(0,a.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,s.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,s.jsx)("div",{className:"pagination-nav__label",children:n})]})}},535(e,t,n){"use strict";n.d(t,{A:()=>i});var s=n(4848);n(6540);var a=n(4164),r=n(5310);function i({permalink:e,label:t,count:n,description:l}){return(0,s.jsxs)(r.A,{rel:"tag",href:e,title:l,className:(0,a.A)("tag_zVej",n?"tagWithCount_h2kH":"tagRegular_sFm0"),children:[t,n&&(0,s.jsx)("span",{children:n})]})}},4999(e,t,n){"use strict";n.d(t,{A:()=>l});var s=n(4848);n(6540);var a=n(4164),r=n(568),i=n(535);function l({tags:e}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("b",{children:(0,s.jsx)(r.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,s.jsx)("ul",{className:(0,a.A)("tags_jXut","padding--none","margin-left--sm"),children:e.map(e=>(0,s.jsx)("li",{className:"tag_QGVx",children:(0,s.jsx)(i.A,{...e})},e.permalink))})]})}},7954(e,t,n){"use strict";n.d(t,{i:()=>a});var s=n(898);function a(e={}){let{i18n:{currentLocale:t}}=(0,s.A)(),n=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}}}]); \ No newline at end of file +(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1016"],{8426(e,t){function n(e){let t,n=[];for(let s of e.split(",").map(e=>e.trim()))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,r]=t;if(s&&r){let e=(s=parseInt(s))<(r=parseInt(r))?1:-1;("-"===a||".."===a||"\u2025"===a)&&(r+=e);for(let t=s;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},7444(e,t,n){"use strict";n.d(t,{A:()=>y});var s=n(4848),a=n(6540),r=n(4164),i=n(568),l=n(8287);function c({type:e,className:t,children:n,id:a}){return(0,s.jsx)("div",{className:(0,r.A)(l.G.common.admonition,l.G.common.admonitionType(e),"admonition_xJq3",t),id:a,children:n})}function o({icon:e,title:t}){return(0,s.jsxs)("div",{className:"admonitionHeading_Gvgb",children:[(0,s.jsx)("span",{className:"admonitionIcon_Rf37",children:e}),t]})}function d({children:e}){return e?(0,s.jsx)("div",{className:"admonitionContent_BuS1",children:e}):null}function u(e){let{type:t,icon:n,title:a,children:r,className:i,id:l}=e;return(0,s.jsxs)(c,{type:t,className:i,id:l,children:[a||n?(0,s.jsx)(o,{title:a,icon:n}):null,(0,s.jsx)(d,{children:r})]})}let m={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})},{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function h(e){return(0,s.jsx)(u,{...m,...e,className:(0,r.A)("alert alert--secondary",e.className),children:e.children})}let f={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})},{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function p(e){return(0,s.jsx)(u,{...f,...e,className:(0,r.A)("alert alert--success",e.className),children:e.children})}let x={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})},{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function j(e){return(0,s.jsx)(u,{...x,...e,className:(0,r.A)("alert alert--info",e.className),children:e.children})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}let b={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},v={icon:(0,s.jsx)(function(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})},{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},N={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(i.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})},A={note:h,tip:p,info:j,warning:function(e){return(0,s.jsx)(u,{...b,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(u,{...v,...e,className:(0,r.A)("alert alert--danger",e.className),children:e.children})},secondary:e=>(0,s.jsx)(h,{title:"secondary",...e}),important:e=>(0,s.jsx)(j,{title:"important",...e}),success:e=>(0,s.jsx)(p,{title:"success",...e}),caution:function(e){return(0,s.jsx)(u,{...N,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})}};function y(e){var t;let n,r=function(e){var t;let n,r,i,{mdxAdmonitionTitle:l,rest:c}=(t=e.children,r=(n=a.Children.toArray(t)).find(e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),i=n.filter(e=>e!==r),{mdxAdmonitionTitle:r?.props.children,rest:i.length>0?(0,s.jsx)(s.Fragment,{children:i}):null}),o=e.title??l;return{...e,...o&&{title:o},children:c}}(e),i=(n=A[t=r.type])||(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),A.info);return(0,s.jsx)(i,{...r})}},7410(e,t,n){"use strict";n.d(t,{A:()=>f});var s=n(4848);n(6540);var a=n(4164),r=n(568),i=n(8287),l=n(5310);function c({className:e,...t}){return(0,s.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,a.A)("iconEdit_Z9Sw",e),"aria-hidden":"true",...t,children:(0,s.jsx)("g",{children:(0,s.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function o({editUrl:e}){return(0,s.jsxs)(l.A,{to:e,className:i.G.common.editThisPage,children:[(0,s.jsx)(c,{}),(0,s.jsx)(r.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var d=n(7954);function u({lastUpdatedAt:e}){let t=new Date(e),n=(0,d.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,s.jsx)(r.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,s.jsx)("b",{children:(0,s.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:n})})},children:" on {date}"})}function m({lastUpdatedBy:e}){return(0,s.jsx)(r.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,s.jsx)("b",{children:e})},children:" by {user}"})}function h({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,s.jsxs)("span",{className:i.G.common.lastUpdated,children:[(0,s.jsx)(r.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,s.jsx)(u,{lastUpdatedAt:e}):"",byUser:t?(0,s.jsx)(m,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}function f({className:e,editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r}){return(0,s.jsxs)("div",{className:(0,a.A)("row",e),children:[(0,s.jsx)("div",{className:(0,a.A)("col","noPrint_WFHX"),children:t&&(0,s.jsx)(o,{editUrl:t})}),(0,s.jsx)("div",{className:(0,a.A)("col","lastUpdated_JAkA"),children:(n||r)&&(0,s.jsx)(h,{lastUpdatedAt:n,lastUpdatedBy:r})})]})}},4743(e,t,n){"use strict";n.d(t,{A:()=>eg});var s=n(4848),a=n(6540),r=n(8453),i=n(3572),l=n(9863),c=n(4164),o=n(3941),d=n(1022);function u(){let{prism:e}=(0,d.p)(),{colorMode:t}=(0,o.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var m=n(8287),h=n(8426),f=n.n(h),p=n(2260);let x=/title=(?<quote>["'])(?<title>.*?)\1/,j=/\{(?<range>[\d,-]+)\}/,g={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},b={...g,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},v=Object.keys(g);function N(e,t){let n=e.map(e=>{let{start:n,end:s}=b[e];return`(?:${n}\\s*(${t.flatMap(e=>[e.line,e.block?.start,e.block?.end].filter(Boolean)).join("|")})\\s*${s})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}let A=(0,a.createContext)(null);function y({metadata:e,wordWrap:t,children:n}){let r=(0,a.useMemo)(()=>({metadata:e,wordWrap:t}),[e,t]);return(0,s.jsx)(A.Provider,{value:r,children:n})}function w(){let e=(0,a.useContext)(A);if(null===e)throw new p.dV("CodeBlockContextProvider");return e}function k({as:e,...t}){let n,a,r=(n={color:"--prism-color",backgroundColor:"--prism-background-color"},a={},Object.entries(u().plain).forEach(([e,t])=>{let s=n[e];s&&"string"==typeof t&&(a[s]=t)}),a);return(0,s.jsx)(e,{...t,style:r,className:(0,c.A)(t.className,"codeBlockContainer_Ckt0",m.G.common.codeBlock)})}let C="codeBlockLines_e6Vv";function _({children:e,className:t}){return(0,s.jsx)(k,{as:"pre",tabIndex:0,className:(0,c.A)("codeBlockStandalone_MEMb","thin-scrollbar",t),children:(0,s.jsx)("code",{className:C,children:e})})}let B={attributes:!0,characterData:!0,childList:!0,subtree:!0};function T({children:e}){return e}var L=n(1765);function E({line:e,token:t,...n}){return(0,s.jsx)("span",{...n})}function M(){return(0,s.jsx)("br",{})}function S({line:e,classNames:t,showLineNumbers:n,getLineProps:a,getTokenProps:r}){let i,l=(i=1===e.length&&"\n"===e[0].content?e[0]:void 0)?[{...i,content:""}]:e,o=a({line:l,className:(0,c.A)(t,n&&"codeLine_lJS_")}),d=l.map((e,t)=>{let n=r({token:e});return(0,s.jsx)(E,{...n,line:l,token:e,children:n.children},t)});return(0,s.jsxs)("div",{...o,children:[n?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"codeLineNumber_Tfdd"}),(0,s.jsx)("span",{className:"codeLineContent_feaV",children:d})]}):d,(0,s.jsx)(M,{})]})}let z=a.forwardRef((e,t)=>(0,s.jsx)("pre",{ref:t,tabIndex:0,...e,className:(0,c.A)(e.className,"codeBlock_bY9V","thin-scrollbar")}));function I(e){let{metadata:t}=w();return(0,s.jsx)("code",{...e,className:(0,c.A)(e.className,C,void 0!==t.lineNumbersStart&&"codeBlockLinesWithNumbering_o6Pm"),style:{...e.style,counterReset:void 0===t.lineNumbersStart?void 0:`line-count ${t.lineNumbersStart-1}`}})}function H({className:e}){let{metadata:t,wordWrap:n}=w(),a=u(),{code:r,language:i,lineNumbersStart:l,lineClassNames:o}=t;return(0,s.jsx)(L.f4,{theme:a,code:r,language:i,children:({className:t,style:a,tokens:r,getLineProps:i,getTokenProps:d})=>(0,s.jsx)(z,{ref:n.codeBlockRef,className:(0,c.A)(e,t),style:a,children:(0,s.jsx)(I,{children:r.map((e,t)=>(0,s.jsx)(S,{line:e,getLineProps:i,getTokenProps:d,classNames:o[t],showLineNumbers:void 0!==l},t))})})})}function V({children:e,fallback:t}){return(0,l.A)()?(0,s.jsx)(s.Fragment,{children:e?.()}):t??null}var R=n(568);function U({className:e,...t}){return(0,s.jsx)("button",{type:"button",...t,className:(0,c.A)("clean-btn",e)})}function $(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function q(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}let D={copyButtonCopied:"copyButtonCopied_Vdqa",copyButtonIcons:"copyButtonIcons_IEyt",copyButtonIcon:"copyButtonIcon_TrPX",copyButtonSuccessIcon:"copyButtonSuccessIcon_cVMy"};async function P(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);let{default:t}=await n.e("3693").then(n.bind(n,3436));return t(e)}function F({className:e}){let{copyCode:t,isCopied:n}=function(){let{metadata:{code:e}}=w(),[t,n]=(0,a.useState)(!1),s=(0,a.useRef)(void 0),r=(0,a.useCallback)(()=>{P(e).then(()=>{n(!0),s.current=window.setTimeout(()=>{n(!1)},1e3)})},[e]);return(0,a.useEffect)(()=>()=>window.clearTimeout(s.current),[]),{copyCode:r,isCopied:t}}();return(0,s.jsx)(U,{"aria-label":n?(0,R.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,R.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,R.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.A)(e,D.copyButton,n&&D.copyButtonCopied),onClick:t,children:(0,s.jsxs)("span",{className:D.copyButtonIcons,"aria-hidden":"true",children:[(0,s.jsx)($,{className:D.copyButtonIcon}),(0,s.jsx)(q,{className:D.copyButtonSuccessIcon})]})})}function O(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}function W({className:e}){let{wordWrap:t}=w();if(!(t.isEnabled||t.isCodeScrollable))return!1;let n=(0,R.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,s.jsx)(U,{onClick:()=>t.toggle(),className:(0,c.A)(e,t.isEnabled&&"wordWrapButtonEnabled_uzNF"),"aria-label":n,title:n,children:(0,s.jsx)(O,{className:"wordWrapButtonIcon_b1P5","aria-hidden":"true"})})}function G({className:e}){return(0,s.jsx)(V,{children:()=>(0,s.jsxs)("div",{className:(0,c.A)(e,"buttonGroup_M5ko"),children:[(0,s.jsx)(W,{}),(0,s.jsx)(F,{})]})})}function J({className:e}){let{metadata:t}=w();return(0,s.jsxs)(k,{as:"div",className:(0,c.A)(e,t.className),children:[t.title&&(0,s.jsx)("div",{className:"codeBlockTitle_OeMC",children:(0,s.jsx)(T,{children:t.title})}),(0,s.jsxs)("div",{className:"codeBlockContent_QJqH",children:[(0,s.jsx)(H,{}),(0,s.jsx)(G,{})]})]})}function Z(e){let t=function(e){let{prism:t}=(0,d.p)();return function(e){var t,n,s,a,r;let i,l=(n=(t={language:e.language,defaultLanguage:e.defaultLanguage,className:e.className}).language??function(e){if(!e)return;let t=e.split(" ").find(e=>e.startsWith("language-"));return t?.replace(/language-/,"")}(t.className)??t.defaultLanguage,n?.toLowerCase()??"text"),{lineClassNames:o,code:d}=(s=e.code,a={metastring:e.metastring,magicComments:e.magicComments,language:l},function(e,{metastring:t,magicComments:n}){if(t&&j.test(t)){let s=t.match(j).groups.range;if(0===n.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${t}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let a=n[0].className;return{lineClassNames:Object.fromEntries(f()(s).filter(e=>e>0).map(e=>[e-1,[a]])),code:e}}return null}(i=s.replace(/\r?\n$/,""),{...a})??function(e,t){let{language:n,magicComments:s}=t;if(void 0===n)return{lineClassNames:{},code:e};let a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return N(["js","jsBlock"],t);case"jsx":case"tsx":return N(["js","jsBlock","jsx"],t);case"html":return N(["js","jsBlock","html"],t);case"python":case"py":case"bash":return N(["bash"],t);case"markdown":case"md":return N(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return N(["tex"],t);case"lua":case"haskell":return N(["lua"],t);case"sql":return N(["lua","jsBlock"],t);case"wasm":return N(["wasm"],t);case"vb":case"vba":case"visual-basic":return N(["vb","rem"],t);case"vbnet":return N(["vbnet","rem"],t);case"batch":return N(["rem"],t);case"basic":return N(["rem","f90"],t);case"fsharp":return N(["js","ml"],t);case"ocaml":case"sml":return N(["ml"],t);case"fortran":return N(["f90"],t);case"cobol":return N(["cobol"],t);default:return N(v,t)}}(n,s),r=e.split(/\r?\n/),i=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),l=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:t})=>[t,e])),c=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.start,e])),o=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:t})=>[t.end,e]));for(let e=0;e<r.length;){let t=r[e].match(a);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);l[n]?i[l[n]].range+=`${e},`:c[n]?i[c[n]].start=e:o[n]&&(i[o[n]].range+=`${i[o[n]].start}-${e-1},`),r.splice(e,1)}let d={};return Object.entries(i).forEach(([e,{range:t}])=>{f()(t).forEach(t=>{d[t]??=[],d[t].push(e)})}),{code:r.join("\n"),lineClassNames:d}}(i,{...a})),u=function({className:e,language:t}){return(0,c.A)(e,t&&!e?.includes(`language-${t}`)&&`language-${t}`)}({className:e.className,language:l}),m=(r=e.metastring,(r?.match(x)?.groups.title??"")||e.title),h=function({showLineNumbers:e,metastring:t}){if("boolean"==typeof e)return e?1:void 0;if("number"==typeof e)return e;let n=t?.split(" ").find(e=>e.startsWith("showLineNumbers"));if(n)return n.startsWith("showLineNumbers=")?parseInt(n.replace("showLineNumbers=",""),10):1}({showLineNumbers:e.showLineNumbers,metastring:e.metastring});return{codeInput:e.code,code:d,className:u,language:l,title:m,lineNumbersStart:h,lineClassNames:o}}({code:e.children,className:e.className,metastring:e.metastring,magicComments:t.magicComments,defaultLanguage:t.defaultLanguage,language:e.language,title:e.title,showLineNumbers:e.showLineNumbers})}(e),n=function(){let[e,t]=(0,a.useState)(!1),[n,s]=(0,a.useState)(!1),r=(0,a.useRef)(null),i=(0,a.useCallback)(()=>{let n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[r,e]),l=(0,a.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=r.current;s(e>t||r.current.querySelector("code").hasAttribute("style"))},[r]);return!function(e,t){let[n,s]=(0,a.useState)(),r=(0,a.useCallback)(()=>{s(e.current?.closest("[role=tabpanel][hidden]"))},[e,s]);(0,a.useEffect)(()=>{r()},[r]),function(e,t,n=B){let s=(0,p._q)(t),r=(0,p.Be)(n);(0,a.useEffect)(()=>{let t=new MutationObserver(s);return e&&t.observe(e,r),()=>t.disconnect()},[e,s,r])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),r())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(r,l),(0,a.useEffect)(()=>{l()},[e,l]),(0,a.useEffect)(()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)}),[l]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:i}}();return(0,s.jsx)(y,{metadata:t,wordWrap:n,children:(0,s.jsx)(J,{})})}function X({children:e,...t}){let n=(0,l.A)(),r=a.Children.toArray(e).some(e=>(0,a.isValidElement)(e))?e:Array.isArray(e)?e.join(""):e;return(0,s.jsx)("string"==typeof r?Z:_,{...t,children:r},String(n))}function Q(e){return(0,s.jsx)("code",{...e})}var Y=n(5310),K=n(4727),ee=n(5916),et=n(9510);function en(e){return!!e&&("SUMMARY"===e.tagName||en(e.parentElement))}function es({summary:e,children:t,...n}){(0,ee.A)().collectAnchor(n.id);let r=(0,l.A)(),i=(0,a.useRef)(null),{collapsed:o,setCollapsed:d}=(0,et.u)({initialState:!n.open}),[u,m]=(0,a.useState)(n.open),h=a.isValidElement(e)?e:(0,s.jsx)("summary",{children:e??"Details"});return(0,s.jsxs)("details",{...n,ref:i,open:u,"data-collapsed":o,className:(0,c.A)("details_lb9f",r&&"isBrowser_bmU9",n.className),onMouseDown:e=>{en(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();let t=e.target;en(t)&&function e(t,n){return!!t&&(t===n||e(t.parentElement,n))}(t,i.current)&&(e.preventDefault(),o?(d(!1),m(!0)):d(!0))},children:[h,(0,s.jsx)(et.N,{lazy:!1,collapsed:o,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,s.jsx)("div",{className:"collapsibleContent_i85q",children:t})})]})}function ea({...e}){return(0,s.jsx)(es,{...e,className:(0,c.A)("alert alert--info","details_b_Ee",e.className)})}function er(e){let t=a.Children.toArray(e.children),n=t.find(e=>a.isValidElement(e)&&"summary"===e.type),r=(0,s.jsx)(s.Fragment,{children:t.filter(e=>e!==n)});return(0,s.jsx)(ea,{...e,summary:n,children:r})}var ei=n(2072);function el(e){return(0,s.jsx)(ei.A,{...e})}var ec=n(7444),eo=n(1701),ed=n(3072);async function eu(){return(await n.e("1134").then(n.bind(n,2346))).default}let em=null;async function eh(){return em||(em=eu()),em}async function ef({id:e,text:t,config:n}){let s=await eh();s.initialize(n);try{return await s.render(e,t)}catch(t){throw document.querySelector(`#d${e}`)?.remove(),t}}function ep({renderResult:e}){let t=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let n=t.current;e.bindFunctions?.(n)},[e]),(0,s.jsx)("div",{ref:t,className:"docusaurus-mermaid-container container_lyt7",dangerouslySetInnerHTML:{__html:e.svg}})}function ex({value:e}){let t=function({text:e,config:t}){let[n,s]=(0,a.useState)(null),r=(0,a.useState)(`mermaid-svg-${Math.round(1e7*Math.random())}`)[0],i=function(){let{colorMode:e}=(0,o.G)(),t=(0,d.p)().mermaid,n=t.theme[e],{options:s}=t;return(0,a.useMemo)(()=>({startOnLoad:!1,...s,theme:n}),[n,s])}(),l=t??i;return(0,a.useEffect)(()=>{ef({id:r,text:e,config:l}).then(s).catch(e=>{s(()=>{throw e})})},[r,e,l]),n}({text:e});return null===t?null:(0,s.jsx)(ep,{renderResult:t})}let ej={Head:i.A,details:er,Details:er,code:function(e){return void 0!==e.children&&a.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))?(0,s.jsx)(Q,{...e}):(0,s.jsx)(X,{...e})},a:function(e){let t=(0,K.v)(e.id);return(0,s.jsx)(Y.A,{...e,className:(0,c.A)(t,e.className)})},pre:function(e){return(0,s.jsx)(s.Fragment,{children:e.children})},ul:function(e){return(0,s.jsx)("ul",{...e,className:function(e){if(void 0!==e)return(0,c.A)(e,e?.includes("contains-task-list")&&"containsTaskList_mC6p")}(e.className)})},li:function(e){(0,ee.A)().collectAnchor(e.id);let t=(0,K.v)(e.id);return(0,s.jsx)("li",{className:(0,c.A)(t,e.className),...e})},img:function(e){var t;return(0,s.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,c.A)(t,"img_ev3q"))})},h1:e=>(0,s.jsx)(el,{as:"h1",...e}),h2:e=>(0,s.jsx)(el,{as:"h2",...e}),h3:e=>(0,s.jsx)(el,{as:"h3",...e}),h4:e=>(0,s.jsx)(el,{as:"h4",...e}),h5:e=>(0,s.jsx)(el,{as:"h5",...e}),h6:e=>(0,s.jsx)(el,{as:"h6",...e}),admonition:ec.A,mermaid:function(e){return(0,s.jsx)(eo.A,{fallback:e=>(0,s.jsx)(ed.MN,{...e}),children:(0,s.jsx)(ex,{...e})})}};function eg({children:e}){return(0,s.jsx)(r.x,{components:ej,children:e})}},7174(e,t,n){"use strict";n.d(t,{A:()=>i});var s=n(4848);n(6540);var a=n(4164),r=n(5310);function i(e){let{permalink:t,title:n,subLabel:i,isNext:l}=e;return(0,s.jsxs)(r.A,{className:(0,a.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,s.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,s.jsx)("div",{className:"pagination-nav__label",children:n})]})}},535(e,t,n){"use strict";n.d(t,{A:()=>i});var s=n(4848);n(6540);var a=n(4164),r=n(5310);function i({permalink:e,label:t,count:n,description:l}){return(0,s.jsxs)(r.A,{rel:"tag",href:e,title:l,className:(0,a.A)("tag_zVej",n?"tagWithCount_h2kH":"tagRegular_sFm0"),children:[t,n&&(0,s.jsx)("span",{children:n})]})}},4999(e,t,n){"use strict";n.d(t,{A:()=>l});var s=n(4848);n(6540);var a=n(4164),r=n(568),i=n(535);function l({tags:e}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("b",{children:(0,s.jsx)(r.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,s.jsx)("ul",{className:(0,a.A)("tags_jXut","padding--none","margin-left--sm"),children:e.map(e=>(0,s.jsx)("li",{className:"tag_QGVx",children:(0,s.jsx)(i.A,{...e})},e.permalink))})]})}},7954(e,t,n){"use strict";n.d(t,{i:()=>a});var s=n(898);function a(e={}){let{i18n:{currentLocale:t}}=(0,s.A)(),n=function(){let{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}},8453(e,t,n){"use strict";n.d(t,{R:()=>i,x:()=>l});var s=n(6540);let a={},r=s.createContext(a);function i(e){let t=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1078a278.2d55bc20.js b/en/assets/js/1078a278.2d55bc20.js new file mode 100644 index 0000000..b940d7c --- /dev/null +++ b/en/assets/js/1078a278.2d55bc20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3674"],{3445(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/en/docs/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/table-lineage.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar_label":"Table Lineage","sidebar_position":2},"sidebar":"docs","previous":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/core/field-lineage"},"next":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/core/table-parse"}}'),s=n(4848),a=n(8453);let l={title:"Table Lineage",description:"Parse source-to-target table lineage from SQL",sidebar_label:"Table Lineage",sidebar_position:2},i="Table Lineage",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"table-lineage",children:"Table Lineage"})}),"\n",(0,s.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(r.p,{children:["Using the official ",(0,s.jsx)(r.code,{children:"sqlparserx-core/README.md"})," sample SQL, from parser creation to printing table lineage:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse table lineage\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3. Read the result\n System.out.println("target table: " + result.getTargetTable());\n System.out.println("source tables: " + result.getSourceTables());\n\n List<TableLineage> tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,s.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"target table: user_order_summary\nsource tables: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,s.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(r.p,{children:["Parse ",(0,s.jsx)(r.strong,{children:"target table \u2192 source table"})," table-level lineage from SQL, covering JOIN, UNION, subqueries, aggregates and CTEs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 collect source tables + target tables\n \u2192 TableLineageResult\n"})}),"\n",(0,s.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Item"}),(0,s.jsx)(r.th,{children:"Content"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Core entry"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Default impl"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,s.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Return type"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"TableLineageResult"})," (",(0,s.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,s.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,s.jsx)(r.code,{children:"getTableLineages()"}),")"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Coverage"}),(0,s.jsx)(r.td,{children:"JOIN, UNION, subquery, aggregate, CTE"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Capability"}),(0,s.jsx)(r.th,{children:"Status"}),(0,s.jsx)(r.th,{children:"Notes"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Single/multi-table JOIN"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"All participating tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Merge branches"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Subquery / derived table"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recursively collect real tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"CTE (WITH)"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recognize CTE and real sources"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Output target and source tables"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>l,x:()=>i});var t=n(6540);let s={},a=t.createContext(s);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1078a278.964015e8.js b/en/assets/js/1078a278.964015e8.js deleted file mode 100644 index f4ea598..0000000 --- a/en/assets/js/1078a278.964015e8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3674"],{3445(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var s=JSON.parse('{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/en/docs/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/table-lineage.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar_label":"Table Lineage","sidebar_position":2},"sidebar":"docs","previous":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/core/field-lineage"},"next":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/core/table-parse"}}'),t=n(4848),a=n(8453);let l={title:"Table Lineage",description:"Parse source-to-target table lineage from SQL",sidebar_label:"Table Lineage",sidebar_position:2},i="Table Lineage",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"table-lineage",children:"Table Lineage"})}),"\n",(0,t.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,t.jsxs)(r.p,{children:["Using the official ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," sample SQL, from parser creation to printing table lineage:"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse table lineage\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3. Read the result\n System.out.println("target table: " + result.getTargetTable());\n System.out.println("source tables: " + result.getSourceTables());\n\n List<TableLineage> tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"target table: user_order_summary\nsource tables: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,t.jsxs)(r.p,{children:["Parse ",(0,t.jsx)(r.strong,{children:"target table \u2192 source table"})," table-level lineage from SQL, covering JOIN, UNION, subqueries, aggregates and CTEs."]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 collect source tables + target tables\n \u2192 TableLineageResult\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Item"}),(0,t.jsx)(r.th,{children:"Content"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core entry"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Default impl"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,t.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Return type"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"TableLineageResult"})," (",(0,t.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,t.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,t.jsx)(r.code,{children:"getTableLineages()"}),")"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Coverage"}),(0,t.jsx)(r.td,{children:"JOIN, UNION, subquery, aggregate, CTE"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Capability"}),(0,t.jsx)(r.th,{children:"Status"}),(0,t.jsx)(r.th,{children:"Notes"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Single/multi-table JOIN"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"All participating tables"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"Merge branches"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Subquery / derived table"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"Recursively collect real tables"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CTE (WITH)"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"Recognize CTE and real sources"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"Output target and source tables"})]})]})]})]})}function h(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/1134.56885915.js b/en/assets/js/1134.87475e33.js similarity index 99% rename from en/assets/js/1134.56885915.js rename to en/assets/js/1134.87475e33.js index 63c72fb..cbfbadf 100644 --- a/en/assets/js/1134.56885915.js +++ b/en/assets/js/1134.87475e33.js @@ -250,7 +250,7 @@ ${o.join("\n")}`)}}),globalThis.injected??={includeLargeFeatures:!0,profiling:!1 L20,10 M20,10 L0,20`).attr("stroke-linejoin","miter")},"requirement_arrow_neo"),td=(0,c.K)((t,e,r)=>{let i=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");i.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),i.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),i.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),tu=(0,c.K)((t,e,r)=>{let{themeVariables:i}=(0,l.zj)(),{strokeWidth:o}=i,a=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("g");a.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),a.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),a.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),a.selectAll("*").attr("stroke-width",`${o}`)},"requirement_contains_neo"),tp={extension:H,composition:U,aggregation:Y,dependency:G,lollipop:X,point:Z,circle:V,cross:Q,barb:J,barbNeo:tt,hierarchy:(0,c.K)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-hierarchyEnd").attr("class","marker hierarchy "+e).attr("viewBox","0 0 12 10").attr("refX",10).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",10).attr("orient","auto").append("path").attr("d","M 0 0 L 6 5 L 0 10 M 4 0 L 10 5 L 4 10").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0").style("fill","none"),t.append("marker").attr("id",r+"_"+e+"-hierarchyStart").attr("class","marker hierarchy "+e).attr("viewBox","0 0 12 10").attr("refX",2).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",10).attr("orient","auto").append("path").attr("d","M 12 0 L 6 5 L 12 10 M 8 0 L 2 5 L 8 10").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0").style("fill","none")},"hierarchy"),only_one:te,zero_or_one:tr,one_or_more:ti,zero_or_more:to,only_one_neo:ta,zero_or_one_neo:tn,one_or_more_neo:ts,zero_or_more_neo:tl,requirement_arrow:th,requirement_contains:td,requirement_arrow_neo:tc,requirement_contains_neo:tu},tg=j},6348(t,e,r){"use strict";r.d(e,{yT:()=>U,PX:()=>J,vU:()=>L,rY:()=>th,pe:()=>S,KL:()=>tc,Ib:()=>$,I5:()=>to,bH:()=>X,$C:()=>j,$t:()=>ta,ru:()=>V,dq:()=>tr,Sm:()=>tl,C4:()=>ts,sM:()=>W,_K:()=>tn,Un:()=>Q});var i,o=r(1177),a=r(1293),n=r(6827),s=r(6750),l=r(7829);function h(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw TypeError("Expected a function");let r=function(...i){let o=e?e.apply(this,i):i[0],a=r.cache;if(a.has(o))return a.get(o);let n=t.apply(this,i);return r.cache=a.set(o,n)||a,n};return r.cache=new(h.Cache||Map),r}function c(){}h.Cache=Map;var d=r(7110),u=r(2796);function p(t){return Object.getOwnPropertySymbols(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e))}var g=r(1069);function f(t){if("object"!=typeof t||null==t)return!1;if(null===Object.getPrototypeOf(t))return!0;if("[object Object]"!==Object.prototype.toString.call(t)){let e=t[Symbol.toStringTag];return null!=e&&!!Object.getOwnPropertyDescriptor(t,Symbol.toStringTag)?.writable&&t.toString()===`[object ${e}]`}let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}var y=r(9125),m=r(9826);function x(t,e,r,i=new Map,o){let a=o?.(t,e,r,i);if(void 0!==a)return a;if((0,d.s)(t))return t;if(i.has(t))return i.get(t);if(Array.isArray(t)){let e=Array(t.length);i.set(t,e);for(let a=0;a<t.length;a++)e[a]=x(t[a],a,r,i,o);return Object.hasOwn(t,"index")&&(e.index=t.index),Object.hasOwn(t,"input")&&(e.input=t.input),e}if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp){let e=new RegExp(t.source,t.flags);return e.lastIndex=t.lastIndex,e}if(t instanceof Map){let e=new Map;for(let[a,n]of(i.set(t,e),t))e.set(a,x(n,a,r,i,o));return e}if(t instanceof Set){let e=new Set;for(let a of(i.set(t,e),t))e.add(x(a,void 0,r,i,o));return e}if((0,g.P)(t))return t.subarray();if((0,u.i)(t)){let e=new(Object.getPrototypeOf(t)).constructor(t.length);i.set(t,e);for(let a=0;a<t.length;a++)e[a]=x(t[a],a,r,i,o);return e}if(t instanceof ArrayBuffer||"u">typeof SharedArrayBuffer&&t instanceof SharedArrayBuffer)return t.slice(0);if(t instanceof DataView){let e=new DataView(t.buffer.slice(0),t.byteOffset,t.byteLength);return i.set(t,e),C(e,t,r,i,o),e}if("u">typeof File&&t instanceof File){let e=new File([t],t.name,{type:t.type});return i.set(t,e),C(e,t,r,i,o),e}if("u">typeof Blob&&t instanceof Blob){let e=new Blob([t],{type:t.type});return i.set(t,e),C(e,t,r,i,o),e}if(t instanceof Error){let e=structuredClone(t);return i.set(t,e),e.message=t.message,e.name=t.name,e.stack=t.stack,e.cause=t.cause,e.constructor=t.constructor,C(e,t,r,i,o),e}if(t instanceof Boolean){let e=new Boolean(t.valueOf());return i.set(t,e),C(e,t,r,i,o),e}if(t instanceof Number){let e=new Number(t.valueOf());return i.set(t,e),C(e,t,r,i,o),e}if(t instanceof String){let e=new String(t.valueOf());return i.set(t,e),C(e,t,r,i,o),e}if("object"==typeof t&&function(t){switch((0,y.b)(t)){case m.R_:case m.Uw:case m.cT:case m.iq:case m.$V:case m.vC:case m.ri:case m.ML:case m.XZ:case m.i1:case m._u:case m.pj:case m.kj:case m.GX:case m.Av:case m.NA:case m.OG:case m.VP:case m.Qb:case m.q:case m.x6:case m.ZR:return!0;default:return!1}}(t)){let e=Object.create(Object.getPrototypeOf(t));return i.set(t,e),C(e,t,r,i,o),e}return t}function C(t,e,r=t,i,o){let a=[...Object.keys(e),...p(e)];for(let n=0;n<a.length;n++){let s=a[n],l=Object.getOwnPropertyDescriptor(t,s);(null==l||l.writable)&&(t[s]=x(e[s],s,r,i,o))}}function b(t){var e;return e=(e,r,i,o)=>{let a;if(void 0!==a)return a;if("object"==typeof t){if("[object Object]"===(0,y.b)(t)&&"function"!=typeof t.constructor){let e={};return o.set(t,e),C(e,t,i,o),e}switch(Object.prototype.toString.call(t)){case m.kj:case m.OG:case m.$V:{let e=new t.constructor(t?.valueOf());return C(e,t),e}case m.R_:{let e={};return C(e,t),e.length=t.length,e[Symbol.iterator]=t[Symbol.iterator],e}default:return}}},x(t,void 0,t,new Map,e)}var k=r(4608);function w(t){return"object"==typeof t&&null!==t}var T=r(9480),B=r(9663),S="\u200B",v={curveBasis:l.qrM,curveBasisClosed:l.Yu4,curveBasisOpen:l.IA3,curveBumpX:l.Wi0,curveBumpY:l.PGM,curveBundle:l.OEq,curveCardinalClosed:l.olC,curveCardinalOpen:l.IrU,curveCardinal:l.y8u,curveCatmullRomClosed:l.Q7f,curveCatmullRomOpen:l.cVp,curveCatmullRom:l.oDi,curveLinear:l.lUB,curveLinearClosed:l.Lx9,curveMonotoneX:l.nVG,curveMonotoneY:l.uxU,curveNatural:l.Xf2,curveStep:l.GZz,curveStepAfter:l.UPb,curveStepBefore:l.dyv},_=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,F=(0,n.K)(function(t,e){let r=A(t,/(?:init\b)|(?:initialize\b)/),i={};if(Array.isArray(r)){let t=r.map(t=>t.args);(0,o.$i)(t),i=(0,o.hH)(i,[...t])}else i=r.args;if(!i)return;let a=(0,o.Ch)(t,e),n="config";return void 0!==i[n]&&("flowchart-v2"===a&&(a="flowchart"),i[a]=i[n],delete i[n]),i},"detectInit"),A=(0,n.K)(function(t,e=null){try{let r,i=RegExp(`[%]{2}(?![{]${_.source})(?=[}][%]{2}).* -`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),a.R.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);let n=[];for(;null!==(r=o.DB.exec(t));)if(r.index===o.DB.lastIndex&&o.DB.lastIndex++,r&&!e||e&&r[1]?.match(e)||e&&r[2]?.match(e)){let t=r[1]?r[1]:r[2],e=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:t,args:e})}if(0===n.length)return{type:t,args:null};return 1===n.length?n[0]:n}catch(r){return a.R.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),L=(0,n.K)(function(t){return t.replace(o.DB,"")},"removeDirectives"),M=(0,n.K)(function(t,e){for(let[r,i]of e.entries())if(i.match(t))return r;return -1},"isSubstringInArray");function $(t,e){return t?v[`curve${t.charAt(0).toUpperCase()+t.slice(1)}`]??e:e}function E(t,e){let r=t.trim();if(r)return"loose"!==e.securityLevel?(0,s.sanitizeUrl)(r):r}(0,n.K)($,"interpolateToCurve"),(0,n.K)(E,"formatUrl");var O=(0,n.K)((t,...e)=>{let r=t.split("."),i=r.length-1,o=r[i],n=window;for(let e=0;e<i;e++)if(!(n=n[r[e]]))return void a.R.error(`Function name: ${t} not found in window`);n[o](...e)},"runFunc");function D(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function K(t){let e,r=0;return t.forEach(t=>{r+=D(t,e),e=t}),R(t,r/2)}function I(t){return 1===t.length?t[0]:K(t)}(0,n.K)(D,"distance"),(0,n.K)(K,"traverseEdge"),(0,n.K)(I,"calcLabelPosition");var q=(0,n.K)((t,e=2)=>{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),R=(0,n.K)((t,e)=>{let r,i=e;for(let e of t){if(r){let t=D(e,r);if(0===t)return r;if(t<i)i-=t;else{let o=i/t;if(o<=0)return r;if(o>=1)return{x:e.x,y:e.y};if(o>0&&o<1)return{x:q((1-o)*r.x+o*e.x,5),y:q((1-o)*r.y+o*e.y,5)}}}r=e}throw Error("Could not find a suitable point for the given distance")},"calculatePoint"),P=(0,n.K)((t,e,r)=>{a.R.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=R(e,25),o=t?10:5,n=Math.atan2(e[0].y-i.y,e[0].x-i.x),s={x:0,y:0};return s.x=Math.sin(n)*o+(e[0].x+i.x)/2,s.y=-Math.cos(n)*o+(e[0].y+i.y)/2,s},"calcCardinalityPosition");function z(t,e,r){let i=structuredClone(r);a.R.info("our points",i),"start_left"!==e&&"start_right"!==e&&i.reverse();let o=R(i,25+t),n=10+.5*t,s=Math.atan2(i[0].y-o.y,i[0].x-o.x),l={x:0,y:0};return"start_left"===e?(l.x=Math.sin(s+Math.PI)*n+(i[0].x+o.x)/2,l.y=-Math.cos(s+Math.PI)*n+(i[0].y+o.y)/2):"end_right"===e?(l.x=Math.sin(s-Math.PI)*n+(i[0].x+o.x)/2-5,l.y=-Math.cos(s-Math.PI)*n+(i[0].y+o.y)/2-5):"end_left"===e?(l.x=Math.sin(s)*n+(i[0].x+o.x)/2-5,l.y=-Math.cos(s)*n+(i[0].y+o.y)/2-5):(l.x=Math.sin(s)*n+(i[0].x+o.x)/2,l.y=-Math.cos(s)*n+(i[0].y+o.y)/2),l}function W(t){let e="",r="";for(let i of t)void 0!==i&&(i.startsWith("color:")||i.startsWith("text-align:")?r=r+i+";":e=e+i+";");return{style:e,labelStyle:r}}(0,n.K)(z,"calcTerminalLabelPosition"),(0,n.K)(W,"getStylesFromArray");var N=0,j=(0,n.K)(()=>(N++,"id-"+Math.random().toString(36).substr(2,12)+"-"+N),"generateId");function H(t){let e="",r="0123456789abcdef",i=r.length;for(let o=0;o<t;o++)e+=r.charAt(Math.floor(Math.random()*i));return e}(0,n.K)(H,"makeRandomHex");var U=(0,n.K)(t=>H(t.length),"random"),Y=(0,n.K)(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),G=(0,n.K)(function(t,e){let r=e.text.replace(o.Y2.lineBreakRegex," "),[,i]=to(e.fontSize),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.style("font-family",e.fontFamily),a.style("font-size",i),a.style("font-weight",e.fontWeight),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);let n=a.append("tspan");return n.attr("x",e.x+2*e.textMargin),n.attr("fill",e.fill),n.text(r),a},"drawSimpleText"),X=h((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},r),o.Y2.hasBreaks(t)))return t;let i=t.split(" ").filter(Boolean),a=[],n="";return i.forEach((t,o)=>{let s=Q(`${t} `,r),l=Q(n,r);if(s>e){let{hyphenatedStrings:i,remainingWord:o}=Z(t,e,"-",r);a.push(n,...i),n=o}else l+s>=e?(a.push(n),n=t):n=[n,t].filter(Boolean).join(" ");o+1===i.length&&a.push(n)}),a.filter(t=>""!==t).join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),Z=h((t,e,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);let o=[...t],a=[],n="";return o.forEach((t,s)=>{let l=`${n}${t}`;if(Q(l,i)>=e){let t=o.length===s+1,e=`${l}${r}`;a.push(t?l:e),n=""}else n=l}),{hyphenatedStrings:a,remainingWord:n}},(t,e,r="-",i)=>`${t}${e}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`);function V(t,e){return J(t,e).height}function Q(t,e){return J(t,e).width}(0,n.K)(V,"calculateTextHeight"),(0,n.K)(Q,"calculateTextWidth");var J=h((t,e)=>{let{fontSize:r=12,fontFamily:i="Arial",fontWeight:a=400}=e;if(!t)return{width:0,height:0};let[,n]=to(r),s=t.split(o.Y2.lineBreakRegex),h=[],c=(0,l.Ltv)("body");if(!c.remove)return{width:0,height:0,lineHeight:0};let d=c.append("svg");for(let t of["sans-serif",i]){let e=0,r={width:0,height:0,lineHeight:0};for(let i of s){let o=Y();o.text=i||S;let s=G(d,o).style("font-size",n).style("font-weight",a).style("font-family",t),l=(s._groups||s)[0][0].getBBox();if(0===l.width&&0===l.height)throw Error("svg element not in render tree");r.width=Math.round(Math.max(r.width,l.width)),e=Math.round(l.height),r.height+=e,r.lineHeight=Math.round(Math.max(r.lineHeight,e))}h.push(r)}d.remove();let u=isNaN(h[1].height)||isNaN(h[1].width)||isNaN(h[1].lineHeight)||h[0].height>h[1].height&&h[0].width>h[1].width&&h[0].lineHeight>h[1].lineHeight?0:1;return h[u]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),tt=class{constructor(t=!1,e){this.count=0,this.count=e?e.length:0,this.next=t?()=>this.count++:()=>Date.now()}static{(0,n.K)(this,"InitIDGenerator")}},te=(0,n.K)(function(t){return i=i||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),i.innerHTML=t,unescape(i.textContent)},"entityDecode");function tr(t){return"str"in t}(0,n.K)(tr,"isDetailedError");var ti=(0,n.K)((t,e,r,i)=>{if(!i)return;let o=t.node()?.getBBox();o&&t.append("text").text(i).attr("text-anchor","middle").attr("x",o.x+o.width/2).attr("y",-r).attr("class",e)},"insertTitle"),to=(0,n.K)(t=>{if("number"==typeof t)return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");function ta(t,e){return function(t,...e){return function(t,...e){let r=e.slice(0,-1),i=e[e.length-1],o=t;for(let t=0;t<r.length;t++)o=function t(e,r,i,o){if((0,d.s)(e)&&(e=Object(e)),null==r||"object"!=typeof r)return e;if(o.has(r))return function(t){if((0,d.s)(t))return t;if(Array.isArray(t)||(0,u.i)(t)||t instanceof ArrayBuffer||"u">typeof SharedArrayBuffer&&t instanceof SharedArrayBuffer)return t.slice(0);let e=Object.getPrototypeOf(t);if(null==e)return Object.assign(Object.create(e),t);let r=e.constructor;if(t instanceof Date||t instanceof Map||t instanceof Set)return new r(t);if(t instanceof RegExp){let e=new r(t);return e.lastIndex=t.lastIndex,e}if(t instanceof DataView)return new r(t.buffer.slice(0));if(t instanceof Error){let e;return(e=t instanceof AggregateError?new r(t.errors,t.message,{cause:t.cause}):new r(t.message,{cause:t.cause})).stack=t.stack,Object.assign(e,t),e}return"u">typeof File&&t instanceof File?new r([t],t.name,{type:t.type,lastModified:t.lastModified}):"object"==typeof t?Object.assign(Object.create(e),t):t}(o.get(r));if(o.set(r,e),Array.isArray(r)){r=r.slice();for(let t=0;t<r.length;t++)t in r||(r[t]=void 0)}let a=[...Object.keys(r),...p(r)];for(let s=0;s<a.length;s++){let l=a[s];if("__proto__"===l)continue;let h=r[l],c=e[l];if((0,k.N)(h)&&(h={...h}),(0,k.N)(c)&&(c={...c}),(0,g.P)(h)&&(h=b(h)),Array.isArray(h))if(Array.isArray(c)){let t=[],e=Reflect.ownKeys(c);for(let r=0;r<e.length;r++){let i=e[r];t[i]=c[i]}c=t}else{var n;if(w(n=c)&&(0,T.X)(n)){let t=[];for(let e=0;e<c.length;e++)t[e]=c[e];c=t}else c=[]}let d=i(c,h,l,e,r,o);void 0!==d?e[l]=d:Array.isArray(h)||w(c)&&w(h)&&(f(c)||f(h)||(0,B.i)(c)||(0,B.i)(h))?e[l]=t(c,h,i,o):null==c&&f(h)?e[l]=t({},h,i,o):null==c&&(0,B.i)(h)?e[l]=b(h):(void 0===c||void 0!==h)&&(e[l]=h)}return e}(o,r[t],i,new Map);return o}(t,...e,c)}({},t,e)}(0,n.K)(ta,"cleanAndMerge");var tn={assignWithDepth:o.hH,wrapLabel:X,calculateTextHeight:V,calculateTextWidth:Q,calculateTextDimensions:J,cleanAndMerge:ta,detectInit:F,detectDirective:A,isSubstringInArray:M,interpolateToCurve:$,calcLabelPosition:I,calcCardinalityPosition:P,calcTerminalLabelPosition:z,formatUrl:E,getStylesFromArray:W,generateId:j,random:U,runFunc:O,entityDecode:te,insertTitle:ti,isLabelCoordinateInPath:td,parseFontSize:to,InitIDGenerator:tt},ts=(0,n.K)(function(t){let e=t;return(e=(e=e.replace(/style.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/classDef.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/#\w+;/g,function(t){let e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"\uFB02\xb0\xb0"+e+"\xb6\xdf":"\uFB02\xb0"+e+"\xb6\xdf"})},"encodeEntities"),tl=(0,n.K)(function(t){return t.replace(/\ufb02\xb0\xb0/g,"&#").replace(/\ufb02\xb0/g,"&").replace(/\xb6\xdf/g,";")},"decodeEntities"),th=(0,n.K)((t,e,{counter:r=0,prefix:i,suffix:o},a)=>a||`${i?`${i}_`:""}${t}_${e}_${r}${o?`_${o}`:""}`,"getEdgeId");function tc(t){return t??null}function td(t,e){let r=Math.round(t.x),i=Math.round(t.y),o=e.replace(/(\d+\.\d+)/g,t=>Math.round(parseFloat(t)).toString());return o.includes(r.toString())||o.includes(i.toString())}(0,n.K)(tc,"handleUndefinedAttr"),(0,n.K)(td,"isLabelCoordinateInPath")},2346(t,e,r){"use strict";r.r(e),r.d(e,{default:()=>r0});var i=r(4924),o=r(841),a=r(2391);r(3247),r(5616),r(6163),r(7827),r(3002),r(739),r(6320);var n=r(2217);r(2941);var s=r(6348),l=r(1177),h=r(1293),c=r(6827),d=r(8908),u=r(7829),p="comm",g="rule",f="decl",y="@keyframes",m="@layer",x=Math.abs,C=String.fromCharCode;function b(t,e,r){return t.replace(e,r)}function k(t,e){return 0|t.charCodeAt(e)}function w(t,e,r){return t.slice(e,r)}function T(t){return t.length}function B(t,e){return e.push(t),t}function S(t,e){for(var r="",i=0;i<t.length;i++)r+=e(t[i],i,t,e)||"";return r}function v(t,e,r,i){switch(t.type){case m:if(t.children.length)break;case"@import":case"@namespace":case f:return t.return=t.return||t.value;case p:return"";case y:return t.return=t.value+"{"+S(t.children,i)+"}";case g:if(!T(t.value=t.props.join(",")))return""}return T(r=S(t.children,i))?t.return=t.value+"{"+r+"}":""}var _=1,F=1,A=0,L=0,M=0,$="";function E(t,e,r,i,o,a,n,s){return{value:t,root:e,parent:r,type:i,props:o,children:a,line:_,column:F,length:n,return:"",siblings:s}}function O(){return M=L<A?k($,L++):0,F++,10===M&&(F=1,_++),M}function D(){return k($,L)}function K(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function I(t){var e,r;return(e=L-1,r=function t(e){for(;O();)switch(M){case e:return L;case 34:case 39:34!==e&&39!==e&&t(M);break;case 40:41===e&&t(e);break;case 92:O()}return L}(91===t?t+2:40===t?t+1:t),w($,e,r)).trim()}function q(t,e,r,i,o,a,n,s,l,h,c,d){for(var u=o-1,p=0===o?a:[""],f=p.length,y=0,m=0,C=0;y<i;++y)for(var k=0,T=w(t,u+1,u=x(m=n[y])),B=t;k<f;++k)(B=(m>0?p[k]+" "+T:b(T,/&\f/g,p[k])).trim())&&(l[C++]=B);return E(t,e,r,0===o?g:s,l,h,c,d)}function R(t,e,r,i,o){return E(t,e,r,f,w(t,0,i),w(t,i+1,-1),i,o)}var P=r(9418),z=r(1069),W=r(9480),N=r(4608),j=r(9663);function H(t){if(null==t)return!0;if((0,W.X)(t))return("function"==typeof t.splice||"string"==typeof t||!!(0,z.P)(t)||!!(0,j.i)(t)||!!(0,N.N)(t))&&0===t.length;if("object"==typeof t||"function"==typeof t){let e;if(t instanceof Map||t instanceof Set)return 0===t.size;let r=Object.keys(t);return(e=t?.constructor,t===("function"==typeof e?e.prototype:Object.prototype))?0===r.filter(t=>"constructor"!==t).length:0===r.length}return!0}var U={id:"c4",detector:(0,c.K)(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),loader:(0,c.K)(async()=>{let{diagram:t}=await r.e("1862").then(r.bind(r,9301));return{id:"c4",diagram:t}},"loader")},Y="flowchart-v2",G=(0,c.K)(t=>/^\s*(graph|flowchart)/.test(t),"detector"),X=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5505"),r.e("7874")]).then(r.bind(r,5289));return{id:Y,diagram:t}},"loader"),Z={id:Y,detector:G,loader:X},V="agentflow",Q=(0,c.K)(t=>/^\s*agentflow-beta\b/.test(t),"detector"),J=(0,c.K)(async()=>{let{diagram:t}=await r.e("5783").then(r.bind(r,4810));return{id:V,diagram:t}},"loader"),tt={id:V,detector:Q,loader:J},te="swimlane",tr=(0,c.K)(t=>/^\s*swimlane-beta\b/.test(t),"detector"),ti=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5505"),r.e("1567")]).then(r.bind(r,5698));return{id:te,diagram:t}},"loader"),to={id:te,detector:tr,loader:ti},ta={id:"er",detector:(0,c.K)(t=>/^\s*erDiagram/.test(t),"detector"),loader:(0,c.K)(async()=>{let{diagram:t}=await r.e("3636").then(r.bind(r,7599));return{id:"er",diagram:t}},"loader")},tn="gitGraph",ts=(0,c.K)(t=>/^\s*gitGraph/.test(t),"detector"),tl=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("4137")]).then(r.bind(r,2208));return{id:tn,diagram:t}},"loader"),th={id:tn,detector:ts,loader:tl},tc="gantt",td=(0,c.K)(t=>/^\s*gantt/.test(t),"detector"),tu=(0,c.K)(async()=>{let{diagram:t}=await r.e("6374").then(r.bind(r,6389));return{id:tc,diagram:t}},"loader"),tp={id:tc,detector:td,loader:tu},tg="info",tf=(0,c.K)(t=>/^\s*info/.test(t),"detector"),ty=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("6184")]).then(r.bind(r,1019));return{id:tg,diagram:t}},"loader"),tm={id:tg,detector:tf,loader:ty},tx={id:"pie",detector:(0,c.K)(t=>/^\s*pie/.test(t),"detector"),loader:(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("2951")]).then(r.bind(r,7834));return{id:"pie",diagram:t}},"loader")},tC="quadrantChart",tb=(0,c.K)(t=>/^\s*quadrantChart/.test(t),"detector"),tk=(0,c.K)(async()=>{let{diagram:t}=await r.e("9948").then(r.bind(r,791));return{id:tC,diagram:t}},"loader"),tw={id:tC,detector:tb,loader:tk},tT="xychart",tB=(0,c.K)(t=>/^\s*xychart(-beta)?/.test(t),"detector"),tS=(0,c.K)(async()=>{let{diagram:t}=await r.e("4875").then(r.bind(r,1238));return{id:tT,diagram:t}},"loader"),tv={id:tT,detector:tB,loader:tS},t_="requirement",tF=(0,c.K)(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),tA=(0,c.K)(async()=>{let{diagram:t}=await r.e("6856").then(r.bind(r,1819));return{id:t_,diagram:t}},"loader"),tL={id:t_,detector:tF,loader:tA},tM="sequence",t$=(0,c.K)(t=>/^\s*sequenceDiagram/.test(t),"detector"),tE=(0,c.K)(async()=>{let{diagram:t}=await r.e("4617").then(r.bind(r,7280));return{id:tM,diagram:t}},"loader"),tO={id:tM,detector:t$,loader:tE},tD="classDiagram",tK=(0,c.K)(t=>/^\s*classDiagram/.test(t),"detector"),tI=(0,c.K)(async()=>{let{diagram:t}=await r.e("8683").then(r.bind(r,8726));return{id:tD,diagram:t}},"loader"),tq={id:tD,detector:tK,loader:tI},tR="stateDiagram",tP=(0,c.K)(t=>/^\s*stateDiagram/.test(t),"detector"),tz=(0,c.K)(async()=>{let{diagram:t}=await r.e("2268").then(r.bind(r,7335));return{id:tR,diagram:t}},"loader"),tW={id:tR,detector:tP,loader:tz},tN="journey",tj=(0,c.K)(t=>/^\s*journey/.test(t),"detector"),tH=(0,c.K)(async()=>{let{diagram:t}=await r.e("2358").then(r.bind(r,1493));return{id:tN,diagram:t}},"loader"),tU={id:tN,detector:tj,loader:tH},tY={draw:(0,c.K)((t,e,r)=>{h.R.debug("rendering svg for syntax error\n");let o=(0,i.D)(e),a=o.append("g");o.attr("viewBox","0 0 2412 512"),(0,l.a$)(o,100,512,!0),a.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),a.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),a.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),a.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),a.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),a.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),a.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),a.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw")},tG={db:{},renderer:tY,parser:{parse:(0,c.K)(()=>{},"parse")}},tX="flowchart-elk",tZ=(0,c.K)((t,e={})=>!!/^\s*flowchart-elk/.test(t)&&(e.layout="elk",!0),"detector"),tV=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5505"),r.e("5493")]).then(r.bind(r,5289));return{id:tX,diagram:t}},"loader"),tQ={id:tX,detector:tZ,loader:tV},tJ="timeline",t0=(0,c.K)(t=>/^\s*timeline/.test(t),"detector"),t1=(0,c.K)(async()=>{let{diagram:t}=await r.e("181").then(r.bind(r,6180));return{id:tJ,diagram:t}},"loader"),t2={id:tJ,detector:t0,loader:t1},t5="mindmap",t3=(0,c.K)(t=>/^\s*mindmap/.test(t),"detector"),t4=(0,c.K)(async()=>{let{diagram:t}=await r.e("8272").then(r.bind(r,1123));return{id:t5,diagram:t}},"loader"),t6={id:t5,detector:t3,loader:t4},t8="kanban",t7=(0,c.K)(t=>/^\s*kanban/.test(t),"detector"),t9=(0,c.K)(async()=>{let{diagram:t}=await r.e("6326").then(r.bind(r,4773));return{id:t8,diagram:t}},"loader"),et={id:t8,detector:t7,loader:t9},ee="sankey",er=(0,c.K)(t=>/^\s*sankey(-beta)?/.test(t),"detector"),ei=(0,c.K)(async()=>{let{diagram:t}=await r.e("4892").then(r.bind(r,6247));return{id:ee,diagram:t}},"loader"),eo={id:ee,detector:er,loader:ei},ea="packet",en=(0,c.K)(t=>/^\s*packet(-beta)?/.test(t),"detector"),es=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("7256")]).then(r.bind(r,6699));return{id:ea,diagram:t}},"loader"),el={id:ea,detector:en,loader:es},eh="radar",ec=(0,c.K)(t=>/^\s*radar-beta/.test(t),"detector"),ed=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("4788")]).then(r.bind(r,5487));return{id:eh,diagram:t}},"loader"),eu={id:eh,detector:ec,loader:ed},ep="block",eg=(0,c.K)(t=>/^\s*block(-beta)?/.test(t),"detector"),ef=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("2107"),r.e("5250"),r.e("3851")]).then(r.bind(r,9734));return{id:ep,diagram:t}},"loader"),ey={id:ep,detector:eg,loader:ef},em="treeView",ex=(0,c.K)(t=>/^\s*treeView-beta/.test(t),"detector"),eC=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("1491")]).then(r.bind(r,4638));return{id:em,diagram:t}},"loader"),eb={id:em,detector:ex,loader:eC},ek="architecture",ew=(0,c.K)(t=>/^\s*architecture/.test(t),"detector"),eT=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("4950"),r.e("6832")]).then(r.bind(r,9827));return{id:ek,diagram:t}},"loader"),eB={id:ek,detector:ew,loader:eT},eS="eventmodeling",ev=(0,c.K)(t=>/^\s*eventmodeling/.test(t),"detector"),e_=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("6073")]).then(r.bind(r,944));return{id:eS,diagram:t}},"loader"),eF={id:eS,detector:ev,loader:e_},eA="ishikawa",eL=(0,c.K)(t=>/^\s*ishikawa(-beta)?\b/i.test(t),"detector"),eM=(0,c.K)(async()=>{let{diagram:t}=await r.e("9729").then(r.bind(r,2840));return{id:eA,diagram:t}},"loader"),e$={id:eA,detector:eL,loader:eM},eE="venn",eO=(0,c.K)(t=>/^\s*venn-beta/.test(t),"detector"),eD=(0,c.K)(async()=>{let{diagram:t}=await r.e("3788").then(r.bind(r,3367));return{id:eE,diagram:t}},"loader"),eK={id:eE,detector:eO,loader:eD},eI="treemap",eq=(0,c.K)(t=>/^\s*treemap/.test(t),"detector"),eR=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("8927")]).then(r.bind(r,4738));return{id:eI,diagram:t}},"loader"),eP={id:eI,detector:eq,loader:eR},ez="usecase",eW=(0,c.K)(t=>/^\s*usecase-beta(?:\s|$)/.test(t),"detector"),eN=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("2107"),r.e("7472"),r.e("9956")]).then(r.bind(r,463));return{id:ez,diagram:t}},"loader"),ej={id:ez,detector:eW,loader:eN},eH="wardley",eU=(0,c.K)(t=>/^\s*wardley-beta/i.test(t),"detector"),eY=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("2881")]).then(r.bind(r,5448));return{id:eH,diagram:t}},"loader"),eG={id:eH,detector:eU,loader:eY},eX="cynefin",eZ=(0,c.K)(t=>/^\s*cynefin-beta(?:[\s:]|$)/.test(t),"detector"),eV=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("480")]).then(r.bind(r,7475));return{id:eX,diagram:t}},"loader"),eQ={id:eX,detector:eZ,loader:eV},eJ="railroad",e0=(0,c.K)(t=>/^\s*railroad-beta/i.test(t),"detector"),e1=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("1447"),r.e("4709")]).then(r.bind(r,6871));return{id:eJ,diagram:t}},"loader"),e2={id:eJ,detector:e0,loader:e1},e5="railroadEbnf",e3=(0,c.K)(t=>/^\s*railroad-ebnf-beta/i.test(t),"detector"),e4=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("1447"),r.e("9156")]).then(r.bind(r,5567));return{id:e5,diagram:t}},"loader"),e6={id:e5,detector:e3,loader:e4},e8="railroadAbnf",e7=(0,c.K)(t=>/^\s*railroad-abnf-beta/i.test(t),"detector"),e9=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("1447"),r.e("4551")]).then(r.bind(r,7034));return{id:e8,diagram:t}},"loader"),rt={id:e8,detector:e7,loader:e9},re="railroadPeg",rr=(0,c.K)(t=>/^\s*railroad-peg-beta/i.test(t),"detector"),ri=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5005"),r.e("1447"),r.e("2240")]).then(r.bind(r,8931));return{id:re,diagram:t}},"loader"),ro={id:re,detector:rr,loader:ri},ra=!1,rn=(0,c.K)(()=>{ra||(ra=!0,(0,l.Js)("error",tG,t=>"error"===t.toLowerCase().trim()),(0,l.Js)("---",{db:{clear:(0,c.K)(()=>{},"clear")},styles:{},renderer:{draw:(0,c.K)(()=>{},"draw")},parser:{parse:(0,c.K)(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:(0,c.K)(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),(0,l.Xd)(tQ,t6,eB),(0,l.Xd)(tt,U,et,tq,ta,tp,tm,tx,tL,tO,to,Z,t2,th,tW,tU,tw,eo,el,tv,ey,eF,eb,eu,e$,eP,e2,e6,rt,ro,eK,eG,eQ,ej))},"addDiagrams"),rs=(0,c.K)(async()=>{h.R.debug("Loading registered diagrams");let t=(await Promise.allSettled(Object.entries(l.mW).map(async([t,{detector:e,loader:r}])=>{if(r)try{(0,l.Gs)(t)}catch{try{let{diagram:t,id:i}=await r();(0,l.Js)(i,t,e)}catch(e){throw h.R.error(`Failed to load external diagram with key ${t}. Removing from detectors.`),delete l.mW[t],e}}}))).filter(t=>"rejected"===t.status);if(t.length>0){for(let e of(h.R.error(`Failed to load ${t.length} external diagrams`),t))h.R.error(e);throw Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams");function rl(t,e){t.attr("role","graphics-document document"),""!==e&&t.attr("aria-roledescription",e)}function rh(t,e,r,i){if(void 0!==t.insert){if(r){let e=`chart-desc-${i}`;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(r)}if(e){let r=`chart-title-${i}`;t.attr("aria-labelledby",r),t.insert("title",":first-child").attr("id",r).text(e)}}}(0,c.K)(rl,"setA11yDiagramInfo"),(0,c.K)(rh,"addSVGa11yTitleDescription");var rc=class t{constructor(t,e,r,i,o){this.type=t,this.text=e,this.db=r,this.parser=i,this.renderer=o}static{(0,c.K)(this,"Diagram")}static async fromText(e,r={}){let i="string"==typeof e?{raw:e,cleaned:e}:e,o=(0,l.zj)(),a=(0,l.Ch)(i.cleaned,o);try{(0,l.Gs)(a)}catch{let t=(0,l.J$)(a);if(!t)throw new l.C0(`Diagram ${a} not found.`);let{id:e,diagram:r}=await t();(0,l.Js)(e,r)}let{db:n,parser:c,renderer:d,init:u}=(0,l.Gs)(a);c.parser&&(c.parser.yy=n),n.clear?.(),u?.(o),r.title&&n.setDiagramTitle?.(r.title);let p=i.cleaned;if(n.preserveCommentsWhenParsing&&i.withComments){let t=o.maxTextSize??l.UI.maxTextSize;i.withComments.length>t?h.R.warn(`Comment-preserving source exceeds maxTextSize (${i.withComments.length} > ${t}); parsing the comment-stripped text instead. Reported source positions will not account for comment lines.`):p=i.withComments}let g=(0,s.C4)(p)+"\n";return i.frontmatterLineOffset&&n.setFrontmatterLineOffset?.(i.frontmatterLineOffset),await c.parse(g),new t(a,g,n,c,d)}async render(t,e){await this.renderer.draw(this.text,t,e,this)}getParser(){return this.parser}getType(){return this.type}},rd=[],ru=(0,c.K)(()=>{rd.forEach(t=>{t()}),rd=[]},"attachFunctions"),rp=(0,c.K)(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function rg(t){let e=t.match(l.EJ);if(!e)return{text:t,metadata:{}};let r=e[1],i=r?e[2].split("\n").map(t=>t.startsWith(r)?t.slice(r.length):t).join("\n"):e[2],a=(0,o.H)(i,{schema:o.r})??{};a="object"!=typeof a||Array.isArray(a)?{}:a;let n={};return a.displayMode&&(n.displayMode=a.displayMode.toString()),a.title&&(n.title=a.title.toString()),a.config&&(n.config=a.config),{text:t.slice(e[0].length),metadata:n}}(0,c.K)(rg,"extractFrontMatter");var rf=(0,c.K)(t=>t.replace(/\r\n?/g,"\n").replace(/<(\w+)([^>]*)>/g,(t,e,r)=>"<"+e+r.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),ry=(0,c.K)(t=>{let{text:e,metadata:r}=rg(t),{displayMode:i,title:o,config:a={}}=r;return i&&(a.gantt||(a.gantt={}),a.gantt.displayMode=i),{title:o,config:a,text:e}},"processFrontmatter"),rm=(0,c.K)(t=>{let e=s._K.detectInit(t)??{},r=s._K.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:t})=>"wrap"===t):r?.type==="wrap"&&(e.wrap=!0),{text:(0,s.vU)(t),directive:e}},"processDirectives");function rx(t){let e=rf(t),r=ry(e),i=rm(r.text),o=(0,s.$t)(r.config,i.directive),a=i.text;return{code:{raw:t,cleaned:rp(a),withComments:a,frontmatterLineOffset:e.length>r.text.length?(e.substring(0,e.length-r.text.length).match(/\n/g)??[]).length:0},title:r.title,config:o}}function rC(t){return btoa(Array.from(new TextEncoder().encode(t),t=>String.fromCodePoint(t)).join(""))}(0,c.K)(rx,"preprocessDiagram"),(0,c.K)(rC,"toBase64");var rb=["foreignobject"],rk=["dominant-baseline"];function rw(t){let e,r=rx(t);(0,l.cL)();try{e=(0,l.Ch)(r.code.cleaned,(0,l.zj)())}catch{e=void 0}return(0,l.yj)(e),(0,l.xA)(r.config??{}),r}async function rT(t,e){rn();try{let{code:e,config:r}=rw(t);return{diagramType:(await rc.fromText(e)).type,config:r}}catch(t){if(e?.suppressErrors)return!1;throw t}finally{(0,l.yj)(void 0)}}(0,c.K)(rw,"processAndSetConfigs"),(0,c.K)(rT,"parse");var rB=(0,c.K)((t,e,r=[])=>{let i=(0,l.Df)(`{ ${r.join(" !important; ")} !important; }`);return`.${t} ${e} ${i}`},"cssImportantStyles"),rS=(0,c.K)((t,e=new Map)=>{let r=new CSSStyleSheet;if(void 0!==t.fontFamily&&r.insertRule(`:root { --mermaid-font-family: ${t.fontFamily}}`,r.cssRules.length),void 0!==t.altFontFamily&&r.insertRule(`:root { --mermaid-alt-font-family: ${t.altFontFamily}}`,r.cssRules.length),e instanceof Map){let i=(0,l.E)(t)?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(t=>{H(t.styles)||i.forEach(e=>{r.insertRule(rB(t.id,e,t.styles),r.cssRules.length)}),H(t.textStyles)||r.insertRule(rB(t.id,"tspan",(t?.textStyles||[]).map(t=>t.replace("color","fill"))),r.cssRules.length)})}let i="";if(void 0!==t.themeCSS)if("function"==typeof r.replaceSync){let e=new CSSStyleSheet;e.replaceSync(t.themeCSS),i=(0,l.KG)(e)+"\n"}else i+=`${t.themeCSS} +`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),a.R.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);let n=[];for(;null!==(r=o.DB.exec(t));)if(r.index===o.DB.lastIndex&&o.DB.lastIndex++,r&&!e||e&&r[1]?.match(e)||e&&r[2]?.match(e)){let t=r[1]?r[1]:r[2],e=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:t,args:e})}if(0===n.length)return{type:t,args:null};return 1===n.length?n[0]:n}catch(r){return a.R.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),L=(0,n.K)(function(t){return t.replace(o.DB,"")},"removeDirectives"),M=(0,n.K)(function(t,e){for(let[r,i]of e.entries())if(i.match(t))return r;return -1},"isSubstringInArray");function $(t,e){return t?v[`curve${t.charAt(0).toUpperCase()+t.slice(1)}`]??e:e}function E(t,e){let r=t.trim();if(r)return"loose"!==e.securityLevel?(0,s.sanitizeUrl)(r):r}(0,n.K)($,"interpolateToCurve"),(0,n.K)(E,"formatUrl");var O=(0,n.K)((t,...e)=>{let r=t.split("."),i=r.length-1,o=r[i],n=window;for(let e=0;e<i;e++)if(!(n=n[r[e]]))return void a.R.error(`Function name: ${t} not found in window`);n[o](...e)},"runFunc");function D(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function K(t){let e,r=0;return t.forEach(t=>{r+=D(t,e),e=t}),R(t,r/2)}function I(t){return 1===t.length?t[0]:K(t)}(0,n.K)(D,"distance"),(0,n.K)(K,"traverseEdge"),(0,n.K)(I,"calcLabelPosition");var q=(0,n.K)((t,e=2)=>{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),R=(0,n.K)((t,e)=>{let r,i=e;for(let e of t){if(r){let t=D(e,r);if(0===t)return r;if(t<i)i-=t;else{let o=i/t;if(o<=0)return r;if(o>=1)return{x:e.x,y:e.y};if(o>0&&o<1)return{x:q((1-o)*r.x+o*e.x,5),y:q((1-o)*r.y+o*e.y,5)}}}r=e}throw Error("Could not find a suitable point for the given distance")},"calculatePoint"),P=(0,n.K)((t,e,r)=>{a.R.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=R(e,25),o=t?10:5,n=Math.atan2(e[0].y-i.y,e[0].x-i.x),s={x:0,y:0};return s.x=Math.sin(n)*o+(e[0].x+i.x)/2,s.y=-Math.cos(n)*o+(e[0].y+i.y)/2,s},"calcCardinalityPosition");function z(t,e,r){let i=structuredClone(r);a.R.info("our points",i),"start_left"!==e&&"start_right"!==e&&i.reverse();let o=R(i,25+t),n=10+.5*t,s=Math.atan2(i[0].y-o.y,i[0].x-o.x),l={x:0,y:0};return"start_left"===e?(l.x=Math.sin(s+Math.PI)*n+(i[0].x+o.x)/2,l.y=-Math.cos(s+Math.PI)*n+(i[0].y+o.y)/2):"end_right"===e?(l.x=Math.sin(s-Math.PI)*n+(i[0].x+o.x)/2-5,l.y=-Math.cos(s-Math.PI)*n+(i[0].y+o.y)/2-5):"end_left"===e?(l.x=Math.sin(s)*n+(i[0].x+o.x)/2-5,l.y=-Math.cos(s)*n+(i[0].y+o.y)/2-5):(l.x=Math.sin(s)*n+(i[0].x+o.x)/2,l.y=-Math.cos(s)*n+(i[0].y+o.y)/2),l}function W(t){let e="",r="";for(let i of t)void 0!==i&&(i.startsWith("color:")||i.startsWith("text-align:")?r=r+i+";":e=e+i+";");return{style:e,labelStyle:r}}(0,n.K)(z,"calcTerminalLabelPosition"),(0,n.K)(W,"getStylesFromArray");var N=0,j=(0,n.K)(()=>(N++,"id-"+Math.random().toString(36).substr(2,12)+"-"+N),"generateId");function H(t){let e="",r="0123456789abcdef",i=r.length;for(let o=0;o<t;o++)e+=r.charAt(Math.floor(Math.random()*i));return e}(0,n.K)(H,"makeRandomHex");var U=(0,n.K)(t=>H(t.length),"random"),Y=(0,n.K)(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),G=(0,n.K)(function(t,e){let r=e.text.replace(o.Y2.lineBreakRegex," "),[,i]=to(e.fontSize),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.style("font-family",e.fontFamily),a.style("font-size",i),a.style("font-weight",e.fontWeight),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);let n=a.append("tspan");return n.attr("x",e.x+2*e.textMargin),n.attr("fill",e.fill),n.text(r),a},"drawSimpleText"),X=h((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},r),o.Y2.hasBreaks(t)))return t;let i=t.split(" ").filter(Boolean),a=[],n="";return i.forEach((t,o)=>{let s=Q(`${t} `,r),l=Q(n,r);if(s>e){let{hyphenatedStrings:i,remainingWord:o}=Z(t,e,"-",r);a.push(n,...i),n=o}else l+s>=e?(a.push(n),n=t):n=[n,t].filter(Boolean).join(" ");o+1===i.length&&a.push(n)}),a.filter(t=>""!==t).join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),Z=h((t,e,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);let o=[...t],a=[],n="";return o.forEach((t,s)=>{let l=`${n}${t}`;if(Q(l,i)>=e){let t=o.length===s+1,e=`${l}${r}`;a.push(t?l:e),n=""}else n=l}),{hyphenatedStrings:a,remainingWord:n}},(t,e,r="-",i)=>`${t}${e}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`);function V(t,e){return J(t,e).height}function Q(t,e){return J(t,e).width}(0,n.K)(V,"calculateTextHeight"),(0,n.K)(Q,"calculateTextWidth");var J=h((t,e)=>{let{fontSize:r=12,fontFamily:i="Arial",fontWeight:a=400}=e;if(!t)return{width:0,height:0};let[,n]=to(r),s=t.split(o.Y2.lineBreakRegex),h=[],c=(0,l.Ltv)("body");if(!c.remove)return{width:0,height:0,lineHeight:0};let d=c.append("svg");for(let t of["sans-serif",i]){let e=0,r={width:0,height:0,lineHeight:0};for(let i of s){let o=Y();o.text=i||S;let s=G(d,o).style("font-size",n).style("font-weight",a).style("font-family",t),l=(s._groups||s)[0][0].getBBox();if(0===l.width&&0===l.height)throw Error("svg element not in render tree");r.width=Math.round(Math.max(r.width,l.width)),e=Math.round(l.height),r.height+=e,r.lineHeight=Math.round(Math.max(r.lineHeight,e))}h.push(r)}d.remove();let u=isNaN(h[1].height)||isNaN(h[1].width)||isNaN(h[1].lineHeight)||h[0].height>h[1].height&&h[0].width>h[1].width&&h[0].lineHeight>h[1].lineHeight?0:1;return h[u]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),tt=class{constructor(t=!1,e){this.count=0,this.count=e?e.length:0,this.next=t?()=>this.count++:()=>Date.now()}static{(0,n.K)(this,"InitIDGenerator")}},te=(0,n.K)(function(t){return i=i||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),i.innerHTML=t,unescape(i.textContent)},"entityDecode");function tr(t){return"str"in t}(0,n.K)(tr,"isDetailedError");var ti=(0,n.K)((t,e,r,i)=>{if(!i)return;let o=t.node()?.getBBox();o&&t.append("text").text(i).attr("text-anchor","middle").attr("x",o.x+o.width/2).attr("y",-r).attr("class",e)},"insertTitle"),to=(0,n.K)(t=>{if("number"==typeof t)return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");function ta(t,e){return function(t,...e){return function(t,...e){let r=e.slice(0,-1),i=e[e.length-1],o=t;for(let t=0;t<r.length;t++)o=function t(e,r,i,o){if((0,d.s)(e)&&(e=Object(e)),null==r||"object"!=typeof r)return e;if(o.has(r))return function(t){if((0,d.s)(t))return t;if(Array.isArray(t)||(0,u.i)(t)||t instanceof ArrayBuffer||"u">typeof SharedArrayBuffer&&t instanceof SharedArrayBuffer)return t.slice(0);let e=Object.getPrototypeOf(t);if(null==e)return Object.assign(Object.create(e),t);let r=e.constructor;if(t instanceof Date||t instanceof Map||t instanceof Set)return new r(t);if(t instanceof RegExp){let e=new r(t);return e.lastIndex=t.lastIndex,e}if(t instanceof DataView)return new r(t.buffer.slice(0));if(t instanceof Error){let e;return(e=t instanceof AggregateError?new r(t.errors,t.message,{cause:t.cause}):new r(t.message,{cause:t.cause})).stack=t.stack,Object.assign(e,t),e}return"u">typeof File&&t instanceof File?new r([t],t.name,{type:t.type,lastModified:t.lastModified}):"object"==typeof t?Object.assign(Object.create(e),t):t}(o.get(r));if(o.set(r,e),Array.isArray(r)){r=r.slice();for(let t=0;t<r.length;t++)t in r||(r[t]=void 0)}let a=[...Object.keys(r),...p(r)];for(let s=0;s<a.length;s++){let l=a[s];if("__proto__"===l)continue;let h=r[l],c=e[l];if((0,k.N)(h)&&(h={...h}),(0,k.N)(c)&&(c={...c}),(0,g.P)(h)&&(h=b(h)),Array.isArray(h))if(Array.isArray(c)){let t=[],e=Reflect.ownKeys(c);for(let r=0;r<e.length;r++){let i=e[r];t[i]=c[i]}c=t}else{var n;if(w(n=c)&&(0,T.X)(n)){let t=[];for(let e=0;e<c.length;e++)t[e]=c[e];c=t}else c=[]}let d=i(c,h,l,e,r,o);void 0!==d?e[l]=d:Array.isArray(h)||w(c)&&w(h)&&(f(c)||f(h)||(0,B.i)(c)||(0,B.i)(h))?e[l]=t(c,h,i,o):null==c&&f(h)?e[l]=t({},h,i,o):null==c&&(0,B.i)(h)?e[l]=b(h):(void 0===c||void 0!==h)&&(e[l]=h)}return e}(o,r[t],i,new Map);return o}(t,...e,c)}({},t,e)}(0,n.K)(ta,"cleanAndMerge");var tn={assignWithDepth:o.hH,wrapLabel:X,calculateTextHeight:V,calculateTextWidth:Q,calculateTextDimensions:J,cleanAndMerge:ta,detectInit:F,detectDirective:A,isSubstringInArray:M,interpolateToCurve:$,calcLabelPosition:I,calcCardinalityPosition:P,calcTerminalLabelPosition:z,formatUrl:E,getStylesFromArray:W,generateId:j,random:U,runFunc:O,entityDecode:te,insertTitle:ti,isLabelCoordinateInPath:td,parseFontSize:to,InitIDGenerator:tt},ts=(0,n.K)(function(t){let e=t;return(e=(e=e.replace(/style.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/classDef.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/#\w+;/g,function(t){let e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"\uFB02\xb0\xb0"+e+"\xb6\xdf":"\uFB02\xb0"+e+"\xb6\xdf"})},"encodeEntities"),tl=(0,n.K)(function(t){return t.replace(/\ufb02\xb0\xb0/g,"&#").replace(/\ufb02\xb0/g,"&").replace(/\xb6\xdf/g,";")},"decodeEntities"),th=(0,n.K)((t,e,{counter:r=0,prefix:i,suffix:o},a)=>a||`${i?`${i}_`:""}${t}_${e}_${r}${o?`_${o}`:""}`,"getEdgeId");function tc(t){return t??null}function td(t,e){let r=Math.round(t.x),i=Math.round(t.y),o=e.replace(/(\d+\.\d+)/g,t=>Math.round(parseFloat(t)).toString());return o.includes(r.toString())||o.includes(i.toString())}(0,n.K)(tc,"handleUndefinedAttr"),(0,n.K)(td,"isLabelCoordinateInPath")},2346(t,e,r){"use strict";r.r(e),r.d(e,{default:()=>r0});var i=r(4924),o=r(841),a=r(2391);r(3247),r(5616),r(6163),r(7827),r(3002),r(739),r(6320);var n=r(2217);r(2941);var s=r(6348),l=r(1177),h=r(1293),c=r(6827),d=r(8908),u=r(7829),p="comm",g="rule",f="decl",y="@keyframes",m="@layer",x=Math.abs,C=String.fromCharCode;function b(t,e,r){return t.replace(e,r)}function k(t,e){return 0|t.charCodeAt(e)}function w(t,e,r){return t.slice(e,r)}function T(t){return t.length}function B(t,e){return e.push(t),t}function S(t,e){for(var r="",i=0;i<t.length;i++)r+=e(t[i],i,t,e)||"";return r}function v(t,e,r,i){switch(t.type){case m:if(t.children.length)break;case"@import":case"@namespace":case f:return t.return=t.return||t.value;case p:return"";case y:return t.return=t.value+"{"+S(t.children,i)+"}";case g:if(!T(t.value=t.props.join(",")))return""}return T(r=S(t.children,i))?t.return=t.value+"{"+r+"}":""}var _=1,F=1,A=0,L=0,M=0,$="";function E(t,e,r,i,o,a,n,s){return{value:t,root:e,parent:r,type:i,props:o,children:a,line:_,column:F,length:n,return:"",siblings:s}}function O(){return M=L<A?k($,L++):0,F++,10===M&&(F=1,_++),M}function D(){return k($,L)}function K(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function I(t){var e,r;return(e=L-1,r=function t(e){for(;O();)switch(M){case e:return L;case 34:case 39:34!==e&&39!==e&&t(M);break;case 40:41===e&&t(e);break;case 92:O()}return L}(91===t?t+2:40===t?t+1:t),w($,e,r)).trim()}function q(t,e,r,i,o,a,n,s,l,h,c,d){for(var u=o-1,p=0===o?a:[""],f=p.length,y=0,m=0,C=0;y<i;++y)for(var k=0,T=w(t,u+1,u=x(m=n[y])),B=t;k<f;++k)(B=(m>0?p[k]+" "+T:b(T,/&\f/g,p[k])).trim())&&(l[C++]=B);return E(t,e,r,0===o?g:s,l,h,c,d)}function R(t,e,r,i,o){return E(t,e,r,f,w(t,0,i),w(t,i+1,-1),i,o)}var P=r(9418),z=r(1069),W=r(9480),N=r(4608),j=r(9663);function H(t){if(null==t)return!0;if((0,W.X)(t))return("function"==typeof t.splice||"string"==typeof t||!!(0,z.P)(t)||!!(0,j.i)(t)||!!(0,N.N)(t))&&0===t.length;if("object"==typeof t||"function"==typeof t){let e;if(t instanceof Map||t instanceof Set)return 0===t.size;let r=Object.keys(t);return(e=t?.constructor,t===("function"==typeof e?e.prototype:Object.prototype))?0===r.filter(t=>"constructor"!==t).length:0===r.length}return!0}var U={id:"c4",detector:(0,c.K)(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),loader:(0,c.K)(async()=>{let{diagram:t}=await r.e("1862").then(r.bind(r,9301));return{id:"c4",diagram:t}},"loader")},Y="flowchart-v2",G=(0,c.K)(t=>/^\s*(graph|flowchart)/.test(t),"detector"),X=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5505"),r.e("7874")]).then(r.bind(r,5289));return{id:Y,diagram:t}},"loader"),Z={id:Y,detector:G,loader:X},V="agentflow",Q=(0,c.K)(t=>/^\s*agentflow-beta\b/.test(t),"detector"),J=(0,c.K)(async()=>{let{diagram:t}=await r.e("5783").then(r.bind(r,4810));return{id:V,diagram:t}},"loader"),tt={id:V,detector:Q,loader:J},te="swimlane",tr=(0,c.K)(t=>/^\s*swimlane-beta\b/.test(t),"detector"),ti=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5505"),r.e("1567")]).then(r.bind(r,5698));return{id:te,diagram:t}},"loader"),to={id:te,detector:tr,loader:ti},ta={id:"er",detector:(0,c.K)(t=>/^\s*erDiagram/.test(t),"detector"),loader:(0,c.K)(async()=>{let{diagram:t}=await r.e("3636").then(r.bind(r,7599));return{id:"er",diagram:t}},"loader")},tn="gitGraph",ts=(0,c.K)(t=>/^\s*gitGraph/.test(t),"detector"),tl=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("4137")]).then(r.bind(r,2208));return{id:tn,diagram:t}},"loader"),th={id:tn,detector:ts,loader:tl},tc="gantt",td=(0,c.K)(t=>/^\s*gantt/.test(t),"detector"),tu=(0,c.K)(async()=>{let{diagram:t}=await r.e("6374").then(r.bind(r,6389));return{id:tc,diagram:t}},"loader"),tp={id:tc,detector:td,loader:tu},tg="info",tf=(0,c.K)(t=>/^\s*info/.test(t),"detector"),ty=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("6184")]).then(r.bind(r,1019));return{id:tg,diagram:t}},"loader"),tm={id:tg,detector:tf,loader:ty},tx={id:"pie",detector:(0,c.K)(t=>/^\s*pie/.test(t),"detector"),loader:(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("2951")]).then(r.bind(r,7834));return{id:"pie",diagram:t}},"loader")},tC="quadrantChart",tb=(0,c.K)(t=>/^\s*quadrantChart/.test(t),"detector"),tk=(0,c.K)(async()=>{let{diagram:t}=await r.e("9948").then(r.bind(r,791));return{id:tC,diagram:t}},"loader"),tw={id:tC,detector:tb,loader:tk},tT="xychart",tB=(0,c.K)(t=>/^\s*xychart(-beta)?/.test(t),"detector"),tS=(0,c.K)(async()=>{let{diagram:t}=await r.e("4875").then(r.bind(r,1238));return{id:tT,diagram:t}},"loader"),tv={id:tT,detector:tB,loader:tS},t_="requirement",tF=(0,c.K)(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),tA=(0,c.K)(async()=>{let{diagram:t}=await r.e("6856").then(r.bind(r,1819));return{id:t_,diagram:t}},"loader"),tL={id:t_,detector:tF,loader:tA},tM="sequence",t$=(0,c.K)(t=>/^\s*sequenceDiagram/.test(t),"detector"),tE=(0,c.K)(async()=>{let{diagram:t}=await r.e("4617").then(r.bind(r,7280));return{id:tM,diagram:t}},"loader"),tO={id:tM,detector:t$,loader:tE},tD="classDiagram",tK=(0,c.K)(t=>/^\s*classDiagram/.test(t),"detector"),tI=(0,c.K)(async()=>{let{diagram:t}=await r.e("8683").then(r.bind(r,8726));return{id:tD,diagram:t}},"loader"),tq={id:tD,detector:tK,loader:tI},tR="stateDiagram",tP=(0,c.K)(t=>/^\s*stateDiagram/.test(t),"detector"),tz=(0,c.K)(async()=>{let{diagram:t}=await r.e("2268").then(r.bind(r,7335));return{id:tR,diagram:t}},"loader"),tW={id:tR,detector:tP,loader:tz},tN="journey",tj=(0,c.K)(t=>/^\s*journey/.test(t),"detector"),tH=(0,c.K)(async()=>{let{diagram:t}=await r.e("2358").then(r.bind(r,1493));return{id:tN,diagram:t}},"loader"),tU={id:tN,detector:tj,loader:tH},tY={draw:(0,c.K)((t,e,r)=>{h.R.debug("rendering svg for syntax error\n");let o=(0,i.D)(e),a=o.append("g");o.attr("viewBox","0 0 2412 512"),(0,l.a$)(o,100,512,!0),a.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),a.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),a.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),a.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),a.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),a.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),a.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),a.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw")},tG={db:{},renderer:tY,parser:{parse:(0,c.K)(()=>{},"parse")}},tX="flowchart-elk",tZ=(0,c.K)((t,e={})=>!!/^\s*flowchart-elk/.test(t)&&(e.layout="elk",!0),"detector"),tV=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("5505"),r.e("5493")]).then(r.bind(r,5289));return{id:tX,diagram:t}},"loader"),tQ={id:tX,detector:tZ,loader:tV},tJ="timeline",t0=(0,c.K)(t=>/^\s*timeline/.test(t),"detector"),t1=(0,c.K)(async()=>{let{diagram:t}=await r.e("181").then(r.bind(r,6180));return{id:tJ,diagram:t}},"loader"),t2={id:tJ,detector:t0,loader:t1},t5="mindmap",t3=(0,c.K)(t=>/^\s*mindmap/.test(t),"detector"),t4=(0,c.K)(async()=>{let{diagram:t}=await r.e("8272").then(r.bind(r,1123));return{id:t5,diagram:t}},"loader"),t6={id:t5,detector:t3,loader:t4},t8="kanban",t7=(0,c.K)(t=>/^\s*kanban/.test(t),"detector"),t9=(0,c.K)(async()=>{let{diagram:t}=await r.e("6326").then(r.bind(r,4773));return{id:t8,diagram:t}},"loader"),et={id:t8,detector:t7,loader:t9},ee="sankey",er=(0,c.K)(t=>/^\s*sankey(-beta)?/.test(t),"detector"),ei=(0,c.K)(async()=>{let{diagram:t}=await r.e("4892").then(r.bind(r,6247));return{id:ee,diagram:t}},"loader"),eo={id:ee,detector:er,loader:ei},ea="packet",en=(0,c.K)(t=>/^\s*packet(-beta)?/.test(t),"detector"),es=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("7256")]).then(r.bind(r,6699));return{id:ea,diagram:t}},"loader"),el={id:ea,detector:en,loader:es},eh="radar",ec=(0,c.K)(t=>/^\s*radar-beta/.test(t),"detector"),ed=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("4788")]).then(r.bind(r,5487));return{id:eh,diagram:t}},"loader"),eu={id:eh,detector:ec,loader:ed},ep="block",eg=(0,c.K)(t=>/^\s*block(-beta)?/.test(t),"detector"),ef=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("2107"),r.e("5250"),r.e("3851")]).then(r.bind(r,9734));return{id:ep,diagram:t}},"loader"),ey={id:ep,detector:eg,loader:ef},em="treeView",ex=(0,c.K)(t=>/^\s*treeView-beta/.test(t),"detector"),eC=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("1491")]).then(r.bind(r,4638));return{id:em,diagram:t}},"loader"),eb={id:em,detector:ex,loader:eC},ek="architecture",ew=(0,c.K)(t=>/^\s*architecture/.test(t),"detector"),eT=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("4950"),r.e("6832")]).then(r.bind(r,9827));return{id:ek,diagram:t}},"loader"),eB={id:ek,detector:ew,loader:eT},eS="eventmodeling",ev=(0,c.K)(t=>/^\s*eventmodeling/.test(t),"detector"),e_=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("6073")]).then(r.bind(r,944));return{id:eS,diagram:t}},"loader"),eF={id:eS,detector:ev,loader:e_},eA="ishikawa",eL=(0,c.K)(t=>/^\s*ishikawa(-beta)?\b/i.test(t),"detector"),eM=(0,c.K)(async()=>{let{diagram:t}=await r.e("9729").then(r.bind(r,2840));return{id:eA,diagram:t}},"loader"),e$={id:eA,detector:eL,loader:eM},eE="venn",eO=(0,c.K)(t=>/^\s*venn-beta/.test(t),"detector"),eD=(0,c.K)(async()=>{let{diagram:t}=await r.e("3788").then(r.bind(r,3367));return{id:eE,diagram:t}},"loader"),eK={id:eE,detector:eO,loader:eD},eI="treemap",eq=(0,c.K)(t=>/^\s*treemap/.test(t),"detector"),eR=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("8927")]).then(r.bind(r,4738));return{id:eI,diagram:t}},"loader"),eP={id:eI,detector:eq,loader:eR},ez="usecase",eW=(0,c.K)(t=>/^\s*usecase-beta(?:\s|$)/.test(t),"detector"),eN=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("2107"),r.e("7472"),r.e("9956")]).then(r.bind(r,463));return{id:ez,diagram:t}},"loader"),ej={id:ez,detector:eW,loader:eN},eH="wardley",eU=(0,c.K)(t=>/^\s*wardley-beta/i.test(t),"detector"),eY=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("2881")]).then(r.bind(r,5448));return{id:eH,diagram:t}},"loader"),eG={id:eH,detector:eU,loader:eY},eX="cynefin",eZ=(0,c.K)(t=>/^\s*cynefin-beta(?:[\s:]|$)/.test(t),"detector"),eV=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("480")]).then(r.bind(r,7475));return{id:eX,diagram:t}},"loader"),eQ={id:eX,detector:eZ,loader:eV},eJ="railroad",e0=(0,c.K)(t=>/^\s*railroad-beta/i.test(t),"detector"),e1=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("8738"),r.e("4709")]).then(r.bind(r,6871));return{id:eJ,diagram:t}},"loader"),e2={id:eJ,detector:e0,loader:e1},e5="railroadEbnf",e3=(0,c.K)(t=>/^\s*railroad-ebnf-beta/i.test(t),"detector"),e4=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("8738"),r.e("9156")]).then(r.bind(r,5567));return{id:e5,diagram:t}},"loader"),e6={id:e5,detector:e3,loader:e4},e8="railroadAbnf",e7=(0,c.K)(t=>/^\s*railroad-abnf-beta/i.test(t),"detector"),e9=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("8738"),r.e("4551")]).then(r.bind(r,7034));return{id:e8,diagram:t}},"loader"),rt={id:e8,detector:e7,loader:e9},re="railroadPeg",rr=(0,c.K)(t=>/^\s*railroad-peg-beta/i.test(t),"detector"),ri=(0,c.K)(async()=>{let{diagram:t}=await Promise.all([r.e("4936"),r.e("8738"),r.e("2240")]).then(r.bind(r,8931));return{id:re,diagram:t}},"loader"),ro={id:re,detector:rr,loader:ri},ra=!1,rn=(0,c.K)(()=>{ra||(ra=!0,(0,l.Js)("error",tG,t=>"error"===t.toLowerCase().trim()),(0,l.Js)("---",{db:{clear:(0,c.K)(()=>{},"clear")},styles:{},renderer:{draw:(0,c.K)(()=>{},"draw")},parser:{parse:(0,c.K)(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:(0,c.K)(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),(0,l.Xd)(tQ,t6,eB),(0,l.Xd)(tt,U,et,tq,ta,tp,tm,tx,tL,tO,to,Z,t2,th,tW,tU,tw,eo,el,tv,ey,eF,eb,eu,e$,eP,e2,e6,rt,ro,eK,eG,eQ,ej))},"addDiagrams"),rs=(0,c.K)(async()=>{h.R.debug("Loading registered diagrams");let t=(await Promise.allSettled(Object.entries(l.mW).map(async([t,{detector:e,loader:r}])=>{if(r)try{(0,l.Gs)(t)}catch{try{let{diagram:t,id:i}=await r();(0,l.Js)(i,t,e)}catch(e){throw h.R.error(`Failed to load external diagram with key ${t}. Removing from detectors.`),delete l.mW[t],e}}}))).filter(t=>"rejected"===t.status);if(t.length>0){for(let e of(h.R.error(`Failed to load ${t.length} external diagrams`),t))h.R.error(e);throw Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams");function rl(t,e){t.attr("role","graphics-document document"),""!==e&&t.attr("aria-roledescription",e)}function rh(t,e,r,i){if(void 0!==t.insert){if(r){let e=`chart-desc-${i}`;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(r)}if(e){let r=`chart-title-${i}`;t.attr("aria-labelledby",r),t.insert("title",":first-child").attr("id",r).text(e)}}}(0,c.K)(rl,"setA11yDiagramInfo"),(0,c.K)(rh,"addSVGa11yTitleDescription");var rc=class t{constructor(t,e,r,i,o){this.type=t,this.text=e,this.db=r,this.parser=i,this.renderer=o}static{(0,c.K)(this,"Diagram")}static async fromText(e,r={}){let i="string"==typeof e?{raw:e,cleaned:e}:e,o=(0,l.zj)(),a=(0,l.Ch)(i.cleaned,o);try{(0,l.Gs)(a)}catch{let t=(0,l.J$)(a);if(!t)throw new l.C0(`Diagram ${a} not found.`);let{id:e,diagram:r}=await t();(0,l.Js)(e,r)}let{db:n,parser:c,renderer:d,init:u}=(0,l.Gs)(a);c.parser&&(c.parser.yy=n),n.clear?.(),u?.(o),r.title&&n.setDiagramTitle?.(r.title);let p=i.cleaned;if(n.preserveCommentsWhenParsing&&i.withComments){let t=o.maxTextSize??l.UI.maxTextSize;i.withComments.length>t?h.R.warn(`Comment-preserving source exceeds maxTextSize (${i.withComments.length} > ${t}); parsing the comment-stripped text instead. Reported source positions will not account for comment lines.`):p=i.withComments}let g=(0,s.C4)(p)+"\n";return i.frontmatterLineOffset&&n.setFrontmatterLineOffset?.(i.frontmatterLineOffset),await c.parse(g),new t(a,g,n,c,d)}async render(t,e){await this.renderer.draw(this.text,t,e,this)}getParser(){return this.parser}getType(){return this.type}},rd=[],ru=(0,c.K)(()=>{rd.forEach(t=>{t()}),rd=[]},"attachFunctions"),rp=(0,c.K)(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function rg(t){let e=t.match(l.EJ);if(!e)return{text:t,metadata:{}};let r=e[1],i=r?e[2].split("\n").map(t=>t.startsWith(r)?t.slice(r.length):t).join("\n"):e[2],a=(0,o.H)(i,{schema:o.r})??{};a="object"!=typeof a||Array.isArray(a)?{}:a;let n={};return a.displayMode&&(n.displayMode=a.displayMode.toString()),a.title&&(n.title=a.title.toString()),a.config&&(n.config=a.config),{text:t.slice(e[0].length),metadata:n}}(0,c.K)(rg,"extractFrontMatter");var rf=(0,c.K)(t=>t.replace(/\r\n?/g,"\n").replace(/<(\w+)([^>]*)>/g,(t,e,r)=>"<"+e+r.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),ry=(0,c.K)(t=>{let{text:e,metadata:r}=rg(t),{displayMode:i,title:o,config:a={}}=r;return i&&(a.gantt||(a.gantt={}),a.gantt.displayMode=i),{title:o,config:a,text:e}},"processFrontmatter"),rm=(0,c.K)(t=>{let e=s._K.detectInit(t)??{},r=s._K.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:t})=>"wrap"===t):r?.type==="wrap"&&(e.wrap=!0),{text:(0,s.vU)(t),directive:e}},"processDirectives");function rx(t){let e=rf(t),r=ry(e),i=rm(r.text),o=(0,s.$t)(r.config,i.directive),a=i.text;return{code:{raw:t,cleaned:rp(a),withComments:a,frontmatterLineOffset:e.length>r.text.length?(e.substring(0,e.length-r.text.length).match(/\n/g)??[]).length:0},title:r.title,config:o}}function rC(t){return btoa(Array.from(new TextEncoder().encode(t),t=>String.fromCodePoint(t)).join(""))}(0,c.K)(rx,"preprocessDiagram"),(0,c.K)(rC,"toBase64");var rb=["foreignobject"],rk=["dominant-baseline"];function rw(t){let e,r=rx(t);(0,l.cL)();try{e=(0,l.Ch)(r.code.cleaned,(0,l.zj)())}catch{e=void 0}return(0,l.yj)(e),(0,l.xA)(r.config??{}),r}async function rT(t,e){rn();try{let{code:e,config:r}=rw(t);return{diagramType:(await rc.fromText(e)).type,config:r}}catch(t){if(e?.suppressErrors)return!1;throw t}finally{(0,l.yj)(void 0)}}(0,c.K)(rw,"processAndSetConfigs"),(0,c.K)(rT,"parse");var rB=(0,c.K)((t,e,r=[])=>{let i=(0,l.Df)(`{ ${r.join(" !important; ")} !important; }`);return`.${t} ${e} ${i}`},"cssImportantStyles"),rS=(0,c.K)((t,e=new Map)=>{let r=new CSSStyleSheet;if(void 0!==t.fontFamily&&r.insertRule(`:root { --mermaid-font-family: ${t.fontFamily}}`,r.cssRules.length),void 0!==t.altFontFamily&&r.insertRule(`:root { --mermaid-alt-font-family: ${t.altFontFamily}}`,r.cssRules.length),e instanceof Map){let i=(0,l.E)(t)?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(t=>{H(t.styles)||i.forEach(e=>{r.insertRule(rB(t.id,e,t.styles),r.cssRules.length)}),H(t.textStyles)||r.insertRule(rB(t.id,"tspan",(t?.textStyles||[]).map(t=>t.replace("color","fill"))),r.cssRules.length)})}let i="";if(void 0!==t.themeCSS)if("function"==typeof r.replaceSync){let e=new CSSStyleSheet;e.replaceSync(t.themeCSS),i=(0,l.KG)(e)+"\n"}else i+=`${t.themeCSS} `;return i+(0,l.KG)(r)},"createCssStyles"),rv=(0,c.K)((t,e)=>{var r,i,o,a,n;return S((o=function t(e,r,i,o,a,n,s,l,h){for(var c,d,u,g,f=0,y=0,m=s,x=0,S=0,v=0,A=1,P=1,z=1,W=0,N=0,j="",H=a,U=n,Y=o,G=j;P;)switch(v=N,N=O()){case 40:108!=v&&58==k(G,m-1)?(W++,G+="("):G+=I(N);break;case 41:W--,G+=")";break;case 34:case 39:case 91:G+=I(N);break;case 9:case 10:case 13:case 32:if(W>0){G+=C(N);break}G+=function(t){for(;M=D();)if(M<33)O();else break;return K(t)>2||K(M)>3?"":" "}(v);break;case 92:G+=function(t,e){for(var r;--e&&O()&&!(M<48)&&!(M>102)&&(!(M>57)||!(M<65))&&(!(M>70)||!(M<97)););return r=L+(e<6&&32==D()&&32==O()),w($,t,r)}(L-1,7);continue;case 47:switch(D()){case 42:case 47:B((c=function(t,e){for(;O();)if(t+M===57)break;else if(t+M===84&&47===D())break;return"/*"+w($,e,L-1)+"*"+C(47===t?t:O())}(O(),L),d=r,u=i,g=h,E(c,d,u,p,C(M),w(c,2,-2),0,g)),h),(5==K(v||1)||5==K(D()||1))&&T(G)&&" "!==w(G,-1,void 0)&&(G+=" ");break;default:G+="/"}break;case 123*A:l[f++]=T(G)*z;case 125*A:case 59:case 0:if(W>0&&N){G+=C(N);break}switch(N){case 0:case 125:P=0;case 59+y:-1==z&&(G=b(G,/\f/g,"")),S>0&&(T(G)-m||0===A)&&B(S>32?R(G+";",o,i,m-1,h):R(b(G," ","")+";",o,i,m-2,h),h);break;case 59:G+=";";default:if(B(Y=q(G,r,i,f,y,a,l,j,H=[],U=[],m,n),n),123===N)if(0===y)t(G,r,Y,Y,H,n,m,l,U);else{switch(x){case 99:if(110===k(G,3))break;case 108:if(97===k(G,2))break;default:y=0;case 100:case 109:case 115:}y?t(e,Y,Y,o&&B(q(e,Y,Y,0,0,a,l,j,a,H=[],m,U),U),a,U,m,l,o?H:U):t(G,Y,Y,Y,[""],U,0,l,U)}}f=y=S=0,A=z=1,j=G="",m=s;break;case 58:m=1+T(G),S=v;default:if(A<1){if(123==N)--A;else if(125==N&&0==A++&&125==(M=L>0?k($,--L):0,F--,10===M&&(F=1,_--),M))continue}switch(G+=C(N),N*A){case 38:z=y>0?1:(G+="\f",-1);break;case 44:if(W>0)break;l[f++]=(T(G)-1)*z,z=1;break;case 64:45===D()&&(G+=I(O())),x=D(),y=m=T(j=G+=function(t){for(;!K(D());)O();return w($,t,L)}(L)),N++;break;case 45:45===v&&2==T(G)&&(A=0)}}return n}("",null,null,null,[""],(i=r=`${t}{${e}}`,_=F=1,A=T($=i),L=0,r=[]),0,[0],r),$="",o),(n=(a=[(0,c.K)(function(e,r,i,o){"rule"===e.type&&Array.isArray(e.props)?e.parent&&e.parent.type===y||(e.props=e.props.map(r=>r===t&&Array.isArray(e.children)&&e.children.every(t=>"decl"===t.type&&new Set(["font-family","font-size","fill"]).has(t.props))||(r.startsWith(`${t} `)||r.startsWith(`${t}>`))&&!r.startsWith(`${t} ||`)?r:`${t} ${r}`)):e.type.startsWith("@")&&(["@media","@supports",m,"@scope","@container","@starting-style",y].includes(e.type)||(h.R.warn(`Removing unsupported at-rule ${e.type} from CSS`),e.type=p))},"addNamespace"),v]).length,function(t,e,r,i){for(var o="",s=0;s<n;s++)o+=a[s](t,e,r,i)||"";return o}))},"compileCSS"),r_=(0,c.K)((t,e,r,i)=>{let o=rS(t,r),a=(0,l.tM)(e,o,{...t.themeVariables,theme:t.theme,look:t.look},i);return rv(i,a)},"createUserStyles"),rF=(0,c.K)((t="",e,r)=>{let i=t;return r||e||(i=i.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),i=(i=(0,s.Sm)(i)).replace(/<br>/g,"<br/>")},"cleanUpSvgCode"),rA=(0,c.K)((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":"100%",i=rC(`<body style="margin:0">${t}</body>`);return`<iframe style="width:100%;height:${r};border:0;margin:0;" src="data:text/html;charset=UTF-8;base64,${i}" sandbox="allow-top-navigation-by-user-activation allow-popups"> The "iframe" tag is not supported by your browser. </iframe>`},"putIntoIFrame"),rL=(0,c.K)((t,e,r,i,o)=>{let a=t.append("div");a.attr("id",r),i&&a.attr("style",i);let n=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return o&&n.attr("xmlns:xlink",o),n.append("g"),t},"appendDivSvgG");function rM(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}(0,c.K)(rM,"sandboxedIframe");var r$=(0,c.K)((t,e,r,i)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(i)?.remove()},"removeExistingElements"),rE=(0,c.K)(async function(t,e,r){let i,o;rn();let a=rw(e),n=a.code;e=n.cleaned;let s=(0,l.zj)();h.R.debug(s),e.length>(s?.maxTextSize??5e4)&&(n={raw:e="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",cleaned:e});let d=`#${t}`,p="i"+t,g="#"+p,f="d"+t,y="#"+f,m=(0,c.K)(()=>{let t=C?g:y,e=(0,u.Ltv)(t).node();e&&"remove"in e&&e.remove()},"removeTempElements"),x=(0,u.Ltv)(document.body),C="sandbox"===s.securityLevel,b="loose"===s.securityLevel,k=s.fontFamily;if(void 0!==r){if(r&&(r.innerHTML=""),C){let t=rM((0,u.Ltv)(r),p);(x=(0,u.Ltv)(t.nodes()[0].contentDocument.body)).node().style.margin="0"}else x=(0,u.Ltv)(r);rL(x,t,f,`font-family: ${k}`,"http://www.w3.org/1999/xlink")}else{if(r$(document,t,f,p),C){let t=rM((0,u.Ltv)(document.body),p);(x=(0,u.Ltv)(t.nodes()[0].contentDocument.body)).node().style.margin="0"}else x=(0,u.Ltv)("body");rL(x,t,f)}try{i=await rc.fromText(n,{title:a.title})}catch(t){if(s.suppressErrorRendering)throw m(),t;i=await rc.fromText("error"),o=t}let w=x.select(y).node(),T=i.type,B=w.firstChild,S=B.firstChild,v=r_(s,T,i.renderer.getClasses?.(e,i),d),_=document.createElement("style");_.innerHTML=v,B.insertBefore(_,S);try{await i.renderer.draw(e,t,"12.0.0",i)}catch(r){throw s.suppressErrorRendering?m():tY.draw(e,t,"12.0.0"),r}rI(T,x.select(`${y} svg`),i.db.getAccTitle?.(),i.db.getAccDescription?.());let F=(0,c.K)(()=>{x.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let e=x.select(y).node().innerHTML;return h.R.debug("config.arrowMarkerAbsolute",s.arrowMarkerAbsolute),e=rF(e,C,(0,l._3)(s.arrowMarkerAbsolute)),C?e=rA(e,x.select(y+" svg").node()):b||(e=P.A.sanitize(e,{ADD_TAGS:rb,ADD_ATTR:rk,HTML_INTEGRATION_POINTS:{foreignobject:!0}})),ru(),e},"serializeSvg")();if(o)throw o;return m(),{diagramType:T,svg:F,bindFunctions:i.db.bindFunctions}},"renderDiagram"),rO=(0,c.K)(async function(t,e,r){try{return await rE(t,e,r)}finally{(0,l.yj)(void 0)}},"render");function rD(t={}){let e=(0,l.hH)({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),(0,l.wZ)(e);let r=l.sb.theme;e?.theme&&Object.hasOwn(l.H$,e.theme)?e.themeVariables=l.H$[e.theme].getThemeVariables(e.themeVariables):e&&(null!=e.theme&&"null"!==e.theme&&(e.theme=r),e.themeVariables=l.H$[r].getThemeVariables(e.themeVariables));let i="object"==typeof e?(0,l.UU)(e):(0,l.Q2)();(0,h.H)(i.logLevel),rn()}(0,c.K)(rD,"initialize");var rK=(0,c.K)((t,e={})=>{let{code:r}=rx(t);return rc.fromText(r,e)},"getDiagramFromText");function rI(t,e,r,i){rl(e,t),rh(e,r,i,e.attr("id"))}(0,c.K)(rI,"addA11yInfo");var rq=Object.freeze({render:rO,parse:rT,getDiagramFromText:rK,initialize:rD,getConfig:l.zj,setConfig:l.Nk,getSiteConfig:l.Q2,updateSiteConfig:l.B6,reset:(0,c.K)(()=>{(0,l.cL)()},"reset"),globalReset:(0,c.K)(()=>{(0,l.cL)(l.sb)},"globalReset"),defaultConfig:l.sb});(0,h.H)((0,l.zj)().logLevel),(0,l.cL)((0,l.zj)());var rR=(0,c.K)((t,e,r)=>{h.R.warn(t),(0,s.dq)(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),rP=(0,c.K)(async function(t={querySelector:".mermaid"}){try{await rz(t)}catch(e){if((0,s.dq)(e)&&h.R.error(e.str),rJ.parseError&&rJ.parseError(e),!t.suppressErrors)throw h.R.error("Use the suppressErrors option to suppress these errors"),e}},"run"),rz=(0,c.K)(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let i,o,a=rq.getConfig();if(h.R.debug(`${!t?"No ":""}Callback function found`),r)i=r;else if(e)i=document.querySelectorAll(e);else throw Error("Nodes and querySelector are both undefined");h.R.debug(`Found ${i.length} diagrams`),a?.startOnLoad!==void 0&&(h.R.debug("Start On Load: "+a?.startOnLoad),rq.updateSiteConfig({startOnLoad:a?.startOnLoad}));let n=new s._K.InitIDGenerator(a.deterministicIds,a.deterministicIDSeed),l=[];for(let e of Array.from(i)){if(h.R.info("Rendering diagram: "+e.id),e.getAttribute("data-processed"))continue;e.setAttribute("data-processed","true");let r=`mermaid-${n.next()}`;o=e.innerHTML,o=(0,d.T)(s._K.entityDecode(o)).trim().replace(/<br\s*\/?>/gi,"<br/>");let i=s._K.detectInit(o);i&&h.R.debug("Detected early reinit: ",i);try{let{svg:i,bindFunctions:a}=await rV(r,o,e);e.innerHTML=i,t&&await t(r),a&&a(e)}catch(t){rR(t,l,rJ.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),rW=(0,c.K)(function(t){rq.initialize(t)},"initialize"),rN=(0,c.K)(async function(t,e,r){h.R.warn("mermaid.init is deprecated. Please use run instead."),t&&rW(t);let i={postRenderCallback:r,querySelector:".mermaid"};"string"==typeof e?i.querySelector=e:e&&(e instanceof HTMLElement?i.nodes=[e]:i.nodes=e),await rP(i)},"init"),rj=(0,c.K)(async(t,{lazyLoad:e=!0}={})=>{rn(),(0,l.Xd)(...t),!1===e&&await rs()},"registerExternalDiagrams"),rH=(0,c.K)(function(){if(rJ.startOnLoad){let{startOnLoad:t}=rq.getConfig();t&&rJ.run().catch(t=>h.R.error("Mermaid failed to initialize",t))}},"contentLoaded");"u">typeof document&&window.addEventListener("load",rH,!1);var rU=(0,c.K)(function(t){rJ.parseError=t},"setParseErrorHandler"),rY=[],rG=!1,rX=(0,c.K)(async()=>{if(!rG){for(rG=!0;rY.length>0;){let t=rY.shift();if(t)try{await t()}catch(t){h.R.error("Error executing queue",t)}}rG=!1}},"executeQueue"),rZ=(0,c.K)(async(t,e)=>new Promise((r,i)=>{let o=(0,c.K)(()=>new Promise((o,a)=>{rq.parse(t,e).then(t=>{o(t),r(t)},t=>{h.R.error("Error parsing",t),rJ.parseError?.(t),a(t),i(t)})}),"performCall");rY.push(o),rX().catch(i)}),"parse"),rV=(0,c.K)((t,e,r)=>new Promise((i,o)=>{let a=(0,c.K)(()=>new Promise((a,n)=>{rq.render(t,e,r).then(t=>{a(t),i(t)},t=>{h.R.error("Error parsing",t),rJ.parseError?.(t),n(t),o(t)})}),"performCall");rY.push(a),rX().catch(o)}),"render"),rQ=(0,c.K)(()=>Object.keys(l.mW).map(t=>({id:t})),"getRegisteredDiagramsMetadata"),rJ={startOnLoad:!0,mermaidAPI:rq,parse:rZ,render:rV,init:rN,run:rP,registerExternalDiagrams:rj,registerLayoutLoaders:a.sO,initialize:rW,parseError:void 0,contentLoaded:rH,setParseErrorHandler:rU,detectType:l.Ch,registerIconPacks:n.pC,getRegisteredDiagramsMetadata:rQ},r0=rJ},8908(t,e,r){"use strict";function i(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var i=Array.from("string"==typeof t?[t]:t);i[i.length-1]=i[i.length-1].replace(/\r?\n([\t ]*)$/,"");var o=i.reduce(function(t,e){var r=e.match(/\n([\t ]+|(?!\s).)/g);return r?t.concat(r.map(function(t){var e,r;return null!=(r=null==(e=t.match(/[\t ]/g))?void 0:e.length)?r:0})):t},[]);if(o.length){var a=RegExp("\n[ ]{".concat(Math.min.apply(Math,o),"}"),"g");i=i.map(function(t){return t.replace(a,"\n")})}i[0]=i[0].replace(/^\r?\n/,"");var n=i[0];return e.forEach(function(t,e){var r=n.match(/(?:^|\n)( *)$/),o=r?r[1]:"",a=t;"string"==typeof t&&t.includes("\n")&&(a=String(t).split("\n").map(function(t,e){return 0===e?t:"".concat(o).concat(t)}).join("\n")),n+=a+i[e+1]}),n}r.d(e,{T:()=>i})}}]); \ No newline at end of file diff --git a/en/assets/js/1491.920b1332.js b/en/assets/js/1491.920b1332.js deleted file mode 100644 index a6b1ea6..0000000 --- a/en/assets/js/1491.920b1332.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1491"],{5350(e,t,i){i.d(t,{m:()=>n});var r=i(6827),n=class{constructor(e){this.init=e,this.records=this.init()}static{(0,r.K)(this,"ImperativeState")}reset(){this.records=this.init()}}},4638(e,t,i){i.d(t,{diagram:()=>j});var r=i(5350),n=i(7454),o=i(4924),s=i(2217),a=i(6348),l=i(1177),d=i(1293),c=i(6827),h=i(8731),p=/[\u2500\u2501\u2502\u2503\u2514\u2517\u251c\u2523]/,f=/[\u2514\u2517\u251c\u2523]/,g=/[\u2500\u2501]/,u=/^[\s\u2502\u2503]+$/,w=/^\s*(title[\t ]|accTitle[\t ]*:|accDescr[\t ]*[:{])/,x=/^\s*%%/;function m(e){return e.some(e=>p.test(e))}function b(e){for(let t of e){let e=f.exec(t);if(e?.index&&e.index>0)return e.index}return 4}function y(e,t){return e.replace(/\bline\s+(\d+)\b/gi,(e,i)=>{let r=parseInt(i,10),n=t.get(r);return n?`line ${n}`:e})}function $(e){let t=e.split("\n"),i=new Map,r=-1;for(let[e,i]of t.entries())if("treeView-beta"===i.trim()){r=e;break}if(-1===r)return{text:e,lineMap:i};let n=[];for(let e=r+1;e<t.length;e++){let i=t[e];!(""===i.trim()||x.test(i)||w.test(i))&&(u.test(i)||n.push(i.replace(/\t/g," ")))}if(!m(n))return{text:e,lineMap:i};let o=b(n),s=[],a=0;for(let e=0;e<=r;e++)s.push(t[e]),a++,i.set(a,e+1);for(let e=r+1;e<t.length;e++){let r=t[e],n=r.trim(),l=e+1;if(""===n||x.test(r)||w.test(r)){s.push(r),a++,i.set(a,l);continue}if(u.test(r))continue;let d=r.replace(/\t/g," "),c=f.exec(d);if(c?.index!==void 0){let e=c.index,t=Math.round(e/o)+1,r=e+1;for(;r<d.length&&g.test(d[r]);)r++;for(;r<d.length&&" "===d[r];)r++;let n=d.slice(r).trimEnd();if(!n)throw Error(`Line ${l}: Empty node \u2014 expected a filename or directory name after the box-drawing prefix`);let h=" ".repeat(t);s.push(h+n),a++,i.set(a,l)}else if(/^[\s\u2500\u2501\u2502\u2503\u2514\u2517\u251c\u2523]+$/.test(d))continue;else if(p.test(d))s.push(r),a++,i.set(a,l);else if(/^\s+/.test(d))throw Error(`Line ${l}: Unexpected indentation without box-drawing characters. In box-drawing format, use \u251C\u2500\u2500 or \u2514\u2500\u2500 prefixes for indented nodes.`);else s.push(r),a++,i.set(a,l)}return{text:s.join("\n"),lineMap:i}}(0,c.K)(m,"isBoxDrawingFormat"),(0,c.K)(b,"inferSegmentWidth"),(0,c.K)(y,"remapErrorLines"),(0,c.K)($,"preprocessBoxDrawing");var k=new r.m(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",nodeType:"directory",children:[]}]})),K=(0,c.K)(()=>{k.reset(),(0,l.IU)()},"clear"),v=(0,c.K)(()=>k.records.stack[0],"getRoot"),V=(0,c.K)(()=>k.records.cnt,"getCount"),B=l.UI.treeView,C=(0,c.K)(()=>(0,a.$t)(B,(0,l.zj)().treeView),"getConfig"),I={clear:K,addNode:(0,c.K)((e,t,i,r,n,o)=>{for(;e<=k.records.stack[k.records.stack.length-1].level;)k.records.stack.pop();let s={id:k.records.cnt++,level:e,name:t,nodeType:i,icon:n,cssClass:r,description:o,children:[]};k.records.stack[k.records.stack.length-1].children.push(s),k.records.stack.push(s)},"addNode"),getRoot:v,getCount:V,getConfig:C,getAccTitle:l.iN,getAccDescription:l.m7,getDiagramTitle:l.ab,setAccDescription:l.EI,setAccTitle:l.SV,setDiagramTitle:l.ke},T=(0,c.K)(e=>{for(let t of((0,n.S)(e,I),e.nodes)){let e="number"==typeof t.indent?t.indent:0,i=t.name,r=i.endsWith("/");r&&(i=i.slice(0,-1));let n=r?"directory":"file",o=t.classAnnotation||void 0,s=t.iconAnnotation,a=void 0!==s?s||"none":void 0,d=t.descAnnotation||void 0,c=d?(0,l.jZ)(d,(0,l.zj)()):void 0;I.addNode(e,i,n,o,a,c)}},"populate"),E={parse:(0,c.K)(async e=>{let{text:t,lineMap:i}=$(e);try{let e=await (0,h.qg)("treeView",t);d.R.debug(e),T(e)}catch(e){throw i.size>0&&e instanceof Error&&(e.message=y(e.message,i)),e}},"parse")},M={prefix:"mermaid-treeview",height:24,width:24,icons:{folder:{body:'<path fill="currentColor" d="M10.59 4.59A2 2 0 0 0 9.17 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.17z"/>'},file:{body:'<path fill="currentColor" fill-rule="evenodd" d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.83a2 2 0 0 0-.59-1.42l-4.82-4.82A2 2 0 0 0 13.17 2H6Zm7.5 1.9l4.6 4.6h-3.6a1 1 0 0 1-1-1V3.9Z" clip-rule="evenodd"/>'}}};function A(e,t){let i=t?.filenameIcons?.[e];if(i)return i;let r=e.lastIndexOf(".");if(r>0){let i=e.substring(r).toLowerCase(),n=t?.extensionIcons;return n?.[i]??n?.[i.slice(1)]}}function D(e,t){return e.includes(":")?e:e in M.icons||!t?`${M.prefix}:${e}`:`${t}:${e}`}function N(e,t){if("none"!==e.icon){if(e.icon)return D(e.icon,t.defaultIconPack);if(t.showIcons){if("file"===e.nodeType){let i=A(e.name,t);if("none"===i)return;if(i)return D(i,t.defaultIconPack)}return`${M.prefix}:${"directory"===e.nodeType?"folder":"file"}`}}}(0,c.K)(A,"detectIcon"),(0,c.K)(D,"qualifyIcon"),(0,c.K)(N,"getNodeIcon"),(0,s.pC)([{name:M.prefix,icons:M}]);var z=(0,c.K)(async(e,t)=>{let i=[],r=(0,c.K)(e=>{let n=N(e,t);n&&i.push({icon:n,node:e}),e.children.forEach(r)},"collect");return r(e),new Map((await Promise.all(i.map(async({icon:e,node:t})=>({id:t.id,svg:await (0,s.WY)(e,{height:14,width:14})})))).map(({id:e,svg:t})=>[e,t]))},"resolveNodeIcons"),X=(0,c.K)((e,t,i,r,n,o)=>{let s=r.append("g"),a="treeView-node-label";"directory"===i.nodeType&&(a+=" treeView-node-dir"),i.cssClass&&(a+=` ${i.cssClass}`);let l=N(i,n),d=void 0!==l;l&&s.append("g").attr("class","treeView-node-icon").attr("transform",`translate(${e+n.paddingX}, ${t+n.paddingY})`).html(o.get(i.id)??"");let c=s.append("text").text(i.name).attr("dominant-baseline","middle").attr("class",a),{height:h,width:p}=c.node().getBBox(),f=h+2*n.paddingY,g=e+n.paddingX+18*!!d;c.attr("x",g),c.attr("y",t+f/2);let u=g+p;return i.BBox={x:e,y:t,width:p+2*n.paddingX+18*!!d,height:f},i.cssClass?.split(/\s+/).includes("highlight")&&s.insert("rect",":first-child").attr("x",e).attr("y",t+1).attr("width",0).attr("height",f-2).attr("rx",3).attr("class","treeView-highlight-bg"),{node:i,nodeGroup:s,labelRightEdge:u,centerY:t+f/2}},"positionLabel"),L=(0,c.K)((e,t,i,r,n,o)=>e.append("line").attr("x1",t).attr("y1",i).attr("x2",r).attr("y2",n).attr("stroke-width",o).attr("class","treeView-node-line"),"positionLine"),R=(0,c.K)((e,t,i,r)=>{let n=0,o=0,s=[],a=(0,c.K)((e,t,i,a)=>{let l=a*(i.rowIndent+i.paddingX),d=X(l,n,t,e,i,r);s.push(d);let{height:c,width:h}=t.BBox;L(e,l-i.rowIndent,n+c/2,l,n+c/2,i.lineThickness),o=Math.max(o,l+h),n+=c},"drawNode"),l=(0,c.K)((t,r=0)=>{a(e,t,i,r),t.children.forEach(e=>{l(e,r+1)});let{x:n,y:o,height:s}=t.BBox;if(t.children.length){let{y:r,height:a}=t.children[t.children.length-1].BBox;L(e,n+i.paddingX,o+s,n+i.paddingX,r+a/2+i.lineThickness/2,i.lineThickness)}},"processNode");l(t);let d=s.filter(e=>e.node.description);if(d.length>0){let e=Math.max(...s.map(e=>e.labelRightEdge))+16;for(let t of d){let r=t.nodeGroup.append("text").text(t.node.description).attr("dominant-baseline","middle").attr("class","treeView-node-description").attr("x",e).attr("y",t.centerY).node().getBBox();o=Math.max(o,e+r.width+i.paddingX)}}for(let e of s)if(e.node.cssClass?.split(/\s+/).includes("highlight")){let t=e.nodeGroup.select(".treeView-highlight-bg");if(!t.empty()){let i=o-e.node.BBox.x+8;t.attr("width",i),o=Math.max(o,e.node.BBox.x+i+2)}}return{totalHeight:n,totalWidth:o}},"drawTree"),S=(0,c.K)(async(e,t,i,r)=>{d.R.debug("Rendering treeView diagram\n"+e);let n=r.db,s=n.getRoot(),a=n.getConfig(),c=(0,o.D)(t),h=c.append("g");h.attr("class","tree-view");let p=await z(s,a),{totalHeight:f,totalWidth:g}=R(h,s,a,p);c.attr("viewBox",`-${a.lineThickness/2} 0 ${g} ${f}`),(0,l.a$)(c,f,g,a.useMaxWidth)},"draw"),Y={labelFontSize:"16px",labelColor:"black",lineColor:"black",iconColor:"#546e7a",descriptionColor:"#6a9955",highlightBg:"rgba(255, 193, 7, 0.15)",highlightStroke:"#ffc107"},j={db:I,renderer:{draw:S},parser:E,styles:(0,c.K)(({treeView:e})=>{let{labelFontSize:t,labelColor:i,lineColor:r,iconColor:n,descriptionColor:o,highlightBg:s,highlightStroke:l}=(0,a.$t)(Y,e);return` - .treeView-node-label { - font-size: ${t}; - fill: ${i}; - white-space: pre; - } - .treeView-node-dir { - font-weight: bold; - } - .treeView-node-line { - stroke: ${r}; - } - .treeView-node-icon { - color: ${n}; - } - .treeView-node-description { - font-size: ${t}; - fill: ${o}; - font-style: italic; - white-space: pre; - } - .treeView-highlight-bg { - fill: ${s}; - stroke: ${l}; - stroke-width: 1; - } - `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/1491.cb46ae3f.js b/en/assets/js/1491.cb46ae3f.js new file mode 100644 index 0000000..49b05a8 --- /dev/null +++ b/en/assets/js/1491.cb46ae3f.js @@ -0,0 +1,27 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1491"],{5350(e,t,i){i.d(t,{m:()=>n});var r=i(6827),n=class{constructor(e){this.init=e,this.records=this.init()}static{(0,r.K)(this,"ImperativeState")}reset(){this.records=this.init()}}},7454(e,t,i){function r(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}i.d(t,{S:()=>r}),(0,i(6827).K)(r,"populateCommonDb")},4638(e,t,i){i.d(t,{diagram:()=>j});var r=i(5350),n=i(7454),o=i(4924),s=i(2217),a=i(6348),l=i(1177),d=i(1293),c=i(6827),h=i(8731),p=/[\u2500\u2501\u2502\u2503\u2514\u2517\u251c\u2523]/,f=/[\u2514\u2517\u251c\u2523]/,g=/[\u2500\u2501]/,u=/^[\s\u2502\u2503]+$/,w=/^\s*(title[\t ]|accTitle[\t ]*:|accDescr[\t ]*[:{])/,x=/^\s*%%/;function m(e){return e.some(e=>p.test(e))}function b(e){for(let t of e){let e=f.exec(t);if(e?.index&&e.index>0)return e.index}return 4}function y(e,t){return e.replace(/\bline\s+(\d+)\b/gi,(e,i)=>{let r=parseInt(i,10),n=t.get(r);return n?`line ${n}`:e})}function $(e){let t=e.split("\n"),i=new Map,r=-1;for(let[e,i]of t.entries())if("treeView-beta"===i.trim()){r=e;break}if(-1===r)return{text:e,lineMap:i};let n=[];for(let e=r+1;e<t.length;e++){let i=t[e];!(""===i.trim()||x.test(i)||w.test(i))&&(u.test(i)||n.push(i.replace(/\t/g," ")))}if(!m(n))return{text:e,lineMap:i};let o=b(n),s=[],a=0;for(let e=0;e<=r;e++)s.push(t[e]),a++,i.set(a,e+1);for(let e=r+1;e<t.length;e++){let r=t[e],n=r.trim(),l=e+1;if(""===n||x.test(r)||w.test(r)){s.push(r),a++,i.set(a,l);continue}if(u.test(r))continue;let d=r.replace(/\t/g," "),c=f.exec(d);if(c?.index!==void 0){let e=c.index,t=Math.round(e/o)+1,r=e+1;for(;r<d.length&&g.test(d[r]);)r++;for(;r<d.length&&" "===d[r];)r++;let n=d.slice(r).trimEnd();if(!n)throw Error(`Line ${l}: Empty node \u2014 expected a filename or directory name after the box-drawing prefix`);let h=" ".repeat(t);s.push(h+n),a++,i.set(a,l)}else if(/^[\s\u2500\u2501\u2502\u2503\u2514\u2517\u251c\u2523]+$/.test(d))continue;else if(p.test(d))s.push(r),a++,i.set(a,l);else if(/^\s+/.test(d))throw Error(`Line ${l}: Unexpected indentation without box-drawing characters. In box-drawing format, use \u251C\u2500\u2500 or \u2514\u2500\u2500 prefixes for indented nodes.`);else s.push(r),a++,i.set(a,l)}return{text:s.join("\n"),lineMap:i}}(0,c.K)(m,"isBoxDrawingFormat"),(0,c.K)(b,"inferSegmentWidth"),(0,c.K)(y,"remapErrorLines"),(0,c.K)($,"preprocessBoxDrawing");var k=new r.m(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",nodeType:"directory",children:[]}]})),K=(0,c.K)(()=>{k.reset(),(0,l.IU)()},"clear"),v=(0,c.K)(()=>k.records.stack[0],"getRoot"),V=(0,c.K)(()=>k.records.cnt,"getCount"),B=l.UI.treeView,C=(0,c.K)(()=>(0,a.$t)(B,(0,l.zj)().treeView),"getConfig"),I={clear:K,addNode:(0,c.K)((e,t,i,r,n,o)=>{for(;e<=k.records.stack[k.records.stack.length-1].level;)k.records.stack.pop();let s={id:k.records.cnt++,level:e,name:t,nodeType:i,icon:n,cssClass:r,description:o,children:[]};k.records.stack[k.records.stack.length-1].children.push(s),k.records.stack.push(s)},"addNode"),getRoot:v,getCount:V,getConfig:C,getAccTitle:l.iN,getAccDescription:l.m7,getDiagramTitle:l.ab,setAccDescription:l.EI,setAccTitle:l.SV,setDiagramTitle:l.ke},T=(0,c.K)(e=>{for(let t of((0,n.S)(e,I),e.nodes)){let e="number"==typeof t.indent?t.indent:0,i=t.name,r=i.endsWith("/");r&&(i=i.slice(0,-1));let n=r?"directory":"file",o=t.classAnnotation||void 0,s=t.iconAnnotation,a=void 0!==s?s||"none":void 0,d=t.descAnnotation||void 0,c=d?(0,l.jZ)(d,(0,l.zj)()):void 0;I.addNode(e,i,n,o,a,c)}},"populate"),D={parse:(0,c.K)(async e=>{let{text:t,lineMap:i}=$(e);try{let e=await (0,h.qg)("treeView",t);d.R.debug(e),T(e)}catch(e){throw i.size>0&&e instanceof Error&&(e.message=y(e.message,i)),e}},"parse")},A={prefix:"mermaid-treeview",height:24,width:24,icons:{folder:{body:'<path fill="currentColor" d="M10.59 4.59A2 2 0 0 0 9.17 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.17z"/>'},file:{body:'<path fill="currentColor" fill-rule="evenodd" d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.83a2 2 0 0 0-.59-1.42l-4.82-4.82A2 2 0 0 0 13.17 2H6Zm7.5 1.9l4.6 4.6h-3.6a1 1 0 0 1-1-1V3.9Z" clip-rule="evenodd"/>'}}};function E(e,t){let i=t?.filenameIcons?.[e];if(i)return i;let r=e.lastIndexOf(".");if(r>0){let i=e.substring(r).toLowerCase(),n=t?.extensionIcons;return n?.[i]??n?.[i.slice(1)]}}function M(e,t){return e.includes(":")?e:e in A.icons||!t?`${A.prefix}:${e}`:`${t}:${e}`}function N(e,t){if("none"!==e.icon){if(e.icon)return M(e.icon,t.defaultIconPack);if(t.showIcons){if("file"===e.nodeType){let i=E(e.name,t);if("none"===i)return;if(i)return M(i,t.defaultIconPack)}return`${A.prefix}:${"directory"===e.nodeType?"folder":"file"}`}}}(0,c.K)(E,"detectIcon"),(0,c.K)(M,"qualifyIcon"),(0,c.K)(N,"getNodeIcon"),(0,s.pC)([{name:A.prefix,icons:A}]);var z=(0,c.K)(async(e,t)=>{let i=[],r=(0,c.K)(e=>{let n=N(e,t);n&&i.push({icon:n,node:e}),e.children.forEach(r)},"collect");return r(e),new Map((await Promise.all(i.map(async({icon:e,node:t})=>({id:t.id,svg:await (0,s.WY)(e,{height:14,width:14})})))).map(({id:e,svg:t})=>[e,t]))},"resolveNodeIcons"),S=(0,c.K)((e,t,i,r,n,o)=>{let s=r.append("g"),a="treeView-node-label";"directory"===i.nodeType&&(a+=" treeView-node-dir"),i.cssClass&&(a+=` ${i.cssClass}`);let l=N(i,n),d=void 0!==l;l&&s.append("g").attr("class","treeView-node-icon").attr("transform",`translate(${e+n.paddingX}, ${t+n.paddingY})`).html(o.get(i.id)??"");let c=s.append("text").text(i.name).attr("dominant-baseline","middle").attr("class",a),{height:h,width:p}=c.node().getBBox(),f=h+2*n.paddingY,g=e+n.paddingX+18*!!d;c.attr("x",g),c.attr("y",t+f/2);let u=g+p;return i.BBox={x:e,y:t,width:p+2*n.paddingX+18*!!d,height:f},i.cssClass?.split(/\s+/).includes("highlight")&&s.insert("rect",":first-child").attr("x",e).attr("y",t+1).attr("width",0).attr("height",f-2).attr("rx",3).attr("class","treeView-highlight-bg"),{node:i,nodeGroup:s,labelRightEdge:u,centerY:t+f/2}},"positionLabel"),X=(0,c.K)((e,t,i,r,n,o)=>e.append("line").attr("x1",t).attr("y1",i).attr("x2",r).attr("y2",n).attr("stroke-width",o).attr("class","treeView-node-line"),"positionLine"),L=(0,c.K)((e,t,i,r)=>{let n=0,o=0,s=[],a=(0,c.K)((e,t,i,a)=>{let l=a*(i.rowIndent+i.paddingX),d=S(l,n,t,e,i,r);s.push(d);let{height:c,width:h}=t.BBox;X(e,l-i.rowIndent,n+c/2,l,n+c/2,i.lineThickness),o=Math.max(o,l+h),n+=c},"drawNode"),l=(0,c.K)((t,r=0)=>{a(e,t,i,r),t.children.forEach(e=>{l(e,r+1)});let{x:n,y:o,height:s}=t.BBox;if(t.children.length){let{y:r,height:a}=t.children[t.children.length-1].BBox;X(e,n+i.paddingX,o+s,n+i.paddingX,r+a/2+i.lineThickness/2,i.lineThickness)}},"processNode");l(t);let d=s.filter(e=>e.node.description);if(d.length>0){let e=Math.max(...s.map(e=>e.labelRightEdge))+16;for(let t of d){let r=t.nodeGroup.append("text").text(t.node.description).attr("dominant-baseline","middle").attr("class","treeView-node-description").attr("x",e).attr("y",t.centerY).node().getBBox();o=Math.max(o,e+r.width+i.paddingX)}}for(let e of s)if(e.node.cssClass?.split(/\s+/).includes("highlight")){let t=e.nodeGroup.select(".treeView-highlight-bg");if(!t.empty()){let i=o-e.node.BBox.x+8;t.attr("width",i),o=Math.max(o,e.node.BBox.x+i+2)}}return{totalHeight:n,totalWidth:o}},"drawTree"),R=(0,c.K)(async(e,t,i,r)=>{d.R.debug("Rendering treeView diagram\n"+e);let n=r.db,s=n.getRoot(),a=n.getConfig(),c=(0,o.D)(t),h=c.append("g");h.attr("class","tree-view");let p=await z(s,a),{totalHeight:f,totalWidth:g}=L(h,s,a,p);c.attr("viewBox",`-${a.lineThickness/2} 0 ${g} ${f}`),(0,l.a$)(c,f,g,a.useMaxWidth)},"draw"),Y={labelFontSize:"16px",labelColor:"black",lineColor:"black",iconColor:"#546e7a",descriptionColor:"#6a9955",highlightBg:"rgba(255, 193, 7, 0.15)",highlightStroke:"#ffc107"},j={db:I,renderer:{draw:R},parser:D,styles:(0,c.K)(({treeView:e})=>{let{labelFontSize:t,labelColor:i,lineColor:r,iconColor:n,descriptionColor:o,highlightBg:s,highlightStroke:l}=(0,a.$t)(Y,e);return` + .treeView-node-label { + font-size: ${t}; + fill: ${i}; + white-space: pre; + } + .treeView-node-dir { + font-weight: bold; + } + .treeView-node-line { + stroke: ${r}; + } + .treeView-node-icon { + color: ${n}; + } + .treeView-node-description { + font-size: ${t}; + fill: ${o}; + font-style: italic; + white-space: pre; + } + .treeView-highlight-bg { + fill: ${s}; + stroke: ${l}; + stroke-width: 1; + } + `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/1a0052a3.183e63f0.js b/en/assets/js/1a0052a3.183e63f0.js new file mode 100644 index 0000000..56cbccd --- /dev/null +++ b/en/assets/js/1a0052a3.183e63f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1389"],{6185(e,r,a){a.r(r),a.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>i,contentTitle:()=>o,toc:()=>c,assets:()=>l});var t=JSON.parse('{"id":"core/parameter-compile","title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/en/docs/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/parameter-compile.md","tags":[],"version":"1.0","sidebarPosition":6,"frontMatter":{"title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","sidebar_label":"Parameter Extraction","sidebar_position":6},"sidebar":"docs","previous":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/core/function-parse"},"next":{"title":"Contributing","permalink":"/SqlParserX/en/docs/contributing"}}'),n=a(4848),s=a(8453);let i={title:"Parameter Extraction and Prepared SQL",description:"Extract dynamic SELECT parameters and build JDBC prepared SQL",sidebar_label:"Parameter Extraction",sidebar_position:6},o="Parameter Extraction and Prepared SQL",l={},c=[];function d(e){let r={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"parameter-extraction-and-prepared-sql",children:"Parameter Extraction and Prepared SQL"})}),"\n",(0,n.jsxs)(r.p,{children:["SqlParserX extracts ",(0,n.jsx)(r.code,{children:"${variable}"})," expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ",(0,n.jsx)(r.code,{children:"?"})," placeholders and an ordered binding list."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\n\nMap<String, Object> values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,n.jsx)(r.p,{children:"The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined."})]})}function p(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453(e,r,a){a.d(r,{R:()=>i,x:()=>o});var t=a(6540);let n={},s=t.createContext(n);function i(e){let r=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1f5cb825.cbb867bf.js b/en/assets/js/1f5cb825.cbb867bf.js new file mode 100644 index 0000000..f35d75e --- /dev/null +++ b/en/assets/js/1f5cb825.cbb867bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4684"],{8607(e,t,r){r.r(t),r.d(t,{metadata:()=>n,default:()=>d,frontMatter:()=>a,contentTitle:()=>o,toc:()=>l,assets:()=>c});var n=JSON.parse('{"id":"core/sql-type","title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/en/docs/next/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/sql-type.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","sidebar_label":"SQL Type Detection","sidebar_position":1},"sidebar":"docs","previous":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/next/quickstart/setup"},"next":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage"}}'),s=r(4848),i=r(8453);let a={title:"SQL Type Detection",description:"Detect the business SQL type from the parsed syntax tree",sidebar_label:"SQL Type Detection",sidebar_position:1},o="SQL Type Detection",c={},l=[];function p(e){let t={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"sql-type-detection",children:"SQL Type Detection"})}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"parseSqlType"})," parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified ",(0,s.jsx)(t.code,{children:"SqlType"}),". It can drive statement routing, audit classification, and execution policies."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,s.jsxs)(t.p,{children:["The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns ",(0,s.jsx)(t.code,{children:"OTHER"}),"; syntax support still depends on the selected dialect."]})]})}function d(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453(e,t,r){r.d(t,{R:()=>a,x:()=>o});var n=r(6540);let s={},i=n.createContext(s);function a(e){let t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/2881.c311ece9.js b/en/assets/js/2881.c311ece9.js deleted file mode 100644 index 197168e..0000000 --- a/en/assets/js/2881.c311ece9.js +++ /dev/null @@ -1,77 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2881"],{5448(t,e,a){a.d(e,{diagram:()=>B});var r=a(7454),o=a(4924),n=a(6348),i=a(1177),l=a(1293),s=a(6827),d=a(8731),c=(0,s.K)((t,e)=>{let a=t<=1?100*t:t;if(a<0||a>100)throw Error(`${e} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${t}`);return a},"toPercent"),p=(0,s.K)((t,e,a)=>({x:c(e,`${a} evolution`),y:c(t,`${a} visibility`)}),"toCoordinates"),h=(0,s.K)(t=>{if(t){if("+<>"===t)return"bidirectional";if("+<"===t)return"backward";if("+>"===t)return"forward"}},"getFlowFromPort"),x=(0,s.K)(t=>{if(!t?.startsWith("+"))return{};let e=/^\+'([^']*)'/.exec(t),a=e?.[1];return t.includes("<>")?{flow:"bidirectional",label:a}:t.includes("<")?{flow:"backward",label:a}:t.includes(">")?{flow:"forward",label:a}:{label:a}},"extractFlowFromArrow"),y=(0,s.K)((t,e)=>{if((0,r.S)(t,e),t.size&&e.setSize(t.size.width,t.size.height),t.evolution){let a=t.evolution.stages.map(t=>t.secondName?`${t.name.trim()} / ${t.secondName.trim()}`:t.name.trim()),r=t.evolution.stages.filter(t=>void 0!==t.boundary).map(t=>t.boundary);e.updateAxes({stages:a,stageBoundaries:r})}if(t.anchors.forEach(t=>{let a=p(t.visibility,t.evolution,`Anchor "${t.name}"`);e.addNode(t.name,t.name,a.x,a.y,"anchor")}),t.components.forEach(t=>{let a=p(t.visibility,t.evolution,`Component "${t.name}"`),r=t.label?(t.label.negX?-1:1)*t.label.offsetX:void 0,o=t.label?(t.label.negY?-1:1)*t.label.offsetY:void 0,n=t.decorator?.strategy;e.addNode(t.name,t.name,a.x,a.y,"component",r,o,t.inertia,n)}),t.notes.forEach(t=>{let a=p(t.visibility,t.evolution,`Note "${t.text}"`);e.addNote(t.text,a.x,a.y)}),t.pipelines.forEach(t=>{let a=e.getNode(t.parent);if(!a||"number"!=typeof a.y)throw Error(`Pipeline "${t.parent}" must reference an existing component with coordinates.`);let r=a.y;e.startPipeline(t.parent),t.components.forEach(a=>{let o=`${t.parent}_${a.name}`,n=a.label?(a.label.negX?-1:1)*a.label.offsetX:void 0,i=a.label?(a.label.negY?-1:1)*a.label.offsetY:void 0,l=c(a.evolution,`Pipeline component "${a.name}" evolution`);e.addNode(o,a.name,l,r,"pipeline-component",n,i),e.addPipelineComponent(t.parent,o)})}),t.links.forEach(t=>{let a=!!t.arrow&&(t.arrow.includes("-.->")||t.arrow.includes(".-.")),r=h(t.fromPort)??h(t.toPort),{flow:o,label:n}=x(t.arrow);!r&&o&&(r=o);let i=t.linkLabel;e.addLink(e.resolveNodeId(t.from),e.resolveNodeId(t.to),a,n??i,r)}),t.evolves.forEach(t=>{let a=e.getNode(t.component);if(a?.y!==void 0){let r=c(t.target,`Evolve target for "${t.component}"`);e.addTrend(t.component,r,a.y)}}),t.annotations.length>0){let a=t.annotations[0],r=p(a.x,a.y,"Annotations box");e.setAnnotationsBox(r.x,r.y)}t.annotation.forEach(t=>{let a=p(t.x,t.y,`Annotation ${t.number}`);e.addAnnotation(t.number,[{x:a.x,y:a.y}],t.text)}),t.accelerators.forEach(t=>{let a=p(t.x,t.y,`Accelerator "${t.name}"`);e.addAccelerator(t.name,a.x,a.y)}),t.deaccelerators.forEach(t=>{let a=p(t.x,t.y,`Deaccelerator "${t.name}"`);e.addDeaccelerator(t.name,a.x,a.y)})},"populateDb"),f={parser:{yy:void 0},parse:(0,s.K)(async t=>{let e=await (0,d.qg)("wardley",t);l.R.debug(e);let a=f.parser?.yy;if(!a||"function"!=typeof a.addNode)throw Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");y(e,a)},"parse")},g=new class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{(0,s.K)(this,"WardleyBuilder")}addNode(t){let e=this.nodes.get(t.id)??{id:t.id,label:t.label},a={...e,...t,className:t.className??e.className,labelOffsetX:t.labelOffsetX??e.labelOffsetX,labelOffsetY:t.labelOffsetY??e.labelOffsetY};this.nodes.set(t.id,a)}addLink(t){this.links.push(t)}addTrend(t){this.trends.set(t.nodeId,t)}startPipeline(t){this.pipelines.set(t,{nodeId:t,componentIds:[]});let e=this.nodes.get(t);e&&(e.isPipelineParent=!0)}addPipelineComponent(t,e){let a=this.pipelines.get(t);a&&a.componentIds.push(e);let r=this.nodes.get(e);r&&(r.inPipeline=!0)}addAnnotation(t){this.annotations.push(t)}addNote(t){this.notes.push(t)}addAccelerator(t){this.accelerators.push(t)}addDeaccelerator(t){this.deaccelerators.push(t)}setAnnotationsBox(t,e){this.annotationsBox={x:t,y:e}}setAxes(t){this.axes={...this.axes,...t}}setSize(t,e){this.size={width:t,height:e}}getNode(t){return this.nodes.get(t)}resolveNodeId(t){if(this.nodes.has(t))return t;for(let[e,a]of this.nodes)if(a.label===t)return e;return t}build(){let t=[];for(let e of this.nodes.values()){if("number"!=typeof e.x||"number"!=typeof e.y)throw Error(`Node "${e.label}" is missing coordinates`);t.push(e)}return{nodes:t,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}};function u(){return(0,i.D7)()["wardley-beta"]}function w(t,e,a,r,o,n,i,l,s){g.addNode({id:t,label:e,x:a,y:r,className:o,labelOffsetX:n,labelOffsetY:i,inertia:l,sourceStrategy:s})}function k(t,e,a=!1,r,o){g.addLink({source:t,target:e,dashed:a,label:r,flow:o})}function m(t,e,a){g.addTrend({nodeId:t,targetX:e,targetY:a})}function b(t,e,a){g.addAnnotation({number:t,coordinates:e,text:a})}function $(t,e,a){g.addNote({text:t,x:e,y:a})}function S(t,e,a){g.addAccelerator({name:t,x:e,y:a})}function v(t,e,a){g.addDeaccelerator({name:t,x:e,y:a})}function M(t,e){g.setAnnotationsBox(t,e)}function C(t,e){g.setSize(t,e)}function P(t){g.startPipeline(t)}function N(t,e){g.addPipelineComponent(t,e)}function z(t){g.setAxes(t)}function T(t){return g.getNode(t)}function L(t){return g.resolveNodeId(t)}function E(){return g.build()}function A(){g.clear(),(0,i.IU)()}(0,s.K)(u,"getConfig"),(0,s.K)(w,"addNode"),(0,s.K)(k,"addLink"),(0,s.K)(m,"addTrend"),(0,s.K)(b,"addAnnotation"),(0,s.K)($,"addNote"),(0,s.K)(S,"addAccelerator"),(0,s.K)(v,"addDeaccelerator"),(0,s.K)(M,"setAnnotationsBox"),(0,s.K)(C,"setSize"),(0,s.K)(P,"startPipeline"),(0,s.K)(N,"addPipelineComponent"),(0,s.K)(z,"updateAxes"),(0,s.K)(T,"getNode"),(0,s.K)(L,"resolveNodeId"),(0,s.K)(E,"getWardleyData"),(0,s.K)(A,"clear");var I={getConfig:u,addNode:w,addLink:k,addTrend:m,addAnnotation:b,addNote:$,addAccelerator:S,addDeaccelerator:v,setAnnotationsBox:M,setSize:C,startPipeline:P,addPipelineComponent:N,updateAxes:z,getNode:T,resolveNodeId:L,getWardleyData:E,clear:A,setAccTitle:i.SV,getAccTitle:i.iN,setDiagramTitle:i.ke,getDiagramTitle:i.ab,getAccDescription:i.m7,setAccDescription:i.EI},K=["Genesis","Custom Built","Product","Commodity"],R=(0,s.K)(()=>{let{themeVariables:t}=(0,i.D7)();return{backgroundColor:t.wardley?.backgroundColor??t.background??"#fff",axisColor:t.wardley?.axisColor??"#000",axisTextColor:t.wardley?.axisTextColor??t.primaryTextColor??"#222",gridColor:t.wardley?.gridColor??"rgba(100, 100, 100, 0.2)",componentFill:t.wardley?.componentFill??"#fff",componentStroke:t.wardley?.componentStroke??"#000",componentLabelColor:t.wardley?.componentLabelColor??t.primaryTextColor??"#222",linkStroke:t.wardley?.linkStroke??"#000",evolutionStroke:t.wardley?.evolutionStroke??"#dc3545",annotationStroke:t.wardley?.annotationStroke??"#000",annotationTextColor:t.wardley?.annotationTextColor??t.primaryTextColor??"#222",annotationFill:t.wardley?.annotationFill??t.background??"#fff"}},"getTheme"),F=(0,s.K)(()=>{let t=(0,i.D7)()["wardley-beta"];return{width:t?.width??900,height:t?.height??600,padding:t?.padding??48,nodeRadius:t?.nodeRadius??6,nodeLabelOffset:t?.nodeLabelOffset??8,axisFontSize:t?.axisFontSize??12,labelFontSize:t?.labelFontSize??10,showGrid:t?.showGrid??!1,useMaxWidth:t?.useMaxWidth??!0}},"getConfigValues"),B={parser:f,db:I,renderer:{draw:(0,s.K)((t,e,a,r)=>{l.R.debug("Rendering Wardley map\n"+t);let n=F(),d=R(),c=1.6*n.nodeRadius,p=r.db,h=p.getWardleyData(),x=p.getDiagramTitle(),y=h.size?.width??n.width,f=h.size?.height??n.height,g=(0,o.D)(e);g.selectAll("*").remove(),(0,i.a$)(g,f,y,n.useMaxWidth),g.attr("viewBox",`0 0 ${y} ${f}`);let u=g.append("g").attr("class","wardley-map"),w=g.append("defs");w.append("marker").attr("id",`arrow-${e}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.evolutionStroke).attr("stroke","none"),w.append("marker").attr("id",`link-arrow-end-${e}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.linkStroke).attr("stroke","none"),w.append("marker").attr("id",`link-arrow-start-${e}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",d.linkStroke).attr("stroke","none"),u.append("rect").attr("class","wardley-background").attr("width",y).attr("height",f).attr("fill",d.backgroundColor);let k=y-2*n.padding,m=f-2*n.padding;x&&u.append("text").attr("class","wardley-title").attr("x",y/2).attr("y",n.padding/2).attr("fill",d.axisTextColor).attr("font-size",1.05*n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(x);let b=(0,s.K)(t=>n.padding+t/100*k,"projectX"),$=(0,s.K)(t=>f-n.padding-t/100*m,"projectY"),S=u.append("g").attr("class","wardley-axes");S.append("line").attr("x1",n.padding).attr("x2",y-n.padding).attr("y1",f-n.padding).attr("y2",f-n.padding).attr("stroke",d.axisColor).attr("stroke-width",1),S.append("line").attr("x1",n.padding).attr("x2",n.padding).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",d.axisColor).attr("stroke-width",1);let v=h.axes.xLabel??"Evolution",M=h.axes.yLabel??"Visibility";S.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",n.padding+k/2).attr("y",f-n.padding/4).attr("fill",d.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(v),S.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",n.padding/3).attr("y",n.padding+m/2).attr("fill",d.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${n.padding/3} ${n.padding+m/2})`).text(M);let C=h.axes.stages&&h.axes.stages.length>0?h.axes.stages:K;if(C.length>0){let t=u.append("g").attr("class","wardley-stages"),e=h.axes.stageBoundaries,a=[];if(e&&e.length===C.length){let t=0;e.forEach(e=>{a.push({start:t,end:e}),t=e})}else{let t=1/C.length;C.forEach((e,r)=>{a.push({start:r*t,end:(r+1)*t})})}C.forEach((e,r)=>{let o=a[r],i=n.padding+o.start*k,l=(i+(n.padding+o.end*k))/2;r>0&&t.append("line").attr("x1",i).attr("x2",i).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),t.append("text").attr("class","wardley-stage-label").attr("x",l).attr("y",f-n.padding/1.5).attr("fill",d.axisTextColor).attr("font-size",n.axisFontSize-2).attr("text-anchor","middle").text(e)})}if(n.showGrid){let t=u.append("g").attr("class","wardley-grid");for(let e=1;e<4;e++){let a=e/4,r=n.padding+k*a;t.append("line").attr("x1",r).attr("x2",r).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6"),t.append("line").attr("x1",n.padding).attr("x2",y-n.padding).attr("y1",f-n.padding-m*a).attr("y2",f-n.padding-m*a).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6")}}let P=new Map;if(h.nodes.forEach(t=>{P.set(t.id,{x:b(t.x),y:$(t.y),node:t})}),h.pipelines.length>0){let t=u.append("g").attr("class","wardley-pipelines"),e=u.append("g").attr("class","wardley-pipeline-links");h.pipelines.forEach(a=>{if(0===a.componentIds.length)return;let r=a.componentIds.map(t=>({id:t,pos:P.get(t),node:h.nodes.find(e=>e.id===t)})).filter(t=>t.pos&&t.node).sort((t,e)=>t.node.x-e.node.x);for(let t=0;t<r.length-1;t++){let a=r[t],o=r[t+1];e.append("line").attr("class","wardley-pipeline-evolution-link").attr("x1",a.pos.x).attr("y1",a.pos.y).attr("x2",o.pos.x).attr("y2",o.pos.y).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4")}let o=1/0,i=-1/0,l=0;if(a.componentIds.forEach(t=>{let e=P.get(t);e&&(o=Math.min(o,e.x),i=Math.max(i,e.x),l=e.y)}),o!==1/0&&i!==-1/0){let e=4*n.nodeRadius,r=l-e/2,s=P.get(a.nodeId);s&&(s.x=(o+i)/2,s.y=r-c/6),t.append("rect").attr("class","wardley-pipeline-box").attr("x",o-15).attr("y",r).attr("width",i-o+30).attr("height",e).attr("fill","none").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}let N=u.append("g").attr("class","wardley-links"),z=new Map;h.pipelines.forEach(t=>{z.set(t.nodeId,new Set(t.componentIds))});let T=h.links.filter(t=>{if(!P.has(t.source)||!P.has(t.target))return!1;let e=z.get(t.target);return!e?.has(t.source)});N.selectAll("line").data(T).enter().append("line").attr("class",t=>`wardley-link${t.dashed?" wardley-link--dashed":""}`).attr("x1",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.source).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=a.x-e.x,i=a.y-e.y,l=Math.sqrt(o*o+i*i);return e.x+o/l*r}).attr("y1",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.source).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=a.x-e.x,i=a.y-e.y,l=Math.sqrt(o*o+i*i);return e.y+i/l*r}).attr("x2",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.target).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=e.x-a.x,i=e.y-a.y,l=Math.sqrt(o*o+i*i);return a.x+o/l*r}).attr("y2",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.target).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=e.x-a.x,i=e.y-a.y,l=Math.sqrt(o*o+i*i);return a.y+i/l*r}).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",t=>t.dashed?"6 6":null).attr("marker-end",t=>"forward"===t.flow||"bidirectional"===t.flow?`url(#link-arrow-end-${e})`:null).attr("marker-start",t=>"backward"===t.flow||"bidirectional"===t.flow?`url(#link-arrow-start-${e})`:null),N.selectAll("text").data(T.filter(t=>t.label)).enter().append("text").attr("class","wardley-link-label").attr("x",t=>{let e=P.get(t.source),a=P.get(t.target),r=(e.x+a.x)/2,o=a.y-e.y,n=a.x-e.x,i=Math.sqrt(n*n+o*o);return r+o/i*8}).attr("y",t=>{let e=P.get(t.source),a=P.get(t.target),r=(e.y+a.y)/2,o=a.x-e.x,n=a.y-e.y,i=Math.sqrt(o*o+n*n);return r+-o/i*8}).attr("fill",d.axisTextColor).attr("font-size",n.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",t=>{let e=P.get(t.source),a=P.get(t.target),r=(e.x+a.x)/2,o=(e.y+a.y)/2,n=a.x-e.x,i=a.y-e.y,l=Math.sqrt(n*n+i*i),s=180*Math.atan2(i,n)/Math.PI;return(s>90||s<-90)&&(s+=180),`rotate(${s} ${r+i/l*8} ${o+-n/l*8})`}).text(t=>t.label);let L=u.append("g").attr("class","wardley-trends"),E=h.trends.map(t=>{let e=P.get(t.nodeId);if(!e)return null;let a=b(t.targetX),r=$(t.targetY),o=a-e.x,i=r-e.y,l=Math.sqrt(o*o+i*i),s=n.nodeRadius+2;return{origin:e,targetX:a,targetY:r,adjustedX2:l>s?a-o/l*s:a,adjustedY2:l>s?r-i/l*s:r}}).filter(t=>null!==t);L.selectAll("line").data(E).enter().append("line").attr("class","wardley-trend").attr("x1",t=>t.origin.x).attr("y1",t=>t.origin.y).attr("x2",t=>t.adjustedX2).attr("y2",t=>t.adjustedY2).attr("stroke",d.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${e})`);let A=u.append("g").attr("class","wardley-nodes").selectAll("g").data(h.nodes).enter().append("g").attr("class",t=>["wardley-node",t.className?`wardley-node--${t.className}`:""].filter(Boolean).join(" "));A.filter(t=>"outsource"===t.sourceStrategy).append("circle").attr("class","wardley-outsource-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","#666").attr("stroke",d.componentStroke).attr("stroke-width",1),A.filter(t=>"buy"===t.sourceStrategy).append("circle").attr("class","wardley-buy-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","#ccc").attr("stroke",d.componentStroke).attr("stroke-width",1),A.filter(t=>"build"===t.sourceStrategy).append("circle").attr("class","wardley-build-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);let I=A.filter(t=>"market"===t.sourceStrategy);I.append("circle").attr("class","wardley-market-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),A.filter(t=>!t.isPipelineParent&&"market"!==t.sourceStrategy&&"anchor"!==t.className).append("circle").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",n.nodeRadius).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1);let B=.7*n.nodeRadius,D=1.2*n.nodeRadius;if(I.append("line").attr("class","wardley-market-line").attr("x1",t=>P.get(t.id).x).attr("y1",t=>P.get(t.id).y-D).attr("x2",t=>P.get(t.id).x-D*Math.cos(Math.PI/6)).attr("y2",t=>P.get(t.id).y+D*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),I.append("line").attr("class","wardley-market-line").attr("x1",t=>P.get(t.id).x-D*Math.cos(Math.PI/6)).attr("y1",t=>P.get(t.id).y+D*Math.sin(Math.PI/6)).attr("x2",t=>P.get(t.id).x+D*Math.cos(Math.PI/6)).attr("y2",t=>P.get(t.id).y+D*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),I.append("line").attr("class","wardley-market-line").attr("x1",t=>P.get(t.id).x+D*Math.cos(Math.PI/6)).attr("y1",t=>P.get(t.id).y+D*Math.sin(Math.PI/6)).attr("x2",t=>P.get(t.id).x).attr("y2",t=>P.get(t.id).y-D).attr("stroke",d.componentStroke).attr("stroke-width",1),I.append("circle").attr("class","wardley-market-dot").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y-D).attr("r",B).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),I.append("circle").attr("class","wardley-market-dot").attr("cx",t=>P.get(t.id).x-D*Math.cos(Math.PI/6)).attr("cy",t=>P.get(t.id).y+D*Math.sin(Math.PI/6)).attr("r",B).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),I.append("circle").attr("class","wardley-market-dot").attr("cx",t=>P.get(t.id).x+D*Math.cos(Math.PI/6)).attr("cy",t=>P.get(t.id).y+D*Math.sin(Math.PI/6)).attr("r",B).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),A.filter(t=>!0===t.isPipelineParent).append("rect").attr("x",t=>P.get(t.id).x-c/2).attr("y",t=>P.get(t.id).y-c/2).attr("width",c).attr("height",c).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1),A.filter(t=>!0===t.inertia).append("line").attr("class","wardley-inertia").attr("x1",t=>{let e=P.get(t.id),a=t.isPipelineParent?c/2+15:n.nodeRadius+15;return t.sourceStrategy&&(a+=n.nodeRadius+10),e.x+a}).attr("y1",t=>{let e=P.get(t.id),a=t.isPipelineParent?c:2*n.nodeRadius;return e.y-a/2}).attr("x2",t=>{let e=P.get(t.id),a=t.isPipelineParent?c/2+15:n.nodeRadius+15;return t.sourceStrategy&&(a+=n.nodeRadius+10),e.x+a}).attr("y2",t=>{let e=P.get(t.id),a=t.isPipelineParent?c:2*n.nodeRadius;return e.y+a/2}).attr("stroke",d.componentStroke).attr("stroke-width",6),A.append("text").attr("x",t=>{let e=P.get(t.id);if("anchor"===t.className)return void 0!==t.labelOffsetX?e.x+t.labelOffsetX:e.x;let a=n.nodeLabelOffset;t.sourceStrategy&&void 0===t.labelOffsetX&&(a+=10);let r=t.labelOffsetX??a;return e.x+r}).attr("y",t=>{let e=P.get(t.id);if("anchor"===t.className)return void 0!==t.labelOffsetY?e.y+t.labelOffsetY:e.y-3;let a=-n.nodeLabelOffset;t.sourceStrategy&&void 0===t.labelOffsetY&&(a-=10);let r=t.labelOffsetY??a;return e.y+r}).attr("class","wardley-node-label").attr("fill",t=>"evolved"===t.className?d.evolutionStroke:"anchor"===t.className?"#000":d.componentLabelColor).attr("font-size",n.labelFontSize).attr("font-weight",t=>"anchor"===t.className?"bold":"normal").attr("text-anchor",t=>"anchor"===t.className?"middle":"start").attr("dominant-baseline",t=>"anchor"===t.className?"middle":"auto").text(t=>t.label),h.annotations.length>0){let t=u.append("g").attr("class","wardley-annotations");if(h.annotations.forEach(e=>{let a=e.coordinates.map(t=>({x:b(t.x),y:$(t.y)}));if(a.length>1)for(let e=0;e<a.length-1;e++)t.append("line").attr("class","wardley-annotation-line").attr("x1",a[e].x).attr("y1",a[e].y).attr("x2",a[e+1].x).attr("y2",a[e+1].y).attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("stroke-dasharray","4 4");a.forEach(a=>{let r=t.append("g").attr("class","wardley-annotation");r.append("circle").attr("cx",a.x).attr("cy",a.y).attr("r",10).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5),r.append("text").attr("x",a.x).attr("y",a.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.number)})}),h.annotationsBox){let e=b(h.annotationsBox.x),a=$(h.annotationsBox.y),r=t.append("g").attr("class","wardley-annotations-box"),o=[...h.annotations].filter(t=>t.text).sort((t,e)=>t.number-e.number),i=[];if(o.forEach((t,o)=>{let n=r.append("text").attr("x",e+10).attr("y",a+10+(o+1)*16).attr("font-size",11).attr("fill",d.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${t.number}. ${t.text}`);i.push(n)}),i.length>0){let t=0,l=0;i.forEach(e=>{let a=e.node(),r=a.getComputedTextLength();t=Math.max(t,r);let o=a.getBBox();l=Math.max(l,o.height)});let s=t+20+105,c=16*o.length+20+l/2,p=n.padding,h=y-n.padding-s,x=n.padding,g=f-n.padding-c;e=Math.max(p,Math.min(e,h)),a=Math.max(x,Math.min(a,g)),i.forEach((t,r)=>{t.attr("x",e+10).attr("y",a+10+(r+1)*16)}),r.insert("rect","text").attr("x",e).attr("y",a).attr("width",s).attr("height",c).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(h.notes.length>0){let t=u.append("g").attr("class","wardley-notes");h.notes.forEach(e=>{let a=b(e.x),r=$(e.y);t.append("text").attr("x",a).attr("y",r).attr("text-anchor","start").attr("font-size",11).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.text)})}if(h.accelerators.length>0){let t=u.append("g").attr("class","wardley-accelerators");h.accelerators.forEach(e=>{let a=b(e.x),r=$(e.y),o=` - M ${a} ${r-15} - L ${a+60-20} ${r-15} - L ${a+60-20} ${r-15-8} - L ${a+60} ${r} - L ${a+60-20} ${r+15+8} - L ${a+60-20} ${r+15} - L ${a} ${r+15} - Z - `;t.append("path").attr("d",o).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),t.append("text").attr("x",a+30).attr("y",r+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.name)})}if(h.deaccelerators.length>0){let t=u.append("g").attr("class","wardley-deaccelerators");h.deaccelerators.forEach(e=>{let a=b(e.x),r=$(e.y),o=` - M ${a+60} ${r-15} - L ${a+20} ${r-15} - L ${a+20} ${r-15-8} - L ${a} ${r} - L ${a+20} ${r+15+8} - L ${a+20} ${r+15} - L ${a+60} ${r+15} - Z - `;t.append("path").attr("d",o).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),t.append("text").attr("x",a+30).attr("y",r+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.name)})}},"draw")},styles:(0,s.K)(({wardley:t}={})=>{let e=(0,i.P$)(),a=(0,i.zj)(),r=(0,n.$t)(e,a.themeVariables),o=(0,n.$t)(r.wardley,t);return` - .wardley-background { - fill: ${o.backgroundColor}; - } - .wardley-axes line, .wardley-axes path { - stroke: ${o.axisColor}; - } - .wardley-axis-label { - fill: ${o.axisTextColor}; - } - .wardley-stage-label { - fill: ${o.axisTextColor}; - } - .wardley-grid line { - stroke: ${o.gridColor}; - } - .wardley-node circle { - fill: ${o.componentFill}; - stroke: ${o.componentStroke}; - } - .wardley-node-label { - fill: ${o.componentLabelColor}; - } - .wardley-link { - stroke: ${o.linkStroke}; - } - .wardley-link--dashed { - stroke-dasharray: 4 4; - } - .wardley-link-label { - fill: ${o.axisTextColor}; - } - .wardley-trend line { - stroke: ${o.evolutionStroke}; - } - .wardley-annotation-line { - stroke: ${o.annotationStroke}; - } - .wardley-annotation circle { - fill: ${o.annotationFill}; - stroke: ${o.annotationStroke}; - } - .wardley-annotation text { - fill: ${o.annotationTextColor}; - } - .wardley-annotations-box rect { - fill: ${o.annotationFill}; - stroke: ${o.annotationStroke}; - } - .wardley-annotations-box text { - fill: ${o.annotationTextColor}; - } - .wardley-pipeline-box { - stroke: ${o.componentStroke}; - } - .wardley-notes text { - fill: ${o.axisTextColor}; - } - `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/2881.cdbfd8a4.js b/en/assets/js/2881.cdbfd8a4.js new file mode 100644 index 0000000..44a6e2d --- /dev/null +++ b/en/assets/js/2881.cdbfd8a4.js @@ -0,0 +1,77 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2881"],{7454(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(6827).K)(r,"populateCommonDb")},5448(t,e,a){a.d(e,{diagram:()=>F});var r=a(7454),o=a(4924),n=a(6348),i=a(1177),l=a(1293),s=a(6827),d=a(8731),c=(0,s.K)((t,e)=>{let a=t<=1?100*t:t;if(a<0||a>100)throw Error(`${e} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${t}`);return a},"toPercent"),p=(0,s.K)((t,e,a)=>({x:c(e,`${a} evolution`),y:c(t,`${a} visibility`)}),"toCoordinates"),h=(0,s.K)(t=>{if(t){if("+<>"===t)return"bidirectional";if("+<"===t)return"backward";if("+>"===t)return"forward"}},"getFlowFromPort"),x=(0,s.K)(t=>{if(!t?.startsWith("+"))return{};let e=/^\+'([^']*)'/.exec(t),a=e?.[1];return t.includes("<>")?{flow:"bidirectional",label:a}:t.includes("<")?{flow:"backward",label:a}:t.includes(">")?{flow:"forward",label:a}:{label:a}},"extractFlowFromArrow"),y=(0,s.K)((t,e)=>{if((0,r.S)(t,e),t.size&&e.setSize(t.size.width,t.size.height),t.evolution){let a=t.evolution.stages.map(t=>t.secondName?`${t.name.trim()} / ${t.secondName.trim()}`:t.name.trim()),r=t.evolution.stages.filter(t=>void 0!==t.boundary).map(t=>t.boundary);e.updateAxes({stages:a,stageBoundaries:r})}if(t.anchors.forEach(t=>{let a=p(t.visibility,t.evolution,`Anchor "${t.name}"`);e.addNode(t.name,t.name,a.x,a.y,"anchor")}),t.components.forEach(t=>{let a=p(t.visibility,t.evolution,`Component "${t.name}"`),r=t.label?(t.label.negX?-1:1)*t.label.offsetX:void 0,o=t.label?(t.label.negY?-1:1)*t.label.offsetY:void 0,n=t.decorator?.strategy;e.addNode(t.name,t.name,a.x,a.y,"component",r,o,t.inertia,n)}),t.notes.forEach(t=>{let a=p(t.visibility,t.evolution,`Note "${t.text}"`);e.addNote(t.text,a.x,a.y)}),t.pipelines.forEach(t=>{let a=e.getNode(t.parent);if(!a||"number"!=typeof a.y)throw Error(`Pipeline "${t.parent}" must reference an existing component with coordinates.`);let r=a.y;e.startPipeline(t.parent),t.components.forEach(a=>{let o=`${t.parent}_${a.name}`,n=a.label?(a.label.negX?-1:1)*a.label.offsetX:void 0,i=a.label?(a.label.negY?-1:1)*a.label.offsetY:void 0,l=c(a.evolution,`Pipeline component "${a.name}" evolution`);e.addNode(o,a.name,l,r,"pipeline-component",n,i),e.addPipelineComponent(t.parent,o)})}),t.links.forEach(t=>{let a=!!t.arrow&&(t.arrow.includes("-.->")||t.arrow.includes(".-.")),r=h(t.fromPort)??h(t.toPort),{flow:o,label:n}=x(t.arrow);!r&&o&&(r=o);let i=t.linkLabel;e.addLink(e.resolveNodeId(t.from),e.resolveNodeId(t.to),a,n??i,r)}),t.evolves.forEach(t=>{let a=e.getNode(t.component);if(a?.y!==void 0){let r=c(t.target,`Evolve target for "${t.component}"`);e.addTrend(t.component,r,a.y)}}),t.annotations.length>0){let a=t.annotations[0],r=p(a.x,a.y,"Annotations box");e.setAnnotationsBox(r.x,r.y)}t.annotation.forEach(t=>{let a=p(t.x,t.y,`Annotation ${t.number}`);e.addAnnotation(t.number,[{x:a.x,y:a.y}],t.text)}),t.accelerators.forEach(t=>{let a=p(t.x,t.y,`Accelerator "${t.name}"`);e.addAccelerator(t.name,a.x,a.y)}),t.deaccelerators.forEach(t=>{let a=p(t.x,t.y,`Deaccelerator "${t.name}"`);e.addDeaccelerator(t.name,a.x,a.y)})},"populateDb"),f={parser:{yy:void 0},parse:(0,s.K)(async t=>{let e=await (0,d.qg)("wardley",t);l.R.debug(e);let a=f.parser?.yy;if(!a||"function"!=typeof a.addNode)throw Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");y(e,a)},"parse")},g=new class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{(0,s.K)(this,"WardleyBuilder")}addNode(t){let e=this.nodes.get(t.id)??{id:t.id,label:t.label},a={...e,...t,className:t.className??e.className,labelOffsetX:t.labelOffsetX??e.labelOffsetX,labelOffsetY:t.labelOffsetY??e.labelOffsetY};this.nodes.set(t.id,a)}addLink(t){this.links.push(t)}addTrend(t){this.trends.set(t.nodeId,t)}startPipeline(t){this.pipelines.set(t,{nodeId:t,componentIds:[]});let e=this.nodes.get(t);e&&(e.isPipelineParent=!0)}addPipelineComponent(t,e){let a=this.pipelines.get(t);a&&a.componentIds.push(e);let r=this.nodes.get(e);r&&(r.inPipeline=!0)}addAnnotation(t){this.annotations.push(t)}addNote(t){this.notes.push(t)}addAccelerator(t){this.accelerators.push(t)}addDeaccelerator(t){this.deaccelerators.push(t)}setAnnotationsBox(t,e){this.annotationsBox={x:t,y:e}}setAxes(t){this.axes={...this.axes,...t}}setSize(t,e){this.size={width:t,height:e}}getNode(t){return this.nodes.get(t)}resolveNodeId(t){if(this.nodes.has(t))return t;for(let[e,a]of this.nodes)if(a.label===t)return e;return t}build(){let t=[];for(let e of this.nodes.values()){if("number"!=typeof e.x||"number"!=typeof e.y)throw Error(`Node "${e.label}" is missing coordinates`);t.push(e)}return{nodes:t,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}};function u(){return(0,i.D7)()["wardley-beta"]}function w(t,e,a,r,o,n,i,l,s){g.addNode({id:t,label:e,x:a,y:r,className:o,labelOffsetX:n,labelOffsetY:i,inertia:l,sourceStrategy:s})}function m(t,e,a=!1,r,o){g.addLink({source:t,target:e,dashed:a,label:r,flow:o})}function k(t,e,a){g.addTrend({nodeId:t,targetX:e,targetY:a})}function b(t,e,a){g.addAnnotation({number:t,coordinates:e,text:a})}function $(t,e,a){g.addNote({text:t,x:e,y:a})}function S(t,e,a){g.addAccelerator({name:t,x:e,y:a})}function v(t,e,a){g.addDeaccelerator({name:t,x:e,y:a})}function C(t,e){g.setAnnotationsBox(t,e)}function M(t,e){g.setSize(t,e)}function P(t){g.startPipeline(t)}function N(t,e){g.addPipelineComponent(t,e)}function T(t){g.setAxes(t)}function z(t){return g.getNode(t)}function L(t){return g.resolveNodeId(t)}function A(){return g.build()}function E(){g.clear(),(0,i.IU)()}(0,s.K)(u,"getConfig"),(0,s.K)(w,"addNode"),(0,s.K)(m,"addLink"),(0,s.K)(k,"addTrend"),(0,s.K)(b,"addAnnotation"),(0,s.K)($,"addNote"),(0,s.K)(S,"addAccelerator"),(0,s.K)(v,"addDeaccelerator"),(0,s.K)(C,"setAnnotationsBox"),(0,s.K)(M,"setSize"),(0,s.K)(P,"startPipeline"),(0,s.K)(N,"addPipelineComponent"),(0,s.K)(T,"updateAxes"),(0,s.K)(z,"getNode"),(0,s.K)(L,"resolveNodeId"),(0,s.K)(A,"getWardleyData"),(0,s.K)(E,"clear");var K={getConfig:u,addNode:w,addLink:m,addTrend:k,addAnnotation:b,addNote:$,addAccelerator:S,addDeaccelerator:v,setAnnotationsBox:C,setSize:M,startPipeline:P,addPipelineComponent:N,updateAxes:T,getNode:z,resolveNodeId:L,getWardleyData:A,clear:E,setAccTitle:i.SV,getAccTitle:i.iN,setDiagramTitle:i.ke,getDiagramTitle:i.ab,getAccDescription:i.m7,setAccDescription:i.EI},I=["Genesis","Custom Built","Product","Commodity"],R=(0,s.K)(()=>{let{themeVariables:t}=(0,i.D7)();return{backgroundColor:t.wardley?.backgroundColor??t.background??"#fff",axisColor:t.wardley?.axisColor??"#000",axisTextColor:t.wardley?.axisTextColor??t.primaryTextColor??"#222",gridColor:t.wardley?.gridColor??"rgba(100, 100, 100, 0.2)",componentFill:t.wardley?.componentFill??"#fff",componentStroke:t.wardley?.componentStroke??"#000",componentLabelColor:t.wardley?.componentLabelColor??t.primaryTextColor??"#222",linkStroke:t.wardley?.linkStroke??"#000",evolutionStroke:t.wardley?.evolutionStroke??"#dc3545",annotationStroke:t.wardley?.annotationStroke??"#000",annotationTextColor:t.wardley?.annotationTextColor??t.primaryTextColor??"#222",annotationFill:t.wardley?.annotationFill??t.background??"#fff"}},"getTheme"),D=(0,s.K)(()=>{let t=(0,i.D7)()["wardley-beta"];return{width:t?.width??900,height:t?.height??600,padding:t?.padding??48,nodeRadius:t?.nodeRadius??6,nodeLabelOffset:t?.nodeLabelOffset??8,axisFontSize:t?.axisFontSize??12,labelFontSize:t?.labelFontSize??10,showGrid:t?.showGrid??!1,useMaxWidth:t?.useMaxWidth??!0}},"getConfigValues"),F={parser:f,db:K,renderer:{draw:(0,s.K)((t,e,a,r)=>{l.R.debug("Rendering Wardley map\n"+t);let n=D(),d=R(),c=1.6*n.nodeRadius,p=r.db,h=p.getWardleyData(),x=p.getDiagramTitle(),y=h.size?.width??n.width,f=h.size?.height??n.height,g=(0,o.D)(e);g.selectAll("*").remove(),(0,i.a$)(g,f,y,n.useMaxWidth),g.attr("viewBox",`0 0 ${y} ${f}`);let u=g.append("g").attr("class","wardley-map"),w=g.append("defs");w.append("marker").attr("id",`arrow-${e}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.evolutionStroke).attr("stroke","none"),w.append("marker").attr("id",`link-arrow-end-${e}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.linkStroke).attr("stroke","none"),w.append("marker").attr("id",`link-arrow-start-${e}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",d.linkStroke).attr("stroke","none"),u.append("rect").attr("class","wardley-background").attr("width",y).attr("height",f).attr("fill",d.backgroundColor);let m=y-2*n.padding,k=f-2*n.padding;x&&u.append("text").attr("class","wardley-title").attr("x",y/2).attr("y",n.padding/2).attr("fill",d.axisTextColor).attr("font-size",1.05*n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(x);let b=(0,s.K)(t=>n.padding+t/100*m,"projectX"),$=(0,s.K)(t=>f-n.padding-t/100*k,"projectY"),S=u.append("g").attr("class","wardley-axes");S.append("line").attr("x1",n.padding).attr("x2",y-n.padding).attr("y1",f-n.padding).attr("y2",f-n.padding).attr("stroke",d.axisColor).attr("stroke-width",1),S.append("line").attr("x1",n.padding).attr("x2",n.padding).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",d.axisColor).attr("stroke-width",1);let v=h.axes.xLabel??"Evolution",C=h.axes.yLabel??"Visibility";S.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",n.padding+m/2).attr("y",f-n.padding/4).attr("fill",d.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(v),S.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",n.padding/3).attr("y",n.padding+k/2).attr("fill",d.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${n.padding/3} ${n.padding+k/2})`).text(C);let M=h.axes.stages&&h.axes.stages.length>0?h.axes.stages:I;if(M.length>0){let t=u.append("g").attr("class","wardley-stages"),e=h.axes.stageBoundaries,a=[];if(e&&e.length===M.length){let t=0;e.forEach(e=>{a.push({start:t,end:e}),t=e})}else{let t=1/M.length;M.forEach((e,r)=>{a.push({start:r*t,end:(r+1)*t})})}M.forEach((e,r)=>{let o=a[r],i=n.padding+o.start*m,l=(i+(n.padding+o.end*m))/2;r>0&&t.append("line").attr("x1",i).attr("x2",i).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),t.append("text").attr("class","wardley-stage-label").attr("x",l).attr("y",f-n.padding/1.5).attr("fill",d.axisTextColor).attr("font-size",n.axisFontSize-2).attr("text-anchor","middle").text(e)})}if(n.showGrid){let t=u.append("g").attr("class","wardley-grid");for(let e=1;e<4;e++){let a=e/4,r=n.padding+m*a;t.append("line").attr("x1",r).attr("x2",r).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6"),t.append("line").attr("x1",n.padding).attr("x2",y-n.padding).attr("y1",f-n.padding-k*a).attr("y2",f-n.padding-k*a).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6")}}let P=new Map;if(h.nodes.forEach(t=>{P.set(t.id,{x:b(t.x),y:$(t.y),node:t})}),h.pipelines.length>0){let t=u.append("g").attr("class","wardley-pipelines"),e=u.append("g").attr("class","wardley-pipeline-links");h.pipelines.forEach(a=>{if(0===a.componentIds.length)return;let r=a.componentIds.map(t=>({id:t,pos:P.get(t),node:h.nodes.find(e=>e.id===t)})).filter(t=>t.pos&&t.node).sort((t,e)=>t.node.x-e.node.x);for(let t=0;t<r.length-1;t++){let a=r[t],o=r[t+1];e.append("line").attr("class","wardley-pipeline-evolution-link").attr("x1",a.pos.x).attr("y1",a.pos.y).attr("x2",o.pos.x).attr("y2",o.pos.y).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4")}let o=1/0,i=-1/0,l=0;if(a.componentIds.forEach(t=>{let e=P.get(t);e&&(o=Math.min(o,e.x),i=Math.max(i,e.x),l=e.y)}),o!==1/0&&i!==-1/0){let e=4*n.nodeRadius,r=l-e/2,s=P.get(a.nodeId);s&&(s.x=(o+i)/2,s.y=r-c/6),t.append("rect").attr("class","wardley-pipeline-box").attr("x",o-15).attr("y",r).attr("width",i-o+30).attr("height",e).attr("fill","none").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}let N=u.append("g").attr("class","wardley-links"),T=new Map;h.pipelines.forEach(t=>{T.set(t.nodeId,new Set(t.componentIds))});let z=h.links.filter(t=>{if(!P.has(t.source)||!P.has(t.target))return!1;let e=T.get(t.target);return!e?.has(t.source)});N.selectAll("line").data(z).enter().append("line").attr("class",t=>`wardley-link${t.dashed?" wardley-link--dashed":""}`).attr("x1",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.source).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=a.x-e.x,i=a.y-e.y,l=Math.sqrt(o*o+i*i);return e.x+o/l*r}).attr("y1",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.source).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=a.x-e.x,i=a.y-e.y,l=Math.sqrt(o*o+i*i);return e.y+i/l*r}).attr("x2",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.target).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=e.x-a.x,i=e.y-a.y,l=Math.sqrt(o*o+i*i);return a.x+o/l*r}).attr("y2",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.target).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=e.x-a.x,i=e.y-a.y,l=Math.sqrt(o*o+i*i);return a.y+i/l*r}).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",t=>t.dashed?"6 6":null).attr("marker-end",t=>"forward"===t.flow||"bidirectional"===t.flow?`url(#link-arrow-end-${e})`:null).attr("marker-start",t=>"backward"===t.flow||"bidirectional"===t.flow?`url(#link-arrow-start-${e})`:null),N.selectAll("text").data(z.filter(t=>t.label)).enter().append("text").attr("class","wardley-link-label").attr("x",t=>{let e=P.get(t.source),a=P.get(t.target),r=(e.x+a.x)/2,o=a.y-e.y,n=a.x-e.x,i=Math.sqrt(n*n+o*o);return r+o/i*8}).attr("y",t=>{let e=P.get(t.source),a=P.get(t.target),r=(e.y+a.y)/2,o=a.x-e.x,n=a.y-e.y,i=Math.sqrt(o*o+n*n);return r+-o/i*8}).attr("fill",d.axisTextColor).attr("font-size",n.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",t=>{let e=P.get(t.source),a=P.get(t.target),r=(e.x+a.x)/2,o=(e.y+a.y)/2,n=a.x-e.x,i=a.y-e.y,l=Math.sqrt(n*n+i*i),s=180*Math.atan2(i,n)/Math.PI;return(s>90||s<-90)&&(s+=180),`rotate(${s} ${r+i/l*8} ${o+-n/l*8})`}).text(t=>t.label);let L=u.append("g").attr("class","wardley-trends"),A=h.trends.map(t=>{let e=P.get(t.nodeId);if(!e)return null;let a=b(t.targetX),r=$(t.targetY),o=a-e.x,i=r-e.y,l=Math.sqrt(o*o+i*i),s=n.nodeRadius+2;return{origin:e,targetX:a,targetY:r,adjustedX2:l>s?a-o/l*s:a,adjustedY2:l>s?r-i/l*s:r}}).filter(t=>null!==t);L.selectAll("line").data(A).enter().append("line").attr("class","wardley-trend").attr("x1",t=>t.origin.x).attr("y1",t=>t.origin.y).attr("x2",t=>t.adjustedX2).attr("y2",t=>t.adjustedY2).attr("stroke",d.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${e})`);let E=u.append("g").attr("class","wardley-nodes").selectAll("g").data(h.nodes).enter().append("g").attr("class",t=>["wardley-node",t.className?`wardley-node--${t.className}`:""].filter(Boolean).join(" "));E.filter(t=>"outsource"===t.sourceStrategy).append("circle").attr("class","wardley-outsource-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","#666").attr("stroke",d.componentStroke).attr("stroke-width",1),E.filter(t=>"buy"===t.sourceStrategy).append("circle").attr("class","wardley-buy-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","#ccc").attr("stroke",d.componentStroke).attr("stroke-width",1),E.filter(t=>"build"===t.sourceStrategy).append("circle").attr("class","wardley-build-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);let K=E.filter(t=>"market"===t.sourceStrategy);K.append("circle").attr("class","wardley-market-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),E.filter(t=>!t.isPipelineParent&&"market"!==t.sourceStrategy&&"anchor"!==t.className).append("circle").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",n.nodeRadius).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1);let F=.7*n.nodeRadius,B=1.2*n.nodeRadius;if(K.append("line").attr("class","wardley-market-line").attr("x1",t=>P.get(t.id).x).attr("y1",t=>P.get(t.id).y-B).attr("x2",t=>P.get(t.id).x-B*Math.cos(Math.PI/6)).attr("y2",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),K.append("line").attr("class","wardley-market-line").attr("x1",t=>P.get(t.id).x-B*Math.cos(Math.PI/6)).attr("y1",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("x2",t=>P.get(t.id).x+B*Math.cos(Math.PI/6)).attr("y2",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),K.append("line").attr("class","wardley-market-line").attr("x1",t=>P.get(t.id).x+B*Math.cos(Math.PI/6)).attr("y1",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("x2",t=>P.get(t.id).x).attr("y2",t=>P.get(t.id).y-B).attr("stroke",d.componentStroke).attr("stroke-width",1),K.append("circle").attr("class","wardley-market-dot").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y-B).attr("r",F).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),K.append("circle").attr("class","wardley-market-dot").attr("cx",t=>P.get(t.id).x-B*Math.cos(Math.PI/6)).attr("cy",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("r",F).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),K.append("circle").attr("class","wardley-market-dot").attr("cx",t=>P.get(t.id).x+B*Math.cos(Math.PI/6)).attr("cy",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("r",F).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),E.filter(t=>!0===t.isPipelineParent).append("rect").attr("x",t=>P.get(t.id).x-c/2).attr("y",t=>P.get(t.id).y-c/2).attr("width",c).attr("height",c).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1),E.filter(t=>!0===t.inertia).append("line").attr("class","wardley-inertia").attr("x1",t=>{let e=P.get(t.id),a=t.isPipelineParent?c/2+15:n.nodeRadius+15;return t.sourceStrategy&&(a+=n.nodeRadius+10),e.x+a}).attr("y1",t=>{let e=P.get(t.id),a=t.isPipelineParent?c:2*n.nodeRadius;return e.y-a/2}).attr("x2",t=>{let e=P.get(t.id),a=t.isPipelineParent?c/2+15:n.nodeRadius+15;return t.sourceStrategy&&(a+=n.nodeRadius+10),e.x+a}).attr("y2",t=>{let e=P.get(t.id),a=t.isPipelineParent?c:2*n.nodeRadius;return e.y+a/2}).attr("stroke",d.componentStroke).attr("stroke-width",6),E.append("text").attr("x",t=>{let e=P.get(t.id);if("anchor"===t.className)return void 0!==t.labelOffsetX?e.x+t.labelOffsetX:e.x;let a=n.nodeLabelOffset;t.sourceStrategy&&void 0===t.labelOffsetX&&(a+=10);let r=t.labelOffsetX??a;return e.x+r}).attr("y",t=>{let e=P.get(t.id);if("anchor"===t.className)return void 0!==t.labelOffsetY?e.y+t.labelOffsetY:e.y-3;let a=-n.nodeLabelOffset;t.sourceStrategy&&void 0===t.labelOffsetY&&(a-=10);let r=t.labelOffsetY??a;return e.y+r}).attr("class","wardley-node-label").attr("fill",t=>"evolved"===t.className?d.evolutionStroke:"anchor"===t.className?"#000":d.componentLabelColor).attr("font-size",n.labelFontSize).attr("font-weight",t=>"anchor"===t.className?"bold":"normal").attr("text-anchor",t=>"anchor"===t.className?"middle":"start").attr("dominant-baseline",t=>"anchor"===t.className?"middle":"auto").text(t=>t.label),h.annotations.length>0){let t=u.append("g").attr("class","wardley-annotations");if(h.annotations.forEach(e=>{let a=e.coordinates.map(t=>({x:b(t.x),y:$(t.y)}));if(a.length>1)for(let e=0;e<a.length-1;e++)t.append("line").attr("class","wardley-annotation-line").attr("x1",a[e].x).attr("y1",a[e].y).attr("x2",a[e+1].x).attr("y2",a[e+1].y).attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("stroke-dasharray","4 4");a.forEach(a=>{let r=t.append("g").attr("class","wardley-annotation");r.append("circle").attr("cx",a.x).attr("cy",a.y).attr("r",10).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5),r.append("text").attr("x",a.x).attr("y",a.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.number)})}),h.annotationsBox){let e=b(h.annotationsBox.x),a=$(h.annotationsBox.y),r=t.append("g").attr("class","wardley-annotations-box"),o=[...h.annotations].filter(t=>t.text).sort((t,e)=>t.number-e.number),i=[];if(o.forEach((t,o)=>{let n=r.append("text").attr("x",e+10).attr("y",a+10+(o+1)*16).attr("font-size",11).attr("fill",d.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${t.number}. ${t.text}`);i.push(n)}),i.length>0){let t=0,l=0;i.forEach(e=>{let a=e.node(),r=a.getComputedTextLength();t=Math.max(t,r);let o=a.getBBox();l=Math.max(l,o.height)});let s=t+20+105,c=16*o.length+20+l/2,p=n.padding,h=y-n.padding-s,x=n.padding,g=f-n.padding-c;e=Math.max(p,Math.min(e,h)),a=Math.max(x,Math.min(a,g)),i.forEach((t,r)=>{t.attr("x",e+10).attr("y",a+10+(r+1)*16)}),r.insert("rect","text").attr("x",e).attr("y",a).attr("width",s).attr("height",c).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(h.notes.length>0){let t=u.append("g").attr("class","wardley-notes");h.notes.forEach(e=>{let a=b(e.x),r=$(e.y);t.append("text").attr("x",a).attr("y",r).attr("text-anchor","start").attr("font-size",11).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.text)})}if(h.accelerators.length>0){let t=u.append("g").attr("class","wardley-accelerators");h.accelerators.forEach(e=>{let a=b(e.x),r=$(e.y),o=` + M ${a} ${r-15} + L ${a+60-20} ${r-15} + L ${a+60-20} ${r-15-8} + L ${a+60} ${r} + L ${a+60-20} ${r+15+8} + L ${a+60-20} ${r+15} + L ${a} ${r+15} + Z + `;t.append("path").attr("d",o).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),t.append("text").attr("x",a+30).attr("y",r+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.name)})}if(h.deaccelerators.length>0){let t=u.append("g").attr("class","wardley-deaccelerators");h.deaccelerators.forEach(e=>{let a=b(e.x),r=$(e.y),o=` + M ${a+60} ${r-15} + L ${a+20} ${r-15} + L ${a+20} ${r-15-8} + L ${a} ${r} + L ${a+20} ${r+15+8} + L ${a+20} ${r+15} + L ${a+60} ${r+15} + Z + `;t.append("path").attr("d",o).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),t.append("text").attr("x",a+30).attr("y",r+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.name)})}},"draw")},styles:(0,s.K)(({wardley:t}={})=>{let e=(0,i.P$)(),a=(0,i.zj)(),r=(0,n.$t)(e,a.themeVariables),o=(0,n.$t)(r.wardley,t);return` + .wardley-background { + fill: ${o.backgroundColor}; + } + .wardley-axes line, .wardley-axes path { + stroke: ${o.axisColor}; + } + .wardley-axis-label { + fill: ${o.axisTextColor}; + } + .wardley-stage-label { + fill: ${o.axisTextColor}; + } + .wardley-grid line { + stroke: ${o.gridColor}; + } + .wardley-node circle { + fill: ${o.componentFill}; + stroke: ${o.componentStroke}; + } + .wardley-node-label { + fill: ${o.componentLabelColor}; + } + .wardley-link { + stroke: ${o.linkStroke}; + } + .wardley-link--dashed { + stroke-dasharray: 4 4; + } + .wardley-link-label { + fill: ${o.axisTextColor}; + } + .wardley-trend line { + stroke: ${o.evolutionStroke}; + } + .wardley-annotation-line { + stroke: ${o.annotationStroke}; + } + .wardley-annotation circle { + fill: ${o.annotationFill}; + stroke: ${o.annotationStroke}; + } + .wardley-annotation text { + fill: ${o.annotationTextColor}; + } + .wardley-annotations-box rect { + fill: ${o.annotationFill}; + stroke: ${o.annotationStroke}; + } + .wardley-annotations-box text { + fill: ${o.annotationTextColor}; + } + .wardley-pipeline-box { + stroke: ${o.componentStroke}; + } + .wardley-notes text { + fill: ${o.axisTextColor}; + } + `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/2951.165aea2c.js b/en/assets/js/2951.165aea2c.js deleted file mode 100644 index 4fa8756..0000000 --- a/en/assets/js/2951.165aea2c.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2951"],{7834(e,t,a){a.d(t,{diagram:()=>D});var i=a(7454),l=a(4924),r=a(6348),n=a(1177),s=a(1293),o=a(6827),c=a(8731),d=a(7829),p=n.UI.pie,h={sections:new Map,showData:!1,config:p},g=h.sections,u=h.showData,f=structuredClone(p),m=(0,o.K)(()=>structuredClone(f),"getConfig"),x=(0,o.K)(()=>{g=new Map,u=h.showData,(0,n.IU)()},"clear"),$=(0,o.K)(({label:e,value:t})=>{if(t<0)throw Error(`"${e}" has invalid value: ${t}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);g.has(e)||(g.set(e,t),s.R.debug(`added new section: ${e}, with value: ${t}`))},"addSection"),w=(0,o.K)(()=>g,"getSections"),S=(0,o.K)(e=>{u=e},"setShowData"),y=(0,o.K)(()=>u,"getShowData"),b={getConfig:m,clear:x,setDiagramTitle:n.ke,getDiagramTitle:n.ab,setAccTitle:n.SV,getAccTitle:n.iN,setAccDescription:n.EI,getAccDescription:n.m7,addSection:$,getSections:w,setShowData:S,getShowData:y},k=(0,o.K)((e,t)=>{(0,i.S)(e,t),t.setShowData(e.showData),e.sections.map(t.addSection)},"populateDb"),C={parse:(0,o.K)(async e=>{let t=await (0,c.qg)("pie",e);s.R.debug(t),k(t,b)},"parse")},v=(0,o.K)(e=>` - .pieCircle{ - stroke: ${e.pieStrokeColor}; - stroke-width : ${e.pieStrokeWidth}; - opacity : ${e.pieOpacity}; - } - .pieCircle.highlighted{ - scale: 1.05; - opacity: 1; - } - .pieCircle.highlightedOnHover:hover{ - transition-duration: 250ms; - scale: 1.05; - opacity: 1; - } - .pieOuterCircle{ - stroke: ${e.pieOuterStrokeColor}; - stroke-width: ${e.pieOuterStrokeWidth}; - fill: none; - } - .pieTitleText { - text-anchor: middle; - font-size: ${e.pieTitleTextSize}; - fill: ${e.pieTitleTextColor}; - font-family: ${e.fontFamily}; - } - .slice { - font-family: ${e.fontFamily}; - fill: ${e.pieSectionTextColor}; - font-size:${e.pieSectionTextSize}; - // fill: white; - } - .legend text { - fill: ${e.pieLegendTextColor}; - font-family: ${e.fontFamily}; - font-size: ${e.pieLegendTextSize}; - } -`,"getStyles"),T=(0,o.K)(e=>{let t=[...e.values()].reduce((e,t)=>e+t,0),a=[...e.entries()].map(([e,t])=>({label:e,value:t})).filter(e=>e.value/t*100>=1);return(0,d.rLf)().value(e=>e.value).sort(null)(a)},"createPieArcs"),D={parser:C,db:b,renderer:{draw:(0,o.K)((e,t,a,i)=>{s.R.debug("rendering pie chart\n"+e);let o=i.db,c=(0,n.D7)(),p=(0,r.$t)(o.getConfig(),c.pie),h=(0,l.D)(t),g=h.append("g");g.attr("transform","translate(225,225)");let{themeVariables:u}=c,[f]=(0,r.I5)(u.pieOuterStrokeWidth);f??=2;let m=p.legendPosition,x=p.textPosition,$=p.donutHole>0&&p.donutHole<=.9?p.donutHole:0,w=(0,d.JLW)().innerRadius(185*$).outerRadius(185),S=(0,d.JLW)().innerRadius(185*x).outerRadius(185*x),y=g.append("g");y.append("circle").attr("cx",0).attr("cy",0).attr("r",185+f/2).attr("class","pieOuterCircle");let b=o.getSections(),k=T(b),C=[u.pie1,u.pie2,u.pie3,u.pie4,u.pie5,u.pie6,u.pie7,u.pie8,u.pie9,u.pie10,u.pie11,u.pie12],v=0;b.forEach(e=>{v+=e});let D=k.filter(e=>"0"!==(e.data.value/v*100).toFixed(0)),K=(0,d.UMr)(C).domain([...b.keys()]);y.selectAll("mySlices").data(D).enter().append("path").attr("d",w).attr("fill",e=>K(e.data.label)).attr("class",e=>{let t="pieCircle";return"hover"===p.highlightSlice?t+=" highlightedOnHover":p.highlightSlice===e.data.label&&(t+=" highlighted"),t}),y.selectAll("mySlices").data(D).enter().append("text").text(e=>(e.data.value/v*100).toFixed(0)+"%").attr("transform",e=>"translate("+S.centroid(e)+")").style("text-anchor","middle").attr("class","slice");let A=g.append("text").text(o.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText"),R=[...b.entries()].map(([e,t])=>({label:e,value:t})),O=g.selectAll(".legend").data(R).enter().append("g").attr("class","legend");O.append("rect").attr("width",18).attr("height",18).style("fill",e=>K(e.label)).style("stroke",e=>K(e.label)),O.append("text").attr("x",22).attr("y",14).text(e=>o.getShowData()?`${e.label} [${e.value}]`:e.label);let M=Math.max(...O.selectAll("text").nodes().map(e=>e?.getBoundingClientRect().width??0)),z=450,W=490,F=22*R.length;switch(m){case"center":O.attr("transform",(e,t)=>"translate("+(-M/2-22)+","+(22*t-22*R.length/2)+")");break;case"top":z+=F,O.attr("transform",(e,t)=>`translate(${-M/2-22}, ${22*t-185})`),y.attr("transform",()=>`translate(0, ${F+22})`);break;case"bottom":z+=F,O.attr("transform",(e,t)=>"translate("+(-M/2-22)+","+(22*t- -207)+")");break;case"left":W+=22+M,O.attr("transform",(e,t)=>"translate(-207,"+(22*t-22*R.length/2)+")"),y.attr("transform",()=>`translate(${M+18+4}, 0)`);break;default:W+=22+M,O.attr("transform",(e,t)=>"translate(216,"+(22*t-22*R.length/2)+")")}let H=A.node()?.getBoundingClientRect().width??0,L=Math.min(0,225-H/2),I=Math.max(W,225+H/2)-L;h.attr("viewBox",`${L} 0 ${I} ${z}`),(0,n.a$)(h,z,I,p.useMaxWidth)},"draw")},styles:v}}}]); \ No newline at end of file diff --git a/en/assets/js/2951.c9b9b0af.js b/en/assets/js/2951.c9b9b0af.js new file mode 100644 index 0000000..d971e5d --- /dev/null +++ b/en/assets/js/2951.c9b9b0af.js @@ -0,0 +1,38 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2951"],{7454(e,t,a){function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>i}),(0,a(6827).K)(i,"populateCommonDb")},7834(e,t,a){a.d(t,{diagram:()=>v});var i=a(7454),l=a(4924),r=a(6348),s=a(1177),n=a(1293),o=a(6827),c=a(8731),p=a(7829),d=s.UI.pie,h={sections:new Map,showData:!1,config:d},g=h.sections,u=h.showData,f=structuredClone(d),m=(0,o.K)(()=>structuredClone(f),"getConfig"),x=(0,o.K)(()=>{g=new Map,u=h.showData,(0,s.IU)()},"clear"),$=(0,o.K)(({label:e,value:t})=>{if(t<0)throw Error(`"${e}" has invalid value: ${t}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);g.has(e)||(g.set(e,t),n.R.debug(`added new section: ${e}, with value: ${t}`))},"addSection"),w=(0,o.K)(()=>g,"getSections"),S=(0,o.K)(e=>{u=e},"setShowData"),y=(0,o.K)(()=>u,"getShowData"),b={getConfig:m,clear:x,setDiagramTitle:s.ke,getDiagramTitle:s.ab,setAccTitle:s.SV,getAccTitle:s.iN,setAccDescription:s.EI,getAccDescription:s.m7,addSection:$,getSections:w,setShowData:S,getShowData:y},C=(0,o.K)((e,t)=>{(0,i.S)(e,t),t.setShowData(e.showData),e.sections.map(t.addSection)},"populateDb"),D={parse:(0,o.K)(async e=>{let t=await (0,c.qg)("pie",e);n.R.debug(t),C(t,b)},"parse")},T=(0,o.K)(e=>` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieCircle.highlighted{ + scale: 1.05; + opacity: 1; + } + .pieCircle.highlightedOnHover:hover{ + transition-duration: 250ms; + scale: 1.05; + opacity: 1; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`,"getStyles"),k=(0,o.K)(e=>{let t=[...e.values()].reduce((e,t)=>e+t,0),a=[...e.entries()].map(([e,t])=>({label:e,value:t})).filter(e=>e.value/t*100>=1);return(0,p.rLf)().value(e=>e.value).sort(null)(a)},"createPieArcs"),v={parser:D,db:b,renderer:{draw:(0,o.K)((e,t,a,i)=>{n.R.debug("rendering pie chart\n"+e);let o=i.db,c=(0,s.D7)(),d=(0,r.$t)(o.getConfig(),c.pie),h=(0,l.D)(t),g=h.append("g");g.attr("transform","translate(225,225)");let{themeVariables:u}=c,[f]=(0,r.I5)(u.pieOuterStrokeWidth);f??=2;let m=d.legendPosition,x=d.textPosition,$=d.donutHole>0&&d.donutHole<=.9?d.donutHole:0,w=(0,p.JLW)().innerRadius(185*$).outerRadius(185),S=(0,p.JLW)().innerRadius(185*x).outerRadius(185*x),y=g.append("g");y.append("circle").attr("cx",0).attr("cy",0).attr("r",185+f/2).attr("class","pieOuterCircle");let b=o.getSections(),C=k(b),D=[u.pie1,u.pie2,u.pie3,u.pie4,u.pie5,u.pie6,u.pie7,u.pie8,u.pie9,u.pie10,u.pie11,u.pie12],T=0;b.forEach(e=>{T+=e});let v=C.filter(e=>"0"!==(e.data.value/T*100).toFixed(0)),A=(0,p.UMr)(D).domain([...b.keys()]);y.selectAll("mySlices").data(v).enter().append("path").attr("d",w).attr("fill",e=>A(e.data.label)).attr("class",e=>{let t="pieCircle";return"hover"===d.highlightSlice?t+=" highlightedOnHover":d.highlightSlice===e.data.label&&(t+=" highlighted"),t}),y.selectAll("mySlices").data(v).enter().append("text").text(e=>(e.data.value/T*100).toFixed(0)+"%").attr("transform",e=>"translate("+S.centroid(e)+")").style("text-anchor","middle").attr("class","slice");let K=g.append("text").text(o.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText"),R=[...b.entries()].map(([e,t])=>({label:e,value:t})),O=g.selectAll(".legend").data(R).enter().append("g").attr("class","legend");O.append("rect").attr("width",18).attr("height",18).style("fill",e=>A(e.label)).style("stroke",e=>A(e.label)),O.append("text").attr("x",22).attr("y",14).text(e=>o.getShowData()?`${e.label} [${e.value}]`:e.label);let M=Math.max(...O.selectAll("text").nodes().map(e=>e?.getBoundingClientRect().width??0)),z=450,W=490,F=22*R.length;switch(m){case"center":O.attr("transform",(e,t)=>"translate("+(-M/2-22)+","+(22*t-22*R.length/2)+")");break;case"top":z+=F,O.attr("transform",(e,t)=>`translate(${-M/2-22}, ${22*t-185})`),y.attr("transform",()=>`translate(0, ${F+22})`);break;case"bottom":z+=F,O.attr("transform",(e,t)=>"translate("+(-M/2-22)+","+(22*t- -207)+")");break;case"left":W+=22+M,O.attr("transform",(e,t)=>"translate(-207,"+(22*t-22*R.length/2)+")"),y.attr("transform",()=>`translate(${M+18+4}, 0)`);break;default:W+=22+M,O.attr("transform",(e,t)=>"translate(216,"+(22*t-22*R.length/2)+")")}let H=K.node()?.getBoundingClientRect().width??0,L=Math.min(0,225-H/2),I=Math.max(W,225+H/2)-L;h.attr("viewBox",`${L} 0 ${I} ${z}`),(0,s.a$)(h,z,I,d.useMaxWidth)},"draw")},styles:T}}}]); \ No newline at end of file diff --git a/en/assets/js/2cb18a50.16d7aca5.js b/en/assets/js/2cb18a50.16e7a45e.js similarity index 92% rename from en/assets/js/2cb18a50.16d7aca5.js rename to en/assets/js/2cb18a50.16e7a45e.js index 9bcf97e..59a3b3f 100644 --- a/en/assets/js/2cb18a50.16d7aca5.js +++ b/en/assets/js/2cb18a50.16e7a45e.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9548"],{1564(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>l,toc:()=>o,assets:()=>c});var t=JSON.parse('{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/en/docs/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/about/architecture.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar_label":"Architecture","sidebar_position":2},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/SqlParserX/en/docs/about/introduction"},"next":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/quickstart/setup"}}'),s=n(4848),i=n(8453);let a={title:"Architecture",description:"The two-layer unified extension architecture of SqlParserX",sidebar_label:"Architecture",sidebar_position:2},l="Two-Layer Unified Extension Architecture",c={},o=[{value:"Overall Architecture",id:"overall-architecture",level:2},{value:"Module Dependencies",id:"module-dependencies",level:2}];function d(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"two-layer-unified-extension-architecture",children:"Two-Layer Unified Extension Architecture"})}),"\n",(0,s.jsx)(r.p,{children:"The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SQL syntax layer (",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"}),")"]}),": built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SqlParserX business layer (",(0,s.jsx)(r.code,{children:"sqlparserx-core"}),")"]}),": extending table parsing, lineage and SQL rewriting per datasource through unified dialect routing, the ",(0,s.jsx)(r.code,{children:"ISqlParser"})," contract and business clients."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Both layers follow the pattern ",(0,s.jsx)(r.strong,{children:"unified entry \u2192 common base \u2192 unified extension point \u2192 datasource implementation \u2192 unified result"}),". When adding a datasource, syntax differences are extended in the Druid layer and business differences in the SqlParserX layer, aligned via ",(0,s.jsx)(r.code,{children:"DbType"})," and Druid AST."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"SqlParserX two-layer unified extension architecture",src:n(702).A+"",width:"1421",height:"1107"})}),"\n",(0,s.jsx)(r.h2,{id:"overall-architecture",children:"Overall Architecture"}),"\n",(0,s.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CBusiness parsing layer]\n direction LR\n B_ROUTE[Dialect routing<br/>SqlParserFactory]\n B_BASE[Common base<br/>ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[Extension points<br/>Dialect Client \xb7 Strategy]\n B_DIALECT[Datasource implementations<br/>MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[Unified results<br/>Table \xb7 DDL \xb7 Lineage \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSyntax parsing layer, on Druid]\n direction LR\n S_ROUTE[Dialect routing<br/>SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[Common base<br/>Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[Extension points<br/>Dialect Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[Datasource implementations<br/>MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[Unified results<br/>SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType alignment .-> S_ROUTE\n B_DIALECT -. same datasource dialect .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,s.jsx)(r.h2,{id:"module-dependencies",children:"Module Dependencies"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Business extensions follow ",(0,s.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,s.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,s.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 dialect implementations."]})]})}function u(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},702(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-en-710c1c16b39bd3885dfe50d51143759f.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9548"],{1564(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>l,toc:()=>o,assets:()=>c});var t=JSON.parse('{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/en/docs/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/about/architecture.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar_label":"Architecture","sidebar_position":2},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/SqlParserX/en/docs/about/introduction"},"next":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/quickstart/setup"}}'),s=n(4848),i=n(8453);let a={title:"Architecture",description:"The two-layer unified extension architecture of SqlParserX",sidebar_label:"Architecture",sidebar_position:2},l="Two-Layer Unified Extension Architecture",c={},o=[{value:"Overall Architecture",id:"overall-architecture",level:2},{value:"Module Dependencies",id:"module-dependencies",level:2}];function d(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"two-layer-unified-extension-architecture",children:"Two-Layer Unified Extension Architecture"})}),"\n",(0,s.jsx)(r.p,{children:"The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SQL syntax layer (",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"}),")"]}),": built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SqlParserX business layer (",(0,s.jsx)(r.code,{children:"sqlparserx-core"}),")"]}),": extending table parsing, lineage and SQL rewriting per datasource through unified dialect routing, the ",(0,s.jsx)(r.code,{children:"ISqlParser"})," contract and business clients."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Both layers follow the pattern ",(0,s.jsx)(r.strong,{children:"unified entry \u2192 common base \u2192 unified extension point \u2192 datasource implementation \u2192 unified result"}),". When adding a datasource, syntax differences are extended in the Druid layer and business differences in the SqlParserX layer, aligned via ",(0,s.jsx)(r.code,{children:"DbType"})," and Druid AST."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"SqlParserX two-layer unified extension architecture",src:n(702).A+"",width:"1421",height:"1107"})}),"\n",(0,s.jsx)(r.h2,{id:"overall-architecture",children:"Overall Architecture"}),"\n",(0,s.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CBusiness parsing layer]\n direction LR\n B_ROUTE[Dialect routing<br/>SqlParserFactory]\n B_BASE[Common base<br/>ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[Extension points<br/>Dialect Client \xb7 Strategy]\n B_DIALECT[Datasource implementations<br/>MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[Unified results<br/>Table \xb7 DDL \xb7 Lineage \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSyntax parsing layer, on Druid]\n direction LR\n S_ROUTE[Dialect routing<br/>SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[Common base<br/>Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[Extension points<br/>Dialect Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[Datasource implementations<br/>MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[Unified results<br/>SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType alignment .-> S_ROUTE\n B_DIALECT -. same datasource dialect .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,s.jsx)(r.h2,{id:"module-dependencies",children:"Module Dependencies"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Business extensions follow ",(0,s.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,s.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,s.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 dialect implementations."]})]})}function u(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},702(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-en-710c1c16b39bd3885dfe50d51143759f.png"},8453(e,r,n){n.d(r,{R:()=>a,x:()=>l});var t=n(6540);let s={},i=t.createContext(s);function a(e){let r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/4137.1b2a1b68.js b/en/assets/js/4137.1b2a1b68.js new file mode 100644 index 0000000..d24f8ac --- /dev/null +++ b/en/assets/js/4137.1b2a1b68.js @@ -0,0 +1,104 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4137"],{5350(t,e,r){r.d(e,{m:()=>a});var o=r(6827),a=class{constructor(t){this.init=t,this.records=this.init()}static{(0,o.K)(this,"ImperativeState")}reset(){this.records=this.init()}}},7454(t,e,r){function o(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}r.d(e,{S:()=>o}),(0,r(6827).K)(o,"populateCommonDb")},2208(t,e,r){r.d(e,{diagram:()=>tM});var o=r(5350),a=r(7454),i=r(6348),n=r(1177),s=r(1293),c=r(6827),d=r(8731),l=r(7829),h={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},$=n.UI.gitGraph,m=(0,c.K)(()=>(0,i.$t)({...$,...(0,n.zj)().gitGraph}),"getConfig"),g=new o.m(()=>{let t=m(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});function p(){return(0,i.yT)({length:7})}function y(t,e){let r=Object.create(null);return t.reduce((t,o)=>{let a=e(o);return r[a]||(r[a]=!0,t.push(o)),t},[])}(0,c.K)(p,"getID"),(0,c.K)(y,"uniqBy");var f=(0,c.K)(function(t){g.records.direction=t},"setDirection"),x=(0,c.K)(function(t){s.R.debug("options str",t),t=(t=t?.trim())||"{}";try{g.records.options=JSON.parse(t)}catch(t){s.R.error("error while parsing gitGraph options",t.message)}},"setOptions"),u=(0,c.K)(function(){return g.records.options},"getOptions"),b=(0,c.K)(function(t){let e=t.msg,r=t.id,o=t.type,a=t.tags;s.R.info("commit",e,r,o,a),s.R.debug("Entering commit:",e,r,o,a);let i=m();r=n.Y2.sanitizeText(r,i),e=n.Y2.sanitizeText(e,i),a=a?.map(t=>n.Y2.sanitizeText(t,i));let c={id:r||g.records.seq+"-"+p(),message:e,seq:g.records.seq++,type:o??h.NORMAL,tags:a??[],parents:null==g.records.head?[]:[g.records.head.id],branch:g.records.currBranch};g.records.head=c,s.R.info("main branch",i.mainBranchName),g.records.commits.has(c.id)&&s.R.warn(`Commit ID ${c.id} already exists`),g.records.commits.set(c.id,c),g.records.branches.set(g.records.currBranch,c.id),s.R.debug("in pushCommit "+c.id)},"commit"),k=(0,c.K)(function(t){let e=t.name,r=t.order;if(e=n.Y2.sanitizeText(e,m()),g.records.branches.has(e))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);g.records.branches.set(e,null!=g.records.head?g.records.head.id:null),g.records.branchConfig.set(e,{name:e,order:r}),E(e),s.R.debug("in createBranch")},"branch"),B=(0,c.K)(t=>{let e=t.branch,r=t.id,o=t.type,a=t.tags,i=m();e=n.Y2.sanitizeText(e,i),r&&(r=n.Y2.sanitizeText(r,i));let c=g.records.branches.get(g.records.currBranch),d=g.records.branches.get(e),l=c?g.records.commits.get(c):void 0,$=d?g.records.commits.get(d):void 0;if(l&&$&&l.branch===e)throw Error(`Cannot merge branch '${e}' into itself.`);if(g.records.currBranch===e){let t=Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(void 0===l||!l){let t=Error(`Incorrect usage of "merge". Current branch (${g.records.currBranch})has no commits`);throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},t}if(!g.records.branches.has(e)){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},t}if(void 0===$||!$){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},t}if(l===$){let t=Error('Incorrect usage of "merge". Both branches have same head');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(r&&g.records.commits.has(r)){let t=Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom id");throw t.hash={text:`merge ${e} ${r} ${o} ${a?.join(" ")}`,token:`merge ${e} ${r} ${o} ${a?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${o} ${a?.join(" ")}`]},t}let y={id:r||`${g.records.seq}-${p()}`,message:`merged branch ${e} into ${g.records.currBranch}`,seq:g.records.seq++,parents:null==g.records.head?[]:[g.records.head.id,d||""],branch:g.records.currBranch,type:h.MERGE,customType:o,customId:!!r,tags:a??[]};g.records.head=y,g.records.commits.set(y.id,y),g.records.branches.set(g.records.currBranch,y.id),s.R.debug(g.records.branches),s.R.debug("in mergeBranch")},"merge"),w=(0,c.K)(function(t){let e=t.id,r=t.targetId,o=t.tags,a=t.parent;s.R.debug("Entering cherryPick:",e,r,o);let i=m();if(e=n.Y2.sanitizeText(e,i),r=n.Y2.sanitizeText(r,i),o=o?.map(t=>n.Y2.sanitizeText(t,i)),a=n.Y2.sanitizeText(a,i),!e||!g.records.commits.has(e)){let t=Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let c=g.records.commits.get(e);if(void 0===c||!c)throw Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(a&&!(Array.isArray(c.parents)&&c.parents.includes(a)))throw Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let d=c.branch;if(c.type===h.MERGE&&!a)throw Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!g.records.commits.has(r)){if(d===g.records.currBranch){let t=Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let t=g.records.branches.get(g.records.currBranch);if(void 0===t||!t){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${g.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let i=g.records.commits.get(t);if(void 0===i||!i){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${g.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let n={id:g.records.seq+"-"+p(),message:`cherry-picked ${c?.message} into ${g.records.currBranch}`,seq:g.records.seq++,parents:null==g.records.head?[]:[g.records.head.id,c.id],branch:g.records.currBranch,type:h.CHERRY_PICK,tags:o?o.filter(Boolean):[`cherry-pick:${c.id}${c.type===h.MERGE?`|parent:${a}`:""}`]};g.records.head=n,g.records.commits.set(n.id,n),g.records.branches.set(g.records.currBranch,n.id),s.R.debug(g.records.branches),s.R.debug("in cherryPick")}},"cherryPick"),E=(0,c.K)(function(t){if(t=n.Y2.sanitizeText(t,m()),g.records.branches.has(t)){g.records.currBranch=t;let e=g.records.branches.get(g.records.currBranch);void 0!==e&&e?g.records.head=g.records.commits.get(e)??null:g.records.head=null}else{let e=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");function T(t,e,r){let o=t.indexOf(e);-1===o?t.push(r):t.splice(o,1,r)}function C(t){let e=t.reduce((t,e)=>t.seq>e.seq?t:e,t[0]),r="";t.forEach(function(t){t===e?r+=" *":r+=" |"});let o=[r,e.id,e.seq];for(let t in g.records.branches)g.records.branches.get(t)===e.id&&o.push(t);if(s.R.debug(o.join(" ")),e.parents&&2==e.parents.length&&e.parents[0]&&e.parents[1]){let r=g.records.commits.get(e.parents[0]);T(t,e,r),e.parents[1]&&t.push(g.records.commits.get(e.parents[1]))}else if(0==e.parents.length)return;else if(e.parents[0]){let r=g.records.commits.get(e.parents[0]);T(t,e,r)}C(t=y(t,t=>t.id))}(0,c.K)(T,"upsert"),(0,c.K)(C,"prettyPrintCommitHistory");var L=(0,c.K)(function(){s.R.debug(g.records.commits),C([I()[0]])},"prettyPrint"),K=(0,c.K)(function(){g.reset(),(0,n.IU)()},"clear"),M=(0,c.K)(function(){return[...g.records.branchConfig.values()].map((t,e)=>null!==t.order&&void 0!==t.order?t:{...t,order:parseFloat(`0.${e}`)}).sort((t,e)=>(t.order??0)-(e.order??0)).map(({name:t})=>({name:t}))},"getBranchesAsObjArray"),R=(0,c.K)(function(){return g.records.branches},"getBranches"),v=(0,c.K)(function(){return g.records.commits},"getCommits"),I=(0,c.K)(function(){let t=[...g.records.commits.values()];return t.forEach(function(t){s.R.debug(t.id)}),t.sort((t,e)=>t.seq-e.seq),t},"getCommitsArray"),P={commitType:h,getConfig:m,setDirection:f,setOptions:x,getOptions:u,commit:b,branch:k,merge:B,cherryPick:w,checkout:E,prettyPrint:L,clear:K,getBranchesAsObjArray:M,getBranches:R,getCommits:v,getCommitsArray:I,getCurrentBranch:(0,c.K)(function(){return g.records.currBranch},"getCurrentBranch"),getDirection:(0,c.K)(function(){return g.records.direction},"getDirection"),getHead:(0,c.K)(function(){return g.records.head},"getHead"),setAccTitle:n.SV,getAccTitle:n.iN,getAccDescription:n.m7,setAccDescription:n.EI,setDiagramTitle:n.ke,getDiagramTitle:n.ab},O=(0,c.K)((t,e)=>{for(let r of((0,a.S)(t,e),t.dir&&e.setDirection(t.dir),t.statements))A(r,e)},"populate"),A=(0,c.K)((t,e)=>{let r={Commit:(0,c.K)(t=>e.commit(G(t)),"Commit"),Branch:(0,c.K)(t=>e.branch(S(t)),"Branch"),Merge:(0,c.K)(t=>e.merge(q(t)),"Merge"),Checkout:(0,c.K)(t=>e.checkout(H(t)),"Checkout"),CherryPicking:(0,c.K)(t=>e.cherryPick(D(t)),"CherryPicking")}[t.$type];r?r(t):s.R.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),G=(0,c.K)(t=>({id:t.id,msg:t.message??"",type:void 0!==t.type?h[t.type]:h.NORMAL,tags:t.tags??void 0}),"parseCommit"),S=(0,c.K)(t=>({name:t.name,order:t.order??0}),"parseBranch"),q=(0,c.K)(t=>({branch:t.branch,id:t.id??"",type:void 0!==t.type?h[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),H=(0,c.K)(t=>t.branch,"parseCheckout"),D=(0,c.K)(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),W={parse:(0,c.K)(async t=>{let e=await (0,d.qg)("gitGraph",t);s.R.debug(e),O(e,P)},"parse")},z=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),_=new Set(["redux-color","redux-dark-color"]),Y=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),j=(0,c.K)((t,e,r=!1)=>r&&t>0?(t-1)%(e-1)+1:t%e,"calcColorIndex"),F=new Map,N=new Map,U=new Map,V=[],J=0,Q="LR",X=(0,c.K)(()=>{F.clear(),N.clear(),U.clear(),J=0,V=[],Q="LR"},"clear"),Z=(0,c.K)(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return("string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):t).forEach(t=>{let r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","0"),r.setAttribute("class","row"),r.textContent=t.trim(),e.appendChild(r)}),e},"drawText"),tt=(0,c.K)(t=>{let e,r,o;return"BT"===Q?(r=(0,c.K)((t,e)=>t<=e,"comparisonFunc"),o=1/0):(r=(0,c.K)((t,e)=>t>=e,"comparisonFunc"),o=0),t.forEach(t=>{let a="TB"===Q||"BT"==Q?N.get(t)?.y:N.get(t)?.x;void 0!==a&&r(a,o)&&(e=t,o=a)}),e},"findClosestParent"),te=(0,c.K)(t=>{let e="",r=1/0;return t.forEach(t=>{let o=N.get(t).y;o<=r&&(e=t,r=o)}),e||void 0},"findClosestParentBT"),tr=(0,c.K)((t,e,r)=>{let o=r,a=r,i=[];t.forEach(t=>{let r=e.get(t);if(!r)throw Error(`Commit not found for key ${t}`);r.parents.length?a=Math.max(o=ta(r),a):i.push(r),ti(r,o)}),o=a,i.forEach(t=>{tn(t,o,r)}),t.forEach(t=>{let r=e.get(t);if(r?.parents.length){let t=te(r.parents);(o=N.get(t).y-40)<=a&&(a=o);let e=F.get(r.branch).pos,i=o-10;N.set(r.id,{x:e,y:i})}})},"setParallelBTPos"),to=(0,c.K)(t=>{let e=tt(t.parents.filter(t=>null!==t));if(!e)throw Error(`Closest parent not found for commit ${t.id}`);let r=N.get(e)?.y;if(void 0===r)throw Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),ta=(0,c.K)(t=>to(t)+40,"calculateCommitPosition"),ti=(0,c.K)((t,e)=>{let r=F.get(t.branch);if(!r)throw Error(`Branch not found for commit ${t.id}`);let o=r.pos,a=e+10;return N.set(t.id,{x:o,y:a}),{x:o,y:a}},"setCommitPosition"),tn=(0,c.K)((t,e,r)=>{let o=F.get(t.branch);if(!o)throw Error(`Branch not found for commit ${t.id}`);let a=o.pos;N.set(t.id,{x:a,y:e+r})},"setRootPosition"),ts=(0,c.K)((t,e,r,o,a,i)=>{let{theme:s}=(0,n.D7)(),c=z.has(s??""),d=_.has(s??""),l=Y.has(s??"");if(i===h.HIGHLIGHT)t.append("rect").attr("x",r.x-10+3*!!c).attr("y",r.y-10+3*!!c).attr("width",c?14:20).attr("height",c?14:20).attr("class",`commit ${e.id} commit-highlight${j(a,8,d)} ${o}-outer`),t.append("rect").attr("x",r.x-6+2*!!c).attr("y",r.y-6+2*!!c).attr("width",c?8:12).attr("height",c?8:12).attr("class",`commit ${e.id} commit${j(a,8,d)} ${o}-inner`);else if(i===h.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",c?7:10).attr("class",`commit ${e.id} ${o}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",c?2.5:2.75).attr("fill",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",c?2.5:2.75).attr("fill",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`);else{let n=t.append("circle");if(n.attr("cx",r.x),n.attr("cy",r.y),n.attr("r",c?7:10),n.attr("class",`commit ${e.id} commit${j(a,8,d)}`),i===h.MERGE){let i=t.append("circle");i.attr("cx",r.x),i.attr("cy",r.y),i.attr("r",c?5:6),i.attr("class",`commit ${o} ${e.id} commit${j(a,8,d)}`)}if(i===h.REVERSE){let i=t.append("path"),n=c?4:5;i.attr("d",`M ${r.x-n},${r.y-n}L${r.x+n},${r.y+n}M${r.x-n},${r.y+n}L${r.x+n},${r.y-n}`).attr("class",`commit ${o} ${e.id} commit${j(a,8,d)}`)}}},"drawCommitBullet"),tc=(0,c.K)((t,e,r,o,a)=>{if(e.type!==h.CHERRY_PICK&&(e.customId&&e.type===h.MERGE||e.type!==h.MERGE)&&a.showCommitLabel){let i=t.append("g"),n=i.insert("rect").attr("class","commit-label-bkg"),s=i.append("text").attr("x",o).attr("y",r.y+25).attr("class","commit-label").text(e.id),c=s.node()?.getBBox();if(c&&(n.attr("x",r.posWithOffset-c.width/2-2).attr("y",r.y+13.5).attr("width",c.width+4).attr("height",c.height+4),"TB"===Q||"BT"===Q?(n.attr("x",r.x-(c.width+16+5)).attr("y",r.y-12),s.attr("x",r.x-(c.width+16)).attr("y",r.y+c.height-12)):s.attr("x",r.posWithOffset-c.width/2),a.rotateCommitLabel))if("TB"===Q||"BT"===Q)s.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),n.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let t=-7.5-(c.width+10)/25*9.5,e=10+c.width/25*8.5;i.attr("transform","translate("+t+", "+e+") rotate(-45, "+o+", "+r.y+")")}}},"drawCommitLabel"),td=(0,c.K)((t,e,r,o)=>{if(e.tags.length>0){let a=0,i=0,n=0,s=[];for(let o of e.tags.reverse()){let e=t.insert("polygon"),c=t.append("circle"),d=t.append("text").attr("y",r.y-16-a).attr("class","tag-label").text(o),l=d.node()?.getBBox();if(!l)throw Error("Tag bbox not found");i=Math.max(i,l.width),n=Math.max(n,l.height),d.attr("x",r.posWithOffset-l.width/2),s.push({tag:d,hole:c,rect:e,yOffset:a}),a+=20}for(let{tag:t,hole:e,rect:a,yOffset:c}of s){let s=n/2,d=r.y-19.2-c;if(a.attr("class","tag-label-bkg").attr("points",` + ${o-i/2-2},${d+2} + ${o-i/2-2},${d-2} + ${r.posWithOffset-i/2-4},${d-s-2} + ${r.posWithOffset+i/2+4},${d-s-2} + ${r.posWithOffset+i/2+4},${d+s+2} + ${r.posWithOffset-i/2-4},${d+s+2}`),e.attr("cy",d).attr("cx",o-i/2+2).attr("r",1.5).attr("class","tag-hole"),"TB"===Q||"BT"===Q){let n=o+c;a.attr("class","tag-label-bkg").attr("points",` + ${r.x},${n+2} + ${r.x},${n-2} + ${r.x+10},${n-s-2} + ${r.x+10+i+4},${n-s-2} + ${r.x+10+i+4},${n+s+2} + ${r.x+10},${n+s+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+o+")"),e.attr("cx",r.x+2).attr("cy",n).attr("transform","translate(12,12) rotate(45, "+r.x+","+o+")"),t.attr("x",r.x+5).attr("y",n+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+o+")")}}}},"drawCommitTags"),tl=(0,c.K)(t=>{switch(t.customType??t.type){case h.NORMAL:return"commit-normal";case h.REVERSE:return"commit-reverse";case h.HIGHLIGHT:return"commit-highlight";case h.MERGE:return"commit-merge";case h.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),th=(0,c.K)((t,e,r,o)=>{let a={x:0,y:0};if(t.parents.length>0){let r=tt(t.parents);if(r){let i=o.get(r)??a;return"TB"===e?i.y+40:"BT"===e?(o.get(t.id)??a).y-40:i.x+40}}else if("TB"===e)return 30;else if("BT"===e)return(o.get(t.id)??a).y-40;return 0},"calculatePosition"),t$=(0,c.K)((t,e,r)=>{let o="BT"===Q&&r?e:e+10,a=F.get(t.branch)?.pos,i="TB"===Q||"BT"===Q?F.get(t.branch)?.pos:o;if(void 0===i||void 0===a)throw Error(`Position were undefined for commit ${t.id}`);let s=z.has((0,n.D7)().theme??"");return{x:i,y:"TB"===Q||"BT"===Q?o:a+(s?7:-2),posWithOffset:o}},"getCommitPosition"),tm=(0,c.K)((t,e,r,o)=>{let a=t.append("g").attr("class","commit-bullets"),i=t.append("g").attr("class","commit-labels"),n=30*("TB"===Q||"BT"===Q),s=[...e.keys()],d=o.parallelCommits??!1,l=s.sort((0,c.K)((t,r)=>{let o=e.get(t)?.seq,a=e.get(r)?.seq;return void 0!==o&&void 0!==a?o-a:0},"sortKeys"));"BT"===Q&&(d&&tr(l,e,n),l=l.reverse()),l.forEach(t=>{let s=e.get(t);if(!s)throw Error(`Commit not found for key ${t}`);d&&(n=th(s,Q,n,N));let c=t$(s,n,d);if(r){let t=tl(s),e=s.customType??s.type,r=F.get(s.branch)?.index??0;ts(a,s,c,t,r,e),tc(i,s,c,n,o),td(i,s,c,n)}"TB"===Q||"BT"===Q?N.set(s.id,{x:c.x,y:c.posWithOffset}):N.set(s.id,{x:c.posWithOffset,y:c.y}),(n="BT"===Q&&d?n+40:n+40+10)>J&&(J=n)})},"drawCommits"),tg=(0,c.K)((t,e,r,o,a)=>{let i=("TB"===Q||"BT"===Q?r.x<o.x:r.y<o.y)?e.branch:t.branch,n=(0,c.K)(t=>t.branch===i,"isOnBranchToGetCurve"),s=(0,c.K)(r=>r.seq>t.seq&&r.seq<e.seq,"isBetweenCommits");return[...a.values()].some(t=>s(t)&&n(t))},"shouldRerouteArrow"),tp=(0,c.K)((t,e,r=0)=>{let o=t+Math.abs(t-e)/2;if(r>5)return o;if(V.every(t=>Math.abs(t-o)>=10))return V.push(o),o;let a=Math.abs(t-e);return tp(t,e-a/5,r+1)},"findLane"),ty=(0,c.K)((t,e,r,o)=>{let a,{theme:i}=(0,n.D7)(),s=_.has(i??""),c=N.get(e.id),d=N.get(r.id);if(void 0===c||void 0===d)throw Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let l=tg(e,r,c,d,o),$="",m="",g=0,p=0,y=F.get(r.branch)?.index;if(r.type===h.MERGE&&e.id!==r.parents[0]&&(y=F.get(e.branch)?.index),l){$="A 10 10, 0, 0, 0,",m="A 10 10, 0, 0, 1,",g=10,p=10;let t=c.y<d.y?tp(c.y,d.y):tp(d.y,c.y),r=c.x<d.x?tp(c.x,d.x):tp(d.x,c.x);"TB"===Q?c.x<d.x?a=`M ${c.x} ${c.y} L ${r-g} ${c.y} ${m} ${r} ${c.y+p} L ${r} ${d.y-g} ${$} ${r+p} ${d.y} L ${d.x} ${d.y}`:(y=F.get(e.branch)?.index,a=`M ${c.x} ${c.y} L ${r+g} ${c.y} ${$} ${r} ${c.y+p} L ${r} ${d.y-g} ${m} ${r-p} ${d.y} L ${d.x} ${d.y}`):"BT"===Q?c.x<d.x?a=`M ${c.x} ${c.y} L ${r-g} ${c.y} ${$} ${r} ${c.y-p} L ${r} ${d.y+g} ${m} ${r+p} ${d.y} L ${d.x} ${d.y}`:(y=F.get(e.branch)?.index,a=`M ${c.x} ${c.y} L ${r+g} ${c.y} ${m} ${r} ${c.y-p} L ${r} ${d.y+g} ${$} ${r-p} ${d.y} L ${d.x} ${d.y}`):c.y<d.y?a=`M ${c.x} ${c.y} L ${c.x} ${t-g} ${$} ${c.x+p} ${t} L ${d.x-g} ${t} ${m} ${d.x} ${t+p} L ${d.x} ${d.y}`:(y=F.get(e.branch)?.index,a=`M ${c.x} ${c.y} L ${c.x} ${t+g} ${m} ${c.x+p} ${t} L ${d.x-g} ${t} ${$} ${d.x} ${t-p} L ${d.x} ${d.y}`)}else $="A 20 20, 0, 0, 0,",m="A 20 20, 0, 0, 1,",g=20,p=20,"TB"===Q?(c.x<d.x&&(a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y-g} ${$} ${c.x+p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x-g} ${c.y} ${m} ${d.x} ${c.y+p} L ${d.x} ${d.y}`),c.x>d.x&&($="A 20 20, 0, 0, 0,",m="A 20 20, 0, 0, 1,",g=20,p=20,a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y-g} ${m} ${c.x-p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x+g} ${c.y} ${$} ${d.x} ${c.y+p} L ${d.x} ${d.y}`),c.x===d.x&&(a=`M ${c.x} ${c.y} L ${d.x} ${d.y}`)):"BT"===Q?(c.x<d.x&&(a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y+g} ${m} ${c.x+p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x-g} ${c.y} ${$} ${d.x} ${c.y-p} L ${d.x} ${d.y}`),c.x>d.x&&($="A 20 20, 0, 0, 0,",m="A 20 20, 0, 0, 1,",g=20,p=20,a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y+g} ${$} ${c.x-p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x+g} ${c.y} ${m} ${d.x} ${c.y-p} L ${d.x} ${d.y}`),c.x===d.x&&(a=`M ${c.x} ${c.y} L ${d.x} ${d.y}`)):(c.y<d.y&&(a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${d.x-g} ${c.y} ${m} ${d.x} ${c.y+p} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${c.x} ${d.y-g} ${$} ${c.x+p} ${d.y} L ${d.x} ${d.y}`),c.y>d.y&&(a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${d.x-g} ${c.y} ${$} ${d.x} ${c.y-p} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${c.x} ${d.y+g} ${m} ${c.x+p} ${d.y} L ${d.x} ${d.y}`),c.y===d.y&&(a=`M ${c.x} ${c.y} L ${d.x} ${d.y}`));if(void 0===a)throw Error("Line definition not found");t.append("path").attr("d",a).attr("class","arrow arrow"+j(y,8,s))},"drawArrow"),tf=(0,c.K)((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(t=>{let o=e.get(t);o.parents&&o.parents.length>0&&o.parents.forEach(t=>{ty(r,e.get(t),o,e)})})},"drawArrows"),tx=(0,c.K)((t,e,r,o)=>{let{look:a,theme:i,themeVariables:s}=(0,n.D7)(),{dropShadow:c,THEME_COLOR_LIMIT:d}=s,l=z.has(i??""),h=_.has(i??""),$=t.append("g");e.forEach((t,e)=>{let i=j(e,l?d:8,h),n=F.get(t.name)?.pos;if(void 0===n)throw Error(`Position not found for branch ${t.name}`);let s="TB"===Q||"BT"===Q?n:l?n+6+1:n-2,m=$.append("line");m.attr("x1",0),m.attr("y1",s),m.attr("x2",J),m.attr("y2",s),m.attr("class","branch branch"+i),"TB"===Q?(m.attr("y1",30),m.attr("x1",n),m.attr("y2",J),m.attr("x2",n)):"BT"===Q&&(m.attr("y1",J),m.attr("x1",n),m.attr("y2",30),m.attr("x2",n)),V.push(s);let g=Z(t.name),p=$.insert("rect"),y=$.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+i);y.node().appendChild(g);let f=g.getBBox(),x=4*!l,u=16*!!l,b=12*!!l;"neo"===a&&p.attr("data-look","neo"),p.attr("class","branchLabelBkg label"+i).attr("style","neo"===a?`filter:${l?`url(#${o}-drop-shadow)`:c}`:"").attr("rx",x).attr("ry",x).attr("x",-f.width-4-30*(!0===r.rotateCommitLabel)).attr("y",-f.height/2+10).attr("width",f.width+18+u).attr("height",f.height+4+b),y.attr("transform","translate("+(-f.width-14-30*(!0===r.rotateCommitLabel)+u/2)+", "+(s-f.height/2-2)+")"),"TB"===Q?(p.attr("x",n-f.width/2-10).attr("y",0),y.attr("transform","translate("+(n-f.width/2-5)+", 0)"),l&&(p.attr("transform",`translate(${-u/2-3}, ${-b-10})`),y.attr("transform","translate("+(n-f.width/2-5)+", "+(-(2*b)+7)+")"))):"BT"===Q?(p.attr("x",n-f.width/2-10).attr("y",J),y.attr("transform","translate("+(n-f.width/2-5)+", "+J+")"),l&&(p.attr("transform",`translate(${-u/2-3}, ${b+10})`),y.attr("transform","translate("+(n-f.width/2-5)+", "+(J+2*b+4)+")"))):p.attr("transform","translate(-19, "+(s-12-b/2)+")")})},"drawBranches"),tu=(0,c.K)(function(t,e,r,o,a){return F.set(t,{pos:e,index:r}),e+=50+40*!!a+("TB"===Q||"BT"===Q?o.width/2:0)},"setBranchPosition"),tb=(0,c.K)(function(t,e,r,o){X(),s.R.debug("in gitgraph renderer",t+"\n","id:",e,r);let a=o.db;if(!a.getConfig)return void s.R.error("getConfig method is not available on db");let c=a.getConfig(),d=c.rotateCommitLabel??!1;U=a.getCommits();let h=a.getBranchesAsObjArray();Q=a.getDirection();let $=(0,l.Ltv)(`[id="${e}"]`),{look:m,theme:g,themeVariables:p}=(0,n.D7)(),{useGradient:y,gradientStart:f,gradientStop:x,filterColor:u}=p;if(y){let t=$.append("defs").append("linearGradient").attr("id",e+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");t.append("stop").attr("offset","0%").attr("stop-color",f).attr("stop-opacity",1),t.append("stop").attr("offset","100%").attr("stop-color",x).attr("stop-opacity",1)}"neo"===m&&z.has(g??"")&&$.append("defs").append("filter").attr("id",e+"-drop-shadow").attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",u);let b=0;h.forEach((t,e)=>{let r=Z(t.name),o=$.append("g"),a=o.insert("g").attr("class","branchLabel"),i=a.insert("g").attr("class","label branch-label");i.node()?.appendChild(r);let n=r.getBBox();b=tu(t.name,b,e,n,d),i.remove(),a.remove(),o.remove()}),tm($,U,!1,c),c.showBranches&&tx($,h,c,e),tf($,U),tm($,U,!0,c),i._K.insertTitle($,"gitTitleText",c.titleTopMargin??0,a.getDiagramTitle()),(0,n.mj)(void 0,$,c.diagramPadding,c.useMaxWidth)},"draw"),tk=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),tB=new Set(["redux-color","redux-dark-color"]),tw=new Set(["neo","neo-dark"]),tE=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),tT=new Set(["redux","redux-dark","redux-color","redux-dark-color","neo","neo-dark"]),tC=(0,c.K)(t=>{let{svgId:e}=t,r="";if(t.useGradient&&e)for(let o=0;o<t.THEME_COLOR_LIMIT;o++)r+=` + .label${o} { fill: ${t.mainBkg}; stroke: url(${e}-gradient); stroke-width: ${t.strokeWidth};} + `;return r},"genGitGraphGradient"),tL=(0,c.K)(t=>{let{theme:e,themeVariables:r}=(0,n.zj)(),{borderColorArray:o}=r,a=tk.has(e);if(tw.has(e)){let e="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++)if(0===r)e+=` + .branch-label${r} { fill: ${t.nodeBorder};} + .commit${r} { stroke: ${t.nodeBorder}; } + .commit-highlight${r} { stroke: ${t.nodeBorder}; fill: ${t.nodeBorder}; } + .arrow${r} { stroke: ${t.nodeBorder}; } + .commit-bullets { fill: ${t.nodeBorder}; } + .commit-cherry-pick${r} { stroke: ${t.nodeBorder}; } + ${tC(t)}`;else{let o=r%8;e+=` + .branch-label${r} { fill: ${t["gitBranchLabel"+o]}; } + .commit${r} { stroke: ${t["git"+o]}; fill: ${t["git"+o]}; } + .commit-highlight${r} { stroke: ${t["gitInv"+o]}; fill: ${t["gitInv"+o]}; } + .arrow${r} { stroke: ${t["git"+o]}; } + `}return e}if(tB.has(e)){let r="";for(let i=0;i<t.THEME_COLOR_LIMIT;i++)if(0===i)r+=` + .branch-label${i} { fill: ${t.nodeBorder}; ${a?`font-weight:${t.noteFontWeight}`:""} } + .commit${i} { stroke: ${t.nodeBorder}; } + .commit-highlight${i} { stroke: ${t.nodeBorder}; fill: ${t.mainBkg}; } + .label${i} { fill: ${t.mainBkg}; stroke: ${t.nodeBorder}; stroke-width: ${t.strokeWidth}; ${a?`font-weight:${t.noteFontWeight}`:""} } + .arrow${i} { stroke: ${t.nodeBorder}; } + .commit-bullets { fill: ${t.nodeBorder}; } + `;else{let n=i%o.length;r+=` + .branch-label${i} { fill: ${t.nodeBorder}; ${a?`font-weight:${t.noteFontWeight}`:""} } + .commit${i} { stroke: ${o[n]}; fill: ${o[n]}; } + .commit-highlight${i} { stroke: ${o[n]}; fill: ${o[n]}; } + .label${i} { fill: ${tE.has(e)?t.mainBkg:o[n]}; stroke: ${o[n]}; stroke-width: ${t.strokeWidth}; } + .arrow${i} { stroke: ${o[n]}; } + `}return r}{let e="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++)e+=` + .branch-label${r} { fill: ${t.nodeBorder}; ${a?`font-weight:${t.noteFontWeight}`:""} } + .commit${r} { stroke: ${t.nodeBorder}; } + .commit-highlight${r} { stroke: ${t.nodeBorder}; fill: ${t.nodeBorder}; } + .label${r} { fill: ${t.mainBkg}; stroke: ${t.nodeBorder}; stroke-width: ${t.strokeWidth}; ${a?`font-weight:${t.noteFontWeight}`:""}} + .arrow${r} { stroke: ${t.nodeBorder}; } + .commit-bullets { fill: ${t.nodeBorder}; } + .commit-cherry-pick${r} { stroke: ${t.nodeBorder}; } + `;return e}},"genColor"),tK=(0,c.K)(t=>`${Array.from({length:t.THEME_COLOR_LIMIT},(t,e)=>e).map(e=>{let r=e%8;return` + .branch-label${e} { fill: ${t["gitBranchLabel"+r]}; } + .commit${e} { stroke: ${t["git"+r]}; fill: ${t["git"+r]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+r]}; fill: ${t["gitInv"+r]}; } + .label${e} { fill: ${t["git"+r]}; } + .arrow${e} { stroke: ${t["git"+r]}; } + `}).join("\n")}`,"normalTheme"),tM={parser:W,db:P,renderer:{draw:tb},styles:(0,c.K)(t=>{let{theme:e}=(0,n.zj)(),r=tT.has(e);return` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + + ${r?tL(t):tK(t)} + + .branch { + stroke-width: ${t.strokeWidth}; + stroke: ${t.commitLineColor??t.lineColor}; + stroke-dasharray: ${r?"4 2":"2"}; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${r?t.nodeBorder:t.commitLabelColor}; ${r?`font-weight:${t.noteFontWeight};`:""}} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${r?"transparent":t.commitLabelBackground}; opacity: ${r?"":.5}; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${r?t.mainBkg:t.tagLabelBackground}; stroke: ${r?t.nodeBorder:t.tagLabelBorder}; ${r?`filter:${t.dropShadow}`:""} } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${r?t.mainBkg:t.primaryColor}; + fill: ${r?t.mainBkg:t.primaryColor}; + } + .commit-reverse { + stroke: ${r?t.mainBkg:t.primaryColor}; + fill: ${r?t.mainBkg:t.primaryColor}; + stroke-width: ${r?t.strokeWidth:3}; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${r?t.mainBkg:t.primaryColor}; + fill: ${r?t.mainBkg:t.primaryColor}; + } + + .arrow { + /* Intentional: neo themes keep the bold 8px arrow (like classic themes); only redux-geometry themes use the thinner options.strokeWidth. */ + stroke-width: ${tk.has(e)?t.strokeWidth:8}; + stroke-linecap: round; + fill: none + } + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`},"getStyles")}}}]); \ No newline at end of file diff --git a/en/assets/js/4137.67bb73ee.js b/en/assets/js/4137.67bb73ee.js deleted file mode 100644 index 40231fa..0000000 --- a/en/assets/js/4137.67bb73ee.js +++ /dev/null @@ -1,104 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4137"],{5350(t,e,r){r.d(e,{m:()=>a});var o=r(6827),a=class{constructor(t){this.init=t,this.records=this.init()}static{(0,o.K)(this,"ImperativeState")}reset(){this.records=this.init()}}},2208(t,e,r){r.d(e,{diagram:()=>tM});var o=r(5350),a=r(7454),i=r(6348),n=r(1177),s=r(1293),c=r(6827),d=r(8731),l=r(7829),h={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},$=n.UI.gitGraph,m=(0,c.K)(()=>(0,i.$t)({...$,...(0,n.zj)().gitGraph}),"getConfig"),g=new o.m(()=>{let t=m(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});function p(){return(0,i.yT)({length:7})}function y(t,e){let r=Object.create(null);return t.reduce((t,o)=>{let a=e(o);return r[a]||(r[a]=!0,t.push(o)),t},[])}(0,c.K)(p,"getID"),(0,c.K)(y,"uniqBy");var f=(0,c.K)(function(t){g.records.direction=t},"setDirection"),x=(0,c.K)(function(t){s.R.debug("options str",t),t=(t=t?.trim())||"{}";try{g.records.options=JSON.parse(t)}catch(t){s.R.error("error while parsing gitGraph options",t.message)}},"setOptions"),u=(0,c.K)(function(){return g.records.options},"getOptions"),b=(0,c.K)(function(t){let e=t.msg,r=t.id,o=t.type,a=t.tags;s.R.info("commit",e,r,o,a),s.R.debug("Entering commit:",e,r,o,a);let i=m();r=n.Y2.sanitizeText(r,i),e=n.Y2.sanitizeText(e,i),a=a?.map(t=>n.Y2.sanitizeText(t,i));let c={id:r||g.records.seq+"-"+p(),message:e,seq:g.records.seq++,type:o??h.NORMAL,tags:a??[],parents:null==g.records.head?[]:[g.records.head.id],branch:g.records.currBranch};g.records.head=c,s.R.info("main branch",i.mainBranchName),g.records.commits.has(c.id)&&s.R.warn(`Commit ID ${c.id} already exists`),g.records.commits.set(c.id,c),g.records.branches.set(g.records.currBranch,c.id),s.R.debug("in pushCommit "+c.id)},"commit"),k=(0,c.K)(function(t){let e=t.name,r=t.order;if(e=n.Y2.sanitizeText(e,m()),g.records.branches.has(e))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);g.records.branches.set(e,null!=g.records.head?g.records.head.id:null),g.records.branchConfig.set(e,{name:e,order:r}),E(e),s.R.debug("in createBranch")},"branch"),B=(0,c.K)(t=>{let e=t.branch,r=t.id,o=t.type,a=t.tags,i=m();e=n.Y2.sanitizeText(e,i),r&&(r=n.Y2.sanitizeText(r,i));let c=g.records.branches.get(g.records.currBranch),d=g.records.branches.get(e),l=c?g.records.commits.get(c):void 0,$=d?g.records.commits.get(d):void 0;if(l&&$&&l.branch===e)throw Error(`Cannot merge branch '${e}' into itself.`);if(g.records.currBranch===e){let t=Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(void 0===l||!l){let t=Error(`Incorrect usage of "merge". Current branch (${g.records.currBranch})has no commits`);throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},t}if(!g.records.branches.has(e)){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},t}if(void 0===$||!$){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},t}if(l===$){let t=Error('Incorrect usage of "merge". Both branches have same head');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(r&&g.records.commits.has(r)){let t=Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom id");throw t.hash={text:`merge ${e} ${r} ${o} ${a?.join(" ")}`,token:`merge ${e} ${r} ${o} ${a?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${o} ${a?.join(" ")}`]},t}let y={id:r||`${g.records.seq}-${p()}`,message:`merged branch ${e} into ${g.records.currBranch}`,seq:g.records.seq++,parents:null==g.records.head?[]:[g.records.head.id,d||""],branch:g.records.currBranch,type:h.MERGE,customType:o,customId:!!r,tags:a??[]};g.records.head=y,g.records.commits.set(y.id,y),g.records.branches.set(g.records.currBranch,y.id),s.R.debug(g.records.branches),s.R.debug("in mergeBranch")},"merge"),w=(0,c.K)(function(t){let e=t.id,r=t.targetId,o=t.tags,a=t.parent;s.R.debug("Entering cherryPick:",e,r,o);let i=m();if(e=n.Y2.sanitizeText(e,i),r=n.Y2.sanitizeText(r,i),o=o?.map(t=>n.Y2.sanitizeText(t,i)),a=n.Y2.sanitizeText(a,i),!e||!g.records.commits.has(e)){let t=Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let c=g.records.commits.get(e);if(void 0===c||!c)throw Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(a&&!(Array.isArray(c.parents)&&c.parents.includes(a)))throw Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let d=c.branch;if(c.type===h.MERGE&&!a)throw Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!g.records.commits.has(r)){if(d===g.records.currBranch){let t=Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let t=g.records.branches.get(g.records.currBranch);if(void 0===t||!t){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${g.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let i=g.records.commits.get(t);if(void 0===i||!i){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${g.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let n={id:g.records.seq+"-"+p(),message:`cherry-picked ${c?.message} into ${g.records.currBranch}`,seq:g.records.seq++,parents:null==g.records.head?[]:[g.records.head.id,c.id],branch:g.records.currBranch,type:h.CHERRY_PICK,tags:o?o.filter(Boolean):[`cherry-pick:${c.id}${c.type===h.MERGE?`|parent:${a}`:""}`]};g.records.head=n,g.records.commits.set(n.id,n),g.records.branches.set(g.records.currBranch,n.id),s.R.debug(g.records.branches),s.R.debug("in cherryPick")}},"cherryPick"),E=(0,c.K)(function(t){if(t=n.Y2.sanitizeText(t,m()),g.records.branches.has(t)){g.records.currBranch=t;let e=g.records.branches.get(g.records.currBranch);void 0!==e&&e?g.records.head=g.records.commits.get(e)??null:g.records.head=null}else{let e=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");function L(t,e,r){let o=t.indexOf(e);-1===o?t.push(r):t.splice(o,1,r)}function C(t){let e=t.reduce((t,e)=>t.seq>e.seq?t:e,t[0]),r="";t.forEach(function(t){t===e?r+=" *":r+=" |"});let o=[r,e.id,e.seq];for(let t in g.records.branches)g.records.branches.get(t)===e.id&&o.push(t);if(s.R.debug(o.join(" ")),e.parents&&2==e.parents.length&&e.parents[0]&&e.parents[1]){let r=g.records.commits.get(e.parents[0]);L(t,e,r),e.parents[1]&&t.push(g.records.commits.get(e.parents[1]))}else if(0==e.parents.length)return;else if(e.parents[0]){let r=g.records.commits.get(e.parents[0]);L(t,e,r)}C(t=y(t,t=>t.id))}(0,c.K)(L,"upsert"),(0,c.K)(C,"prettyPrintCommitHistory");var T=(0,c.K)(function(){s.R.debug(g.records.commits),C([I()[0]])},"prettyPrint"),K=(0,c.K)(function(){g.reset(),(0,n.IU)()},"clear"),M=(0,c.K)(function(){return[...g.records.branchConfig.values()].map((t,e)=>null!==t.order&&void 0!==t.order?t:{...t,order:parseFloat(`0.${e}`)}).sort((t,e)=>(t.order??0)-(e.order??0)).map(({name:t})=>({name:t}))},"getBranchesAsObjArray"),R=(0,c.K)(function(){return g.records.branches},"getBranches"),v=(0,c.K)(function(){return g.records.commits},"getCommits"),I=(0,c.K)(function(){let t=[...g.records.commits.values()];return t.forEach(function(t){s.R.debug(t.id)}),t.sort((t,e)=>t.seq-e.seq),t},"getCommitsArray"),P={commitType:h,getConfig:m,setDirection:f,setOptions:x,getOptions:u,commit:b,branch:k,merge:B,cherryPick:w,checkout:E,prettyPrint:T,clear:K,getBranchesAsObjArray:M,getBranches:R,getCommits:v,getCommitsArray:I,getCurrentBranch:(0,c.K)(function(){return g.records.currBranch},"getCurrentBranch"),getDirection:(0,c.K)(function(){return g.records.direction},"getDirection"),getHead:(0,c.K)(function(){return g.records.head},"getHead"),setAccTitle:n.SV,getAccTitle:n.iN,getAccDescription:n.m7,setAccDescription:n.EI,setDiagramTitle:n.ke,getDiagramTitle:n.ab},O=(0,c.K)((t,e)=>{for(let r of((0,a.S)(t,e),t.dir&&e.setDirection(t.dir),t.statements))A(r,e)},"populate"),A=(0,c.K)((t,e)=>{let r={Commit:(0,c.K)(t=>e.commit(G(t)),"Commit"),Branch:(0,c.K)(t=>e.branch(S(t)),"Branch"),Merge:(0,c.K)(t=>e.merge(q(t)),"Merge"),Checkout:(0,c.K)(t=>e.checkout(H(t)),"Checkout"),CherryPicking:(0,c.K)(t=>e.cherryPick(W(t)),"CherryPicking")}[t.$type];r?r(t):s.R.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),G=(0,c.K)(t=>({id:t.id,msg:t.message??"",type:void 0!==t.type?h[t.type]:h.NORMAL,tags:t.tags??void 0}),"parseCommit"),S=(0,c.K)(t=>({name:t.name,order:t.order??0}),"parseBranch"),q=(0,c.K)(t=>({branch:t.branch,id:t.id??"",type:void 0!==t.type?h[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),H=(0,c.K)(t=>t.branch,"parseCheckout"),W=(0,c.K)(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),z={parse:(0,c.K)(async t=>{let e=await (0,d.qg)("gitGraph",t);s.R.debug(e),O(e,P)},"parse")},D=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),_=new Set(["redux-color","redux-dark-color"]),Y=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),j=(0,c.K)((t,e,r=!1)=>r&&t>0?(t-1)%(e-1)+1:t%e,"calcColorIndex"),F=new Map,N=new Map,U=new Map,V=[],J=0,Q="LR",X=(0,c.K)(()=>{F.clear(),N.clear(),U.clear(),J=0,V=[],Q="LR"},"clear"),Z=(0,c.K)(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return("string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):t).forEach(t=>{let r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","0"),r.setAttribute("class","row"),r.textContent=t.trim(),e.appendChild(r)}),e},"drawText"),tt=(0,c.K)(t=>{let e,r,o;return"BT"===Q?(r=(0,c.K)((t,e)=>t<=e,"comparisonFunc"),o=1/0):(r=(0,c.K)((t,e)=>t>=e,"comparisonFunc"),o=0),t.forEach(t=>{let a="TB"===Q||"BT"==Q?N.get(t)?.y:N.get(t)?.x;void 0!==a&&r(a,o)&&(e=t,o=a)}),e},"findClosestParent"),te=(0,c.K)(t=>{let e="",r=1/0;return t.forEach(t=>{let o=N.get(t).y;o<=r&&(e=t,r=o)}),e||void 0},"findClosestParentBT"),tr=(0,c.K)((t,e,r)=>{let o=r,a=r,i=[];t.forEach(t=>{let r=e.get(t);if(!r)throw Error(`Commit not found for key ${t}`);r.parents.length?a=Math.max(o=ta(r),a):i.push(r),ti(r,o)}),o=a,i.forEach(t=>{tn(t,o,r)}),t.forEach(t=>{let r=e.get(t);if(r?.parents.length){let t=te(r.parents);(o=N.get(t).y-40)<=a&&(a=o);let e=F.get(r.branch).pos,i=o-10;N.set(r.id,{x:e,y:i})}})},"setParallelBTPos"),to=(0,c.K)(t=>{let e=tt(t.parents.filter(t=>null!==t));if(!e)throw Error(`Closest parent not found for commit ${t.id}`);let r=N.get(e)?.y;if(void 0===r)throw Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),ta=(0,c.K)(t=>to(t)+40,"calculateCommitPosition"),ti=(0,c.K)((t,e)=>{let r=F.get(t.branch);if(!r)throw Error(`Branch not found for commit ${t.id}`);let o=r.pos,a=e+10;return N.set(t.id,{x:o,y:a}),{x:o,y:a}},"setCommitPosition"),tn=(0,c.K)((t,e,r)=>{let o=F.get(t.branch);if(!o)throw Error(`Branch not found for commit ${t.id}`);let a=o.pos;N.set(t.id,{x:a,y:e+r})},"setRootPosition"),ts=(0,c.K)((t,e,r,o,a,i)=>{let{theme:s}=(0,n.D7)(),c=D.has(s??""),d=_.has(s??""),l=Y.has(s??"");if(i===h.HIGHLIGHT)t.append("rect").attr("x",r.x-10+3*!!c).attr("y",r.y-10+3*!!c).attr("width",c?14:20).attr("height",c?14:20).attr("class",`commit ${e.id} commit-highlight${j(a,8,d)} ${o}-outer`),t.append("rect").attr("x",r.x-6+2*!!c).attr("y",r.y-6+2*!!c).attr("width",c?8:12).attr("height",c?8:12).attr("class",`commit ${e.id} commit${j(a,8,d)} ${o}-inner`);else if(i===h.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",c?7:10).attr("class",`commit ${e.id} ${o}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",c?2.5:2.75).attr("fill",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",c?2.5:2.75).attr("fill",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`);else{let n=t.append("circle");if(n.attr("cx",r.x),n.attr("cy",r.y),n.attr("r",c?7:10),n.attr("class",`commit ${e.id} commit${j(a,8,d)}`),i===h.MERGE){let i=t.append("circle");i.attr("cx",r.x),i.attr("cy",r.y),i.attr("r",c?5:6),i.attr("class",`commit ${o} ${e.id} commit${j(a,8,d)}`)}if(i===h.REVERSE){let i=t.append("path"),n=c?4:5;i.attr("d",`M ${r.x-n},${r.y-n}L${r.x+n},${r.y+n}M${r.x-n},${r.y+n}L${r.x+n},${r.y-n}`).attr("class",`commit ${o} ${e.id} commit${j(a,8,d)}`)}}},"drawCommitBullet"),tc=(0,c.K)((t,e,r,o,a)=>{if(e.type!==h.CHERRY_PICK&&(e.customId&&e.type===h.MERGE||e.type!==h.MERGE)&&a.showCommitLabel){let i=t.append("g"),n=i.insert("rect").attr("class","commit-label-bkg"),s=i.append("text").attr("x",o).attr("y",r.y+25).attr("class","commit-label").text(e.id),c=s.node()?.getBBox();if(c&&(n.attr("x",r.posWithOffset-c.width/2-2).attr("y",r.y+13.5).attr("width",c.width+4).attr("height",c.height+4),"TB"===Q||"BT"===Q?(n.attr("x",r.x-(c.width+16+5)).attr("y",r.y-12),s.attr("x",r.x-(c.width+16)).attr("y",r.y+c.height-12)):s.attr("x",r.posWithOffset-c.width/2),a.rotateCommitLabel))if("TB"===Q||"BT"===Q)s.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),n.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let t=-7.5-(c.width+10)/25*9.5,e=10+c.width/25*8.5;i.attr("transform","translate("+t+", "+e+") rotate(-45, "+o+", "+r.y+")")}}},"drawCommitLabel"),td=(0,c.K)((t,e,r,o)=>{if(e.tags.length>0){let a=0,i=0,n=0,s=[];for(let o of e.tags.reverse()){let e=t.insert("polygon"),c=t.append("circle"),d=t.append("text").attr("y",r.y-16-a).attr("class","tag-label").text(o),l=d.node()?.getBBox();if(!l)throw Error("Tag bbox not found");i=Math.max(i,l.width),n=Math.max(n,l.height),d.attr("x",r.posWithOffset-l.width/2),s.push({tag:d,hole:c,rect:e,yOffset:a}),a+=20}for(let{tag:t,hole:e,rect:a,yOffset:c}of s){let s=n/2,d=r.y-19.2-c;if(a.attr("class","tag-label-bkg").attr("points",` - ${o-i/2-2},${d+2} - ${o-i/2-2},${d-2} - ${r.posWithOffset-i/2-4},${d-s-2} - ${r.posWithOffset+i/2+4},${d-s-2} - ${r.posWithOffset+i/2+4},${d+s+2} - ${r.posWithOffset-i/2-4},${d+s+2}`),e.attr("cy",d).attr("cx",o-i/2+2).attr("r",1.5).attr("class","tag-hole"),"TB"===Q||"BT"===Q){let n=o+c;a.attr("class","tag-label-bkg").attr("points",` - ${r.x},${n+2} - ${r.x},${n-2} - ${r.x+10},${n-s-2} - ${r.x+10+i+4},${n-s-2} - ${r.x+10+i+4},${n+s+2} - ${r.x+10},${n+s+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+o+")"),e.attr("cx",r.x+2).attr("cy",n).attr("transform","translate(12,12) rotate(45, "+r.x+","+o+")"),t.attr("x",r.x+5).attr("y",n+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+o+")")}}}},"drawCommitTags"),tl=(0,c.K)(t=>{switch(t.customType??t.type){case h.NORMAL:return"commit-normal";case h.REVERSE:return"commit-reverse";case h.HIGHLIGHT:return"commit-highlight";case h.MERGE:return"commit-merge";case h.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),th=(0,c.K)((t,e,r,o)=>{let a={x:0,y:0};if(t.parents.length>0){let r=tt(t.parents);if(r){let i=o.get(r)??a;return"TB"===e?i.y+40:"BT"===e?(o.get(t.id)??a).y-40:i.x+40}}else if("TB"===e)return 30;else if("BT"===e)return(o.get(t.id)??a).y-40;return 0},"calculatePosition"),t$=(0,c.K)((t,e,r)=>{let o="BT"===Q&&r?e:e+10,a=F.get(t.branch)?.pos,i="TB"===Q||"BT"===Q?F.get(t.branch)?.pos:o;if(void 0===i||void 0===a)throw Error(`Position were undefined for commit ${t.id}`);let s=D.has((0,n.D7)().theme??"");return{x:i,y:"TB"===Q||"BT"===Q?o:a+(s?7:-2),posWithOffset:o}},"getCommitPosition"),tm=(0,c.K)((t,e,r,o)=>{let a=t.append("g").attr("class","commit-bullets"),i=t.append("g").attr("class","commit-labels"),n=30*("TB"===Q||"BT"===Q),s=[...e.keys()],d=o.parallelCommits??!1,l=s.sort((0,c.K)((t,r)=>{let o=e.get(t)?.seq,a=e.get(r)?.seq;return void 0!==o&&void 0!==a?o-a:0},"sortKeys"));"BT"===Q&&(d&&tr(l,e,n),l=l.reverse()),l.forEach(t=>{let s=e.get(t);if(!s)throw Error(`Commit not found for key ${t}`);d&&(n=th(s,Q,n,N));let c=t$(s,n,d);if(r){let t=tl(s),e=s.customType??s.type,r=F.get(s.branch)?.index??0;ts(a,s,c,t,r,e),tc(i,s,c,n,o),td(i,s,c,n)}"TB"===Q||"BT"===Q?N.set(s.id,{x:c.x,y:c.posWithOffset}):N.set(s.id,{x:c.posWithOffset,y:c.y}),(n="BT"===Q&&d?n+40:n+40+10)>J&&(J=n)})},"drawCommits"),tg=(0,c.K)((t,e,r,o,a)=>{let i=("TB"===Q||"BT"===Q?r.x<o.x:r.y<o.y)?e.branch:t.branch,n=(0,c.K)(t=>t.branch===i,"isOnBranchToGetCurve"),s=(0,c.K)(r=>r.seq>t.seq&&r.seq<e.seq,"isBetweenCommits");return[...a.values()].some(t=>s(t)&&n(t))},"shouldRerouteArrow"),tp=(0,c.K)((t,e,r=0)=>{let o=t+Math.abs(t-e)/2;if(r>5)return o;if(V.every(t=>Math.abs(t-o)>=10))return V.push(o),o;let a=Math.abs(t-e);return tp(t,e-a/5,r+1)},"findLane"),ty=(0,c.K)((t,e,r,o)=>{let a,{theme:i}=(0,n.D7)(),s=_.has(i??""),c=N.get(e.id),d=N.get(r.id);if(void 0===c||void 0===d)throw Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let l=tg(e,r,c,d,o),$="",m="",g=0,p=0,y=F.get(r.branch)?.index;if(r.type===h.MERGE&&e.id!==r.parents[0]&&(y=F.get(e.branch)?.index),l){$="A 10 10, 0, 0, 0,",m="A 10 10, 0, 0, 1,",g=10,p=10;let t=c.y<d.y?tp(c.y,d.y):tp(d.y,c.y),r=c.x<d.x?tp(c.x,d.x):tp(d.x,c.x);"TB"===Q?c.x<d.x?a=`M ${c.x} ${c.y} L ${r-g} ${c.y} ${m} ${r} ${c.y+p} L ${r} ${d.y-g} ${$} ${r+p} ${d.y} L ${d.x} ${d.y}`:(y=F.get(e.branch)?.index,a=`M ${c.x} ${c.y} L ${r+g} ${c.y} ${$} ${r} ${c.y+p} L ${r} ${d.y-g} ${m} ${r-p} ${d.y} L ${d.x} ${d.y}`):"BT"===Q?c.x<d.x?a=`M ${c.x} ${c.y} L ${r-g} ${c.y} ${$} ${r} ${c.y-p} L ${r} ${d.y+g} ${m} ${r+p} ${d.y} L ${d.x} ${d.y}`:(y=F.get(e.branch)?.index,a=`M ${c.x} ${c.y} L ${r+g} ${c.y} ${m} ${r} ${c.y-p} L ${r} ${d.y+g} ${$} ${r-p} ${d.y} L ${d.x} ${d.y}`):c.y<d.y?a=`M ${c.x} ${c.y} L ${c.x} ${t-g} ${$} ${c.x+p} ${t} L ${d.x-g} ${t} ${m} ${d.x} ${t+p} L ${d.x} ${d.y}`:(y=F.get(e.branch)?.index,a=`M ${c.x} ${c.y} L ${c.x} ${t+g} ${m} ${c.x+p} ${t} L ${d.x-g} ${t} ${$} ${d.x} ${t-p} L ${d.x} ${d.y}`)}else $="A 20 20, 0, 0, 0,",m="A 20 20, 0, 0, 1,",g=20,p=20,"TB"===Q?(c.x<d.x&&(a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y-g} ${$} ${c.x+p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x-g} ${c.y} ${m} ${d.x} ${c.y+p} L ${d.x} ${d.y}`),c.x>d.x&&($="A 20 20, 0, 0, 0,",m="A 20 20, 0, 0, 1,",g=20,p=20,a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y-g} ${m} ${c.x-p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x+g} ${c.y} ${$} ${d.x} ${c.y+p} L ${d.x} ${d.y}`),c.x===d.x&&(a=`M ${c.x} ${c.y} L ${d.x} ${d.y}`)):"BT"===Q?(c.x<d.x&&(a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y+g} ${m} ${c.x+p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x-g} ${c.y} ${$} ${d.x} ${c.y-p} L ${d.x} ${d.y}`),c.x>d.x&&($="A 20 20, 0, 0, 0,",m="A 20 20, 0, 0, 1,",g=20,p=20,a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y+g} ${$} ${c.x-p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x+g} ${c.y} ${m} ${d.x} ${c.y-p} L ${d.x} ${d.y}`),c.x===d.x&&(a=`M ${c.x} ${c.y} L ${d.x} ${d.y}`)):(c.y<d.y&&(a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${d.x-g} ${c.y} ${m} ${d.x} ${c.y+p} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${c.x} ${d.y-g} ${$} ${c.x+p} ${d.y} L ${d.x} ${d.y}`),c.y>d.y&&(a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${d.x-g} ${c.y} ${$} ${d.x} ${c.y-p} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${c.x} ${d.y+g} ${m} ${c.x+p} ${d.y} L ${d.x} ${d.y}`),c.y===d.y&&(a=`M ${c.x} ${c.y} L ${d.x} ${d.y}`));if(void 0===a)throw Error("Line definition not found");t.append("path").attr("d",a).attr("class","arrow arrow"+j(y,8,s))},"drawArrow"),tf=(0,c.K)((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(t=>{let o=e.get(t);o.parents&&o.parents.length>0&&o.parents.forEach(t=>{ty(r,e.get(t),o,e)})})},"drawArrows"),tx=(0,c.K)((t,e,r,o)=>{let{look:a,theme:i,themeVariables:s}=(0,n.D7)(),{dropShadow:c,THEME_COLOR_LIMIT:d}=s,l=D.has(i??""),h=_.has(i??""),$=t.append("g");e.forEach((t,e)=>{let i=j(e,l?d:8,h),n=F.get(t.name)?.pos;if(void 0===n)throw Error(`Position not found for branch ${t.name}`);let s="TB"===Q||"BT"===Q?n:l?n+6+1:n-2,m=$.append("line");m.attr("x1",0),m.attr("y1",s),m.attr("x2",J),m.attr("y2",s),m.attr("class","branch branch"+i),"TB"===Q?(m.attr("y1",30),m.attr("x1",n),m.attr("y2",J),m.attr("x2",n)):"BT"===Q&&(m.attr("y1",J),m.attr("x1",n),m.attr("y2",30),m.attr("x2",n)),V.push(s);let g=Z(t.name),p=$.insert("rect"),y=$.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+i);y.node().appendChild(g);let f=g.getBBox(),x=4*!l,u=16*!!l,b=12*!!l;"neo"===a&&p.attr("data-look","neo"),p.attr("class","branchLabelBkg label"+i).attr("style","neo"===a?`filter:${l?`url(#${o}-drop-shadow)`:c}`:"").attr("rx",x).attr("ry",x).attr("x",-f.width-4-30*(!0===r.rotateCommitLabel)).attr("y",-f.height/2+10).attr("width",f.width+18+u).attr("height",f.height+4+b),y.attr("transform","translate("+(-f.width-14-30*(!0===r.rotateCommitLabel)+u/2)+", "+(s-f.height/2-2)+")"),"TB"===Q?(p.attr("x",n-f.width/2-10).attr("y",0),y.attr("transform","translate("+(n-f.width/2-5)+", 0)"),l&&(p.attr("transform",`translate(${-u/2-3}, ${-b-10})`),y.attr("transform","translate("+(n-f.width/2-5)+", "+(-(2*b)+7)+")"))):"BT"===Q?(p.attr("x",n-f.width/2-10).attr("y",J),y.attr("transform","translate("+(n-f.width/2-5)+", "+J+")"),l&&(p.attr("transform",`translate(${-u/2-3}, ${b+10})`),y.attr("transform","translate("+(n-f.width/2-5)+", "+(J+2*b+4)+")"))):p.attr("transform","translate(-19, "+(s-12-b/2)+")")})},"drawBranches"),tu=(0,c.K)(function(t,e,r,o,a){return F.set(t,{pos:e,index:r}),e+=50+40*!!a+("TB"===Q||"BT"===Q?o.width/2:0)},"setBranchPosition"),tb=(0,c.K)(function(t,e,r,o){X(),s.R.debug("in gitgraph renderer",t+"\n","id:",e,r);let a=o.db;if(!a.getConfig)return void s.R.error("getConfig method is not available on db");let c=a.getConfig(),d=c.rotateCommitLabel??!1;U=a.getCommits();let h=a.getBranchesAsObjArray();Q=a.getDirection();let $=(0,l.Ltv)(`[id="${e}"]`),{look:m,theme:g,themeVariables:p}=(0,n.D7)(),{useGradient:y,gradientStart:f,gradientStop:x,filterColor:u}=p;if(y){let t=$.append("defs").append("linearGradient").attr("id",e+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");t.append("stop").attr("offset","0%").attr("stop-color",f).attr("stop-opacity",1),t.append("stop").attr("offset","100%").attr("stop-color",x).attr("stop-opacity",1)}"neo"===m&&D.has(g??"")&&$.append("defs").append("filter").attr("id",e+"-drop-shadow").attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",u);let b=0;h.forEach((t,e)=>{let r=Z(t.name),o=$.append("g"),a=o.insert("g").attr("class","branchLabel"),i=a.insert("g").attr("class","label branch-label");i.node()?.appendChild(r);let n=r.getBBox();b=tu(t.name,b,e,n,d),i.remove(),a.remove(),o.remove()}),tm($,U,!1,c),c.showBranches&&tx($,h,c,e),tf($,U),tm($,U,!0,c),i._K.insertTitle($,"gitTitleText",c.titleTopMargin??0,a.getDiagramTitle()),(0,n.mj)(void 0,$,c.diagramPadding,c.useMaxWidth)},"draw"),tk=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),tB=new Set(["redux-color","redux-dark-color"]),tw=new Set(["neo","neo-dark"]),tE=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),tL=new Set(["redux","redux-dark","redux-color","redux-dark-color","neo","neo-dark"]),tC=(0,c.K)(t=>{let{svgId:e}=t,r="";if(t.useGradient&&e)for(let o=0;o<t.THEME_COLOR_LIMIT;o++)r+=` - .label${o} { fill: ${t.mainBkg}; stroke: url(${e}-gradient); stroke-width: ${t.strokeWidth};} - `;return r},"genGitGraphGradient"),tT=(0,c.K)(t=>{let{theme:e,themeVariables:r}=(0,n.zj)(),{borderColorArray:o}=r,a=tk.has(e);if(tw.has(e)){let e="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++)if(0===r)e+=` - .branch-label${r} { fill: ${t.nodeBorder};} - .commit${r} { stroke: ${t.nodeBorder}; } - .commit-highlight${r} { stroke: ${t.nodeBorder}; fill: ${t.nodeBorder}; } - .arrow${r} { stroke: ${t.nodeBorder}; } - .commit-bullets { fill: ${t.nodeBorder}; } - .commit-cherry-pick${r} { stroke: ${t.nodeBorder}; } - ${tC(t)}`;else{let o=r%8;e+=` - .branch-label${r} { fill: ${t["gitBranchLabel"+o]}; } - .commit${r} { stroke: ${t["git"+o]}; fill: ${t["git"+o]}; } - .commit-highlight${r} { stroke: ${t["gitInv"+o]}; fill: ${t["gitInv"+o]}; } - .arrow${r} { stroke: ${t["git"+o]}; } - `}return e}if(tB.has(e)){let r="";for(let i=0;i<t.THEME_COLOR_LIMIT;i++)if(0===i)r+=` - .branch-label${i} { fill: ${t.nodeBorder}; ${a?`font-weight:${t.noteFontWeight}`:""} } - .commit${i} { stroke: ${t.nodeBorder}; } - .commit-highlight${i} { stroke: ${t.nodeBorder}; fill: ${t.mainBkg}; } - .label${i} { fill: ${t.mainBkg}; stroke: ${t.nodeBorder}; stroke-width: ${t.strokeWidth}; ${a?`font-weight:${t.noteFontWeight}`:""} } - .arrow${i} { stroke: ${t.nodeBorder}; } - .commit-bullets { fill: ${t.nodeBorder}; } - `;else{let n=i%o.length;r+=` - .branch-label${i} { fill: ${t.nodeBorder}; ${a?`font-weight:${t.noteFontWeight}`:""} } - .commit${i} { stroke: ${o[n]}; fill: ${o[n]}; } - .commit-highlight${i} { stroke: ${o[n]}; fill: ${o[n]}; } - .label${i} { fill: ${tE.has(e)?t.mainBkg:o[n]}; stroke: ${o[n]}; stroke-width: ${t.strokeWidth}; } - .arrow${i} { stroke: ${o[n]}; } - `}return r}{let e="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++)e+=` - .branch-label${r} { fill: ${t.nodeBorder}; ${a?`font-weight:${t.noteFontWeight}`:""} } - .commit${r} { stroke: ${t.nodeBorder}; } - .commit-highlight${r} { stroke: ${t.nodeBorder}; fill: ${t.nodeBorder}; } - .label${r} { fill: ${t.mainBkg}; stroke: ${t.nodeBorder}; stroke-width: ${t.strokeWidth}; ${a?`font-weight:${t.noteFontWeight}`:""}} - .arrow${r} { stroke: ${t.nodeBorder}; } - .commit-bullets { fill: ${t.nodeBorder}; } - .commit-cherry-pick${r} { stroke: ${t.nodeBorder}; } - `;return e}},"genColor"),tK=(0,c.K)(t=>`${Array.from({length:t.THEME_COLOR_LIMIT},(t,e)=>e).map(e=>{let r=e%8;return` - .branch-label${e} { fill: ${t["gitBranchLabel"+r]}; } - .commit${e} { stroke: ${t["git"+r]}; fill: ${t["git"+r]}; } - .commit-highlight${e} { stroke: ${t["gitInv"+r]}; fill: ${t["gitInv"+r]}; } - .label${e} { fill: ${t["git"+r]}; } - .arrow${e} { stroke: ${t["git"+r]}; } - `}).join("\n")}`,"normalTheme"),tM={parser:z,db:P,renderer:{draw:tb},styles:(0,c.K)(t=>{let{theme:e}=(0,n.zj)(),r=tL.has(e);return` - .commit-id, - .commit-msg, - .branch-label { - fill: lightgrey; - color: lightgrey; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - - ${r?tT(t):tK(t)} - - .branch { - stroke-width: ${t.strokeWidth}; - stroke: ${t.commitLineColor??t.lineColor}; - stroke-dasharray: ${r?"4 2":"2"}; - } - .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${r?t.nodeBorder:t.commitLabelColor}; ${r?`font-weight:${t.noteFontWeight};`:""}} - .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${r?"transparent":t.commitLabelBackground}; opacity: ${r?"":.5}; } - .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} - .tag-label-bkg { fill: ${r?t.mainBkg:t.tagLabelBackground}; stroke: ${r?t.nodeBorder:t.tagLabelBorder}; ${r?`filter:${t.dropShadow}`:""} } - .tag-hole { fill: ${t.textColor}; } - - .commit-merge { - stroke: ${r?t.mainBkg:t.primaryColor}; - fill: ${r?t.mainBkg:t.primaryColor}; - } - .commit-reverse { - stroke: ${r?t.mainBkg:t.primaryColor}; - fill: ${r?t.mainBkg:t.primaryColor}; - stroke-width: ${r?t.strokeWidth:3}; - } - .commit-highlight-outer { - } - .commit-highlight-inner { - stroke: ${r?t.mainBkg:t.primaryColor}; - fill: ${r?t.mainBkg:t.primaryColor}; - } - - .arrow { - /* Intentional: neo themes keep the bold 8px arrow (like classic themes); only redux-geometry themes use the thinner options.strokeWidth. */ - stroke-width: ${tk.has(e)?t.strokeWidth:8}; - stroke-linecap: round; - fill: none - } - .gitTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; - } -`},"getStyles")}}}]); \ No newline at end of file diff --git a/en/assets/js/4788.724c0856.js b/en/assets/js/4788.724c0856.js deleted file mode 100644 index 7e21377..0000000 --- a/en/assets/js/4788.724c0856.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4788"],{5487(t,e,a){a.d(e,{diagram:()=>z});var r=a(7454),i=a(4924),n=a(6348),l=a(1177),s=a(1293),o=a(6827),c=a(8731),d={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},g={axes:[],curves:[],options:d},u=structuredClone(g),x=l.UI.radar,p=(0,o.K)(()=>(0,n.$t)({...x,...(0,l.zj)().radar}),"getConfig"),h=(0,o.K)(()=>u.axes,"getAxes"),m=(0,o.K)(()=>u.curves,"getCurves"),$=(0,o.K)(()=>u.options,"getOptions"),f=(0,o.K)(t=>{u.axes=t.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),y=(0,o.K)(t=>{u.curves=t.map(t=>({name:t.name,label:t.label??t.name,entries:v(t.entries)}))},"setCurves"),v=(0,o.K)(t=>{if(void 0==t[0].axis)return t.map(t=>t.value);let e=h();if(0===e.length)throw Error("Axes must be populated before curves for reference entries");return e.map(e=>{let a=t.find(t=>t.axis?.$refText===e.name);if(void 0===a)throw Error("Missing entry for axis "+e.label);return a.value})},"computeCurveEntries"),w={getAxes:h,getCurves:m,getOptions:$,setAxes:f,setCurves:y,setOptions:(0,o.K)(t=>{let e=t.reduce((t,e)=>(t[e.name]=e,t),{});u.options={showLegend:e.showLegend?.value??d.showLegend,ticks:e.ticks?.value??d.ticks,max:e.max?.value??d.max,min:e.min?.value??d.min,graticule:e.graticule?.value??d.graticule},u.options.ticks>32&&(s.R.warn(`Radar diagram ticks (${u.options.ticks}) exceeds maximum allowed (32). Using 32 instead.`),u.options.ticks=32)},"setOptions"),getConfig:p,clear:(0,o.K)(()=>{(0,l.IU)(),u=structuredClone(g)},"clear"),setAccTitle:l.SV,getAccTitle:l.iN,setDiagramTitle:l.ke,getDiagramTitle:l.ab,getAccDescription:l.m7,setAccDescription:l.EI},b=(0,o.K)(t=>{(0,r.S)(t,w);let{axes:e,curves:a,options:i}=t;w.setAxes(e),w.setCurves(a),w.setOptions(i)},"populate"),k={parse:(0,o.K)(async t=>{let e=await (0,c.qg)("radar",t);s.R.debug(e),b(e)},"parse")},C=(0,o.K)((t,e,a,r)=>{let n=r.db,l=n.getAxes(),s=n.getCurves(),o=n.getOptions(),c=n.getConfig(),d=n.getDiagramTitle(),g=M((0,i.D)(e),c),u=o.max??Math.max(...s.map(t=>Math.max(...t.entries))),x=o.min,p=Math.min(c.width,c.height)/2;K(g,l,p,o.ticks,o.graticule),L(g,l,p,c),T(g,l,s,x,u,o.graticule,c),I(g,s,o.showLegend,c),g.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),M=(0,o.K)((t,e)=>{let a=e.width+e.marginLeft+e.marginRight,r=e.height+e.marginTop+e.marginBottom,i={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};return(0,l.a$)(t,r,a,e.useMaxWidth??!0),t.attr("viewBox",`0 0 ${a} ${r}`).attr("overflow","visible"),t.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),K=(0,o.K)((t,e,a,r,i)=>{if("circle"===i)for(let e=0;e<r;e++){let i=a*(e+1)/r;t.append("circle").attr("r",i).attr("class","radarGraticule")}else if("polygon"===i){let i=e.length;for(let n=0;n<r;n++){let l=a*(n+1)/r,s=e.map((t,e)=>{let a=2*e*Math.PI/i-Math.PI/2,r=l*Math.cos(a),n=l*Math.sin(a);return`${r},${n}`}).join(" ");t.append("polygon").attr("points",s).attr("class","radarGraticule")}}},"drawGraticule"),L=(0,o.K)((t,e,a,r)=>{let i=e.length;for(let n=0;n<i;n++){let l=e[n].label,s=2*n*Math.PI/i-Math.PI/2,o=Math.cos(s),c=Math.sin(s);t.append("line").attr("x1",0).attr("y1",0).attr("x2",a*r.axisScaleFactor*o).attr("y2",a*r.axisScaleFactor*c).attr("class","radarAxisLine");let d=o>.01?"start":o<-.01?"end":"middle",g=c>.01?"hanging":c<-.01?"auto":"central";t.append("text").text(l).attr("x",a*r.axisLabelFactor*o+4*o).attr("y",a*r.axisLabelFactor*c+4*c).attr("text-anchor",d).attr("dominant-baseline",g).attr("class","radarAxisLabel")}},"drawAxes");function T(t,e,a,r,i,n,l){let s=e.length,o=Math.min(l.width,l.height)/2;a.forEach((e,a)=>{if(e.entries.length!==s)return;let c=e.entries.map((t,e)=>{let a=2*Math.PI*e/s-Math.PI/2,n=A(t,r,i,o);return{x:n*Math.cos(a),y:n*Math.sin(a)}});"circle"===n?t.append("path").attr("d",S(c,l.curveTension)).attr("class",`radarCurve-${a}`):"polygon"===n&&t.append("polygon").attr("points",c.map(t=>`${t.x},${t.y}`).join(" ")).attr("class",`radarCurve-${a}`)})}function A(t,e,a,r){return r*(Math.min(Math.max(t,e),a)-e)/(a-e)}function S(t,e){let a=t.length,r=`M${t[0].x},${t[0].y}`;for(let i=0;i<a;i++){let n=t[(i-1+a)%a],l=t[i],s=t[(i+1)%a],o=t[(i+2)%a],c={x:l.x+(s.x-n.x)*e,y:l.y+(s.y-n.y)*e},d={x:s.x-(o.x-l.x)*e,y:s.y-(o.y-l.y)*e};r+=` C${c.x},${c.y} ${d.x},${d.y} ${s.x},${s.y}`}return`${r} Z`}function I(t,e,a,r){if(!a)return;let i=(r.width/2+r.marginRight)*3/4,n=-(3*(r.height/2+r.marginTop))/4;e.forEach((e,a)=>{let r=t.append("g").attr("transform",`translate(${i}, ${n+20*a})`);r.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${a}`),r.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(e.label)})}(0,o.K)(T,"drawCurves"),(0,o.K)(A,"relativeRadius"),(0,o.K)(S,"closedRoundCurve"),(0,o.K)(I,"drawLegend");var O=(0,o.K)((t,e)=>{let a="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++){let i=t[`cScale${r}`];a+=` - .radarCurve-${r} { - color: ${i}; - fill: ${i}; - fill-opacity: ${e.curveOpacity}; - stroke: ${i}; - stroke-width: ${e.curveStrokeWidth}; - } - .radarLegendBox-${r} { - fill: ${i}; - fill-opacity: ${e.curveOpacity}; - stroke: ${i}; - } - `}return a},"genIndexStyles"),R=(0,o.K)(t=>{let e=(0,l.P$)(),a=(0,l.zj)(),r=(0,n.$t)(e,a.themeVariables),i=(0,n.$t)(r.radar,t);return{themeVariables:r,radarOptions:i}},"buildRadarStyleOptions"),z={parser:k,db:w,renderer:{draw:C},styles:(0,o.K)(({radar:t}={})=>{let{themeVariables:e,radarOptions:a}=R(t);return` - .radarTitle { - font-size: ${e.fontSize}; - color: ${e.titleColor}; - dominant-baseline: hanging; - text-anchor: middle; - } - .radarAxisLine { - stroke: ${a.axisColor}; - stroke-width: ${a.axisStrokeWidth}; - } - .radarAxisLabel { - font-size: ${a.axisLabelFontSize}px; - color: ${a.axisColor}; - } - .radarGraticule { - fill: ${a.graticuleColor}; - fill-opacity: ${a.graticuleOpacity}; - stroke: ${a.graticuleColor}; - stroke-width: ${a.graticuleStrokeWidth}; - } - .radarLegendText { - text-anchor: start; - font-size: ${a.legendFontSize}px; - dominant-baseline: hanging; - } - ${O(e,a)} - `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/4788.eef239cb.js b/en/assets/js/4788.eef239cb.js new file mode 100644 index 0000000..da30b16 --- /dev/null +++ b/en/assets/js/4788.eef239cb.js @@ -0,0 +1,41 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4788"],{7454(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(6827).K)(r,"populateCommonDb")},5487(t,e,a){a.d(e,{diagram:()=>R});var r=a(7454),i=a(4924),l=a(6348),n=a(1177),s=a(1293),o=a(6827),c=a(8731),d={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},g={axes:[],curves:[],options:d},u=structuredClone(g),p=n.UI.radar,x=(0,o.K)(()=>(0,l.$t)({...p,...(0,n.zj)().radar}),"getConfig"),h=(0,o.K)(()=>u.axes,"getAxes"),m=(0,o.K)(()=>u.curves,"getCurves"),$=(0,o.K)(()=>u.options,"getOptions"),f=(0,o.K)(t=>{u.axes=t.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),y=(0,o.K)(t=>{u.curves=t.map(t=>({name:t.name,label:t.label??t.name,entries:v(t.entries)}))},"setCurves"),v=(0,o.K)(t=>{if(void 0==t[0].axis)return t.map(t=>t.value);let e=h();if(0===e.length)throw Error("Axes must be populated before curves for reference entries");return e.map(e=>{let a=t.find(t=>t.axis?.$refText===e.name);if(void 0===a)throw Error("Missing entry for axis "+e.label);return a.value})},"computeCurveEntries"),w={getAxes:h,getCurves:m,getOptions:$,setAxes:f,setCurves:y,setOptions:(0,o.K)(t=>{let e=t.reduce((t,e)=>(t[e.name]=e,t),{});u.options={showLegend:e.showLegend?.value??d.showLegend,ticks:e.ticks?.value??d.ticks,max:e.max?.value??d.max,min:e.min?.value??d.min,graticule:e.graticule?.value??d.graticule},u.options.ticks>32&&(s.R.warn(`Radar diagram ticks (${u.options.ticks}) exceeds maximum allowed (32). Using 32 instead.`),u.options.ticks=32)},"setOptions"),getConfig:x,clear:(0,o.K)(()=>{(0,n.IU)(),u=structuredClone(g)},"clear"),setAccTitle:n.SV,getAccTitle:n.iN,setDiagramTitle:n.ke,getDiagramTitle:n.ab,getAccDescription:n.m7,setAccDescription:n.EI},b=(0,o.K)(t=>{(0,r.S)(t,w);let{axes:e,curves:a,options:i}=t;w.setAxes(e),w.setCurves(a),w.setOptions(i)},"populate"),C={parse:(0,o.K)(async t=>{let e=await (0,c.qg)("radar",t);s.R.debug(e),b(e)},"parse")},k=(0,o.K)((t,e,a,r)=>{let l=r.db,n=l.getAxes(),s=l.getCurves(),o=l.getOptions(),c=l.getConfig(),d=l.getDiagramTitle(),g=K((0,i.D)(e),c),u=o.max??Math.max(...s.map(t=>Math.max(...t.entries))),p=o.min,x=Math.min(c.width,c.height)/2;M(g,n,x,o.ticks,o.graticule),L(g,n,x,c),T(g,n,s,p,u,o.graticule,c),I(g,s,o.showLegend,c),g.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),K=(0,o.K)((t,e)=>{let a=e.width+e.marginLeft+e.marginRight,r=e.height+e.marginTop+e.marginBottom,i={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};return(0,n.a$)(t,r,a,e.useMaxWidth??!0),t.attr("viewBox",`0 0 ${a} ${r}`).attr("overflow","visible"),t.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),M=(0,o.K)((t,e,a,r,i)=>{if("circle"===i)for(let e=0;e<r;e++){let i=a*(e+1)/r;t.append("circle").attr("r",i).attr("class","radarGraticule")}else if("polygon"===i){let i=e.length;for(let l=0;l<r;l++){let n=a*(l+1)/r,s=e.map((t,e)=>{let a=2*e*Math.PI/i-Math.PI/2,r=n*Math.cos(a),l=n*Math.sin(a);return`${r},${l}`}).join(" ");t.append("polygon").attr("points",s).attr("class","radarGraticule")}}},"drawGraticule"),L=(0,o.K)((t,e,a,r)=>{let i=e.length;for(let l=0;l<i;l++){let n=e[l].label,s=2*l*Math.PI/i-Math.PI/2,o=Math.cos(s),c=Math.sin(s);t.append("line").attr("x1",0).attr("y1",0).attr("x2",a*r.axisScaleFactor*o).attr("y2",a*r.axisScaleFactor*c).attr("class","radarAxisLine");let d=o>.01?"start":o<-.01?"end":"middle",g=c>.01?"hanging":c<-.01?"auto":"central";t.append("text").text(n).attr("x",a*r.axisLabelFactor*o+4*o).attr("y",a*r.axisLabelFactor*c+4*c).attr("text-anchor",d).attr("dominant-baseline",g).attr("class","radarAxisLabel")}},"drawAxes");function T(t,e,a,r,i,l,n){let s=e.length,o=Math.min(n.width,n.height)/2;a.forEach((e,a)=>{if(e.entries.length!==s)return;let c=e.entries.map((t,e)=>{let a=2*Math.PI*e/s-Math.PI/2,l=A(t,r,i,o);return{x:l*Math.cos(a),y:l*Math.sin(a)}});"circle"===l?t.append("path").attr("d",S(c,n.curveTension)).attr("class",`radarCurve-${a}`):"polygon"===l&&t.append("polygon").attr("points",c.map(t=>`${t.x},${t.y}`).join(" ")).attr("class",`radarCurve-${a}`)})}function A(t,e,a,r){return r*(Math.min(Math.max(t,e),a)-e)/(a-e)}function S(t,e){let a=t.length,r=`M${t[0].x},${t[0].y}`;for(let i=0;i<a;i++){let l=t[(i-1+a)%a],n=t[i],s=t[(i+1)%a],o=t[(i+2)%a],c={x:n.x+(s.x-l.x)*e,y:n.y+(s.y-l.y)*e},d={x:s.x-(o.x-n.x)*e,y:s.y-(o.y-n.y)*e};r+=` C${c.x},${c.y} ${d.x},${d.y} ${s.x},${s.y}`}return`${r} Z`}function I(t,e,a,r){if(!a)return;let i=(r.width/2+r.marginRight)*3/4,l=-(3*(r.height/2+r.marginTop))/4;e.forEach((e,a)=>{let r=t.append("g").attr("transform",`translate(${i}, ${l+20*a})`);r.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${a}`),r.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(e.label)})}(0,o.K)(T,"drawCurves"),(0,o.K)(A,"relativeRadius"),(0,o.K)(S,"closedRoundCurve"),(0,o.K)(I,"drawLegend");var D=(0,o.K)((t,e)=>{let a="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++){let i=t[`cScale${r}`];a+=` + .radarCurve-${r} { + color: ${i}; + fill: ${i}; + fill-opacity: ${e.curveOpacity}; + stroke: ${i}; + stroke-width: ${e.curveStrokeWidth}; + } + .radarLegendBox-${r} { + fill: ${i}; + fill-opacity: ${e.curveOpacity}; + stroke: ${i}; + } + `}return a},"genIndexStyles"),O=(0,o.K)(t=>{let e=(0,n.P$)(),a=(0,n.zj)(),r=(0,l.$t)(e,a.themeVariables),i=(0,l.$t)(r.radar,t);return{themeVariables:r,radarOptions:i}},"buildRadarStyleOptions"),R={parser:C,db:w,renderer:{draw:k},styles:(0,o.K)(({radar:t}={})=>{let{themeVariables:e,radarOptions:a}=O(t);return` + .radarTitle { + font-size: ${e.fontSize}; + color: ${e.titleColor}; + dominant-baseline: hanging; + text-anchor: middle; + } + .radarAxisLine { + stroke: ${a.axisColor}; + stroke-width: ${a.axisStrokeWidth}; + } + .radarAxisLabel { + font-size: ${a.axisLabelFontSize}px; + color: ${a.axisColor}; + } + .radarGraticule { + fill: ${a.graticuleColor}; + fill-opacity: ${a.graticuleOpacity}; + stroke: ${a.graticuleColor}; + stroke-width: ${a.graticuleStrokeWidth}; + } + .radarLegendText { + text-anchor: start; + font-size: ${a.legendFontSize}px; + dominant-baseline: hanging; + } + ${D(e,a)} + `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/480.1eb9a3a7.js b/en/assets/js/480.1eb9a3a7.js new file mode 100644 index 0000000..34fec64 --- /dev/null +++ b/en/assets/js/480.1eb9a3a7.js @@ -0,0 +1,62 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["480"],{7454(t,e,a){function n(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>n}),(0,a(6827).K)(n,"populateCommonDb")},7475(t,e,a){a.d(e,{diagram:()=>B});var n=a(7454),r=a(4924),i=a(6348),o=a(1177),l=a(1293),c=a(6827),s=a(8731),d=(0,c.K)(()=>({domains:new Map,transitions:[]}),"createDefaultData"),f=d(),p=(0,c.K)(()=>f.domains,"getDomains"),y={getDomains:p,getTransitions:(0,c.K)(()=>f.transitions,"getTransitions"),setDomains:(0,c.K)(t=>{if(t)for(let e of t){let t=e.domain,a=(e.items??[]).map(t=>({label:t.label}));f.domains.set(t,{name:t,items:a})}},"setDomains"),setTransitions:(0,c.K)(t=>{t&&(f.transitions=t.filter(t=>t.from!==t.to||(l.R.warn(`Cynefin: self-loop transition on domain "${t.from}" is not meaningful and will be skipped.`),!1)).map(t=>({from:t.from,to:t.to,label:t.label||void 0})))},"setTransitions"),getConfig:(0,c.K)(()=>(0,i.$t)({...o.UI.cynefin,...(0,o.zj)().cynefin}),"getConfig"),clear:(0,c.K)(()=>{(0,o.IU)(),f=d()},"clear"),setAccTitle:o.SV,getAccTitle:o.iN,setDiagramTitle:o.ke,getDiagramTitle:o.ab,getAccDescription:o.m7,setAccDescription:o.EI},m=(0,c.K)(t=>{(0,n.S)(t,y),y.setDomains(t.domains),y.setTransitions(t.transitions)},"populate"),x={parse:(0,c.K)(async t=>{let e=await (0,s.qg)("cynefin",t);l.R.debug(e),m(e)},"parse")};function h(t){let e=t+0x6d2b79f5|0;return e=Math.imul(e^e>>>15,1|e),(((e^=e+Math.imul(e^e>>>7,61|e))^e>>>14)>>>0)/0x100000000}function $(t){let e=0;for(let a=0;a<t.length;a++)e=(e<<5)-e+t.charCodeAt(a)|0;return e}function g(t,e){return"number"==typeof t&&Number.isFinite(t)&&0!==t?t:$(e)}function u(t,e,a,n){let r=t/2,i=n??.015*t,o=e/7,l=[];for(let t=0;t<=7;t++){let e=h(a+17*t)*i*2-i;l.push({x:r+e,y:t*o})}let c=`M${l[0].x},${l[0].y}`;for(let t=0;t<l.length-1;t++){let e=l[t],n=l[t+1],r=(e.y+n.y)/2,o=1.5*i*(t%2==0?1:-1)*h(a+31*t+7),s=e.x+o,d=n.x-o;c+=` C${s},${r} ${d},${r} ${n.x},${n.y}`}return c}function b(t,e,a,n){let r=e/2,i=n??.015*e,o=t/7,l=[];for(let t=0;t<=7;t++){let e=h(a+23*t)*i*2-i;l.push({x:t*o,y:r+e})}let c=`M${l[0].x},${l[0].y}`;for(let t=0;t<l.length-1;t++){let e=l[t],n=l[t+1],r=(e.x+n.x)/2,o=1.5*i*(t%2==0?1:-1)*h(a+37*t+11),s=e.y+o,d=n.y-o;c+=` C${r},${s} ${r},${d} ${n.x},${n.y}`}return c}function w(t,e){let a=t/2,n=.5*e,r=.03*t;return`M${a},${n} C${a+r},${n+(e-n)*.2} ${a-1.5*r},${n+(e-n)*.55} ${a+.5*r},${n+(e-n)*.75} C${a-r},${n+(e-n)*.85} ${a+.3*r},${n+(e-n)*.95} ${a},${e}`}function C(t,e,a,n){return`M${t-a},${e} A${a},${n} 0 1,1 ${t+a},${e} A${a},${n} 0 1,1 ${t-a},${e} Z`}(0,c.K)(h,"seededRandom"),(0,c.K)($,"hashString"),(0,c.K)(g,"resolveSeed"),(0,c.K)(u,"generateFoldPath"),(0,c.K)(b,"generateHorizontalBoundary"),(0,c.K)(w,"generateCliffPath"),(0,c.K)(C,"generateConfusionPath");var k={complex:{model:"Probe \u2192 Sense \u2192 Respond",practice:"Emergent Practices"},complicated:{model:"Sense \u2192 Analyse \u2192 Respond",practice:"Good Practices"},clear:{model:"Sense \u2192 Categorise \u2192 Respond",practice:"Best Practices"},chaotic:{model:"Act \u2192 Sense \u2192 Respond",practice:"Novel Practices"},confusion:{model:"",practice:"Disorder"}},D=(0,c.K)((t,e)=>{let a=t/2,n=e/2;return{complex:{cx:a/2,cy:n/2,x:0,y:0,w:a,h:n},complicated:{cx:a+a/2,cy:n/2,x:a,y:0,w:a,h:n},chaotic:{cx:a/2,cy:n+n/2,x:0,y:n,w:a,h:n},clear:{cx:a+a/2,cy:n+n/2,x:a,y:n,w:a,h:n},confusion:{cx:a,cy:n,x:.7*a,y:.7*n,w:.6*a,h:.6*n}}},"getDomainLayouts"),K=(0,c.K)(()=>{let t=(0,o.P$)(),e=(0,o.zj)();return(0,i.$t)(t,e.themeVariables).cynefin},"getCynefinDomainColors"),T=(0,c.K)((t,e,a,n)=>{let i=n.db,c=i.getDomains(),s=i.getTransitions(),d=i.getDiagramTitle(),f=i.getAccTitle(),p=i.getAccDescription(),y=i.getConfig(),m=K();l.R.debug("Rendering Cynefin diagram");let x=y.width,h=y.height,$=y.padding,T=y.showDomainDescriptions,A=y.boundaryAmplitude,B=x+2*$,S=h+2*$,z={complex:m.complexBg,complicated:m.complicatedBg,clear:m.clearBg,chaotic:m.chaoticBg,confusion:m.confusionBg},v=(0,r.D)(e);(0,o.a$)(v,S,B,y.useMaxWidth??!0),v.attr("viewBox",`0 0 ${B} ${S}`),f&&v.append("title").text(f),p&&v.append("desc").text(p);let M=v.append("g").attr("transform",`translate(${$}, ${$})`),I=D(x,h),L=g(y.seed,e),P=M.append("g").attr("class","cynefin-backgrounds"),R=["complex","complicated","chaotic","clear"];for(let t of R){let e=I[t];P.append("rect").attr("class","cynefinDomain").attr("x",e.x).attr("y",e.y).attr("width",e.w).attr("height",e.h).attr("fill",z[t]).attr("fill-opacity",.4).attr("stroke","none")}let F=M.append("g").attr("class","cynefin-boundaries");F.append("path").attr("class","cynefinBoundary").attr("d",u(x,h,L,A)).attr("fill","none"),F.append("path").attr("class","cynefinBoundary").attr("d",b(x,h,L+100,A)).attr("fill","none"),F.append("path").attr("class","cynefinCliff").attr("d",w(x,h)).attr("fill","none");let W=.15*x,q=.15*h;M.append("path").attr("class","cynefinConfusion").attr("d",C(x/2,h/2,W,q)).attr("fill",z.confusion).attr("fill-opacity",.5);let E=M.append("g").attr("class","cynefin-labels");for(let t of R){let e=I[t];E.append("text").attr("class","cynefinDomainLabel").attr("x",e.cx).attr("y",T?e.cy-30:e.cy).attr("text-anchor","middle").attr("dominant-baseline","middle").text(t.charAt(0).toUpperCase()+t.slice(1))}if(E.append("text").attr("class","cynefinDomainLabel").attr("x",x/2).attr("y",T?h/2-10:h/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text("Confusion"),T){let t=M.append("g").attr("class","cynefin-subtitles");for(let e of R){let a=I[e],n=k[e];t.append("text").attr("class","cynefinSubtitle").attr("x",a.cx).attr("y",a.cy-10).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n.model),t.append("text").attr("class","cynefinSubtitle").attr("x",a.cx).attr("y",a.cy+5).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n.practice)}t.append("text").attr("class","cynefinSubtitle").attr("x",x/2).attr("y",h/2+8).attr("text-anchor","middle").attr("dominant-baseline","middle").text(k.confusion.practice)}let H=M.append("g").attr("class","cynefin-items");for(let t of["complex","complicated","chaotic","clear","confusion"]){let e,a=c.get(t);if(!a||0===a.items.length)continue;let n=I[t],r="confusion"===t,i=a.items,o=0;if(r&&a.items.length>3&&(o=a.items.length-3,i=a.items.slice(0,3)),r){let t=T?22:14;e=n.cy+t}else e=n.cy+(T?25:15);if([...i].forEach((a,r)=>{let i=e+30*r,o=H.append("g"),l=o.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",13).attr("text-anchor","middle").attr("dominant-baseline","central").text(a.label),c=7*a.label.length,s=l.node();if(s&&"function"==typeof s.getBBox){let t=s.getBBox();t.width>0&&(c=t.width)}let d=c+20,f=n.cx-d/2;o.attr("transform",`translate(${f}, ${i})`),o.insert("rect","text").attr("class","cynefinItem").attr("x",0).attr("y",0).attr("width",d).attr("height",26).attr("rx",4).attr("ry",4).attr("fill",z[t]).attr("fill-opacity",.95),l.attr("x",d/2).attr("y",13)}),o>0){let a=e+30*i.length,r=`+${o} more`,l=H.append("g"),c=l.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",13).attr("text-anchor","middle").attr("dominant-baseline","central").text(r),s=7*r.length,d=c.node();if(d&&"function"==typeof d.getBBox){let t=d.getBBox();t.width>0&&(s=t.width)}let f=s+20,p=n.cx-f/2;l.attr("transform",`translate(${p}, ${a})`),l.insert("rect","text").attr("class","cynefinItemOverflow").attr("x",0).attr("y",0).attr("width",f).attr("height",26).attr("rx",4).attr("ry",4).attr("fill",z[t]).attr("fill-opacity",.6),c.attr("x",f/2).attr("y",13)}}if(s.length>0){let t=v.select("defs").empty()?v.append("defs"):v.select("defs"),a=`cynefin-arrow-${e}`;t.append("marker").attr("id",a).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","cynefinArrowHead");let n=M.append("g").attr("class","cynefin-arrows");s.forEach(t=>{let e=I[t.from],r=I[t.to];if(!e||!r)return;if(t.from===t.to)return void l.R.warn(`Cynefin renderer: skipping self-loop on domain "${t.from}"`);let i=e.cx,o=e.cy,c=r.cx,s=r.cy,d=c-i,f=s-o,p=Math.sqrt(d*d+f*f),y=.15*p,m=(i+c)/2+-f/p*y,x=(o+s)/2+d/p*y;n.append("path").attr("class","cynefinArrowLine").attr("d",`M${i},${o} Q${m},${x} ${c},${s}`).attr("fill","none").attr("marker-end",`url(#${a})`),t.label&&n.append("text").attr("class","cynefinArrowLabel").attr("x",m).attr("y",x-6).attr("text-anchor","middle").attr("dominant-baseline","auto").text(t.label)})}d&&M.append("text").attr("class","cynefinTitle").attr("x",x/2).attr("y",-$/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text(d)},"draw"),A=(0,c.K)(()=>{let t=(0,o.P$)(),e=(0,o.zj)();return(0,i.$t)(t,e.themeVariables).cynefin},"getCynefinTheme"),B={parser:x,db:y,renderer:{draw:T},styles:(0,c.K)(()=>{let t=A();return` + .cynefinDomain { + stroke: none; + } + .cynefinDomainLabel { + font-size: ${t.domainFontSize}px; + font-weight: bold; + fill: ${t.labelColor}; + } + .cynefinSubtitle { + font-size: ${t.itemFontSize-1}px; + fill: ${t.textColor}; + font-style: italic; + } + .cynefinItem { + fill-opacity: 0.95; + stroke: ${t.boundaryColor}; + stroke-width: 1; + } + .cynefinItemText { + font-size: ${t.itemFontSize}px; + fill: ${t.textColor}; + } + .cynefinItemOverflow { + fill-opacity: 0.6; + stroke: ${t.boundaryColor}; + stroke-width: 1; + stroke-dasharray: 3 2; + } + .cynefinBoundary { + stroke: ${t.boundaryColor}; + stroke-width: ${t.boundaryWidth}; + stroke-dasharray: 6 3; + } + .cynefinCliff { + stroke: ${t.cliffColor}; + stroke-width: ${t.cliffWidth}; + } + .cynefinConfusion { + stroke: ${t.boundaryColor}; + stroke-width: 1.5; + stroke-dasharray: 4 2; + } + .cynefinArrowLine { + stroke: ${t.arrowColor}; + stroke-width: ${t.arrowWidth}; + fill: none; + } + .cynefinArrowHead { + fill: ${t.arrowColor}; + stroke: none; + } + .cynefinArrowLabel { + font-size: ${t.itemFontSize-1}px; + fill: ${t.textColor}; + } + .cynefinTitle { + font-size: ${t.domainFontSize+2}px; + font-weight: bold; + fill: ${t.labelColor}; + } + `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/480.40dd37ae.js b/en/assets/js/480.40dd37ae.js deleted file mode 100644 index 982013f..0000000 --- a/en/assets/js/480.40dd37ae.js +++ /dev/null @@ -1,62 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["480"],{7475(t,e,a){a.d(e,{diagram:()=>T});var n=a(7454),r=a(4924),i=a(6348),o=a(1177),l=a(1293),c=a(6827),s=a(8731),d=(0,c.K)(()=>({domains:new Map,transitions:[]}),"createDefaultData"),f=d(),p=(0,c.K)(()=>f.domains,"getDomains"),y={getDomains:p,getTransitions:(0,c.K)(()=>f.transitions,"getTransitions"),setDomains:(0,c.K)(t=>{if(t)for(let e of t){let t=e.domain,a=(e.items??[]).map(t=>({label:t.label}));f.domains.set(t,{name:t,items:a})}},"setDomains"),setTransitions:(0,c.K)(t=>{t&&(f.transitions=t.filter(t=>t.from!==t.to||(l.R.warn(`Cynefin: self-loop transition on domain "${t.from}" is not meaningful and will be skipped.`),!1)).map(t=>({from:t.from,to:t.to,label:t.label||void 0})))},"setTransitions"),getConfig:(0,c.K)(()=>(0,i.$t)({...o.UI.cynefin,...(0,o.zj)().cynefin}),"getConfig"),clear:(0,c.K)(()=>{(0,o.IU)(),f=d()},"clear"),setAccTitle:o.SV,getAccTitle:o.iN,setDiagramTitle:o.ke,getDiagramTitle:o.ab,getAccDescription:o.m7,setAccDescription:o.EI},m=(0,c.K)(t=>{(0,n.S)(t,y),y.setDomains(t.domains),y.setTransitions(t.transitions)},"populate"),x={parse:(0,c.K)(async t=>{let e=await (0,s.qg)("cynefin",t);l.R.debug(e),m(e)},"parse")};function h(t){let e=t+0x6d2b79f5|0;return e=Math.imul(e^e>>>15,1|e),(((e^=e+Math.imul(e^e>>>7,61|e))^e>>>14)>>>0)/0x100000000}function $(t){let e=0;for(let a=0;a<t.length;a++)e=(e<<5)-e+t.charCodeAt(a)|0;return e}function g(t,e){return"number"==typeof t&&Number.isFinite(t)&&0!==t?t:$(e)}function u(t,e,a,n){let r=t/2,i=n??.015*t,o=e/7,l=[];for(let t=0;t<=7;t++){let e=h(a+17*t)*i*2-i;l.push({x:r+e,y:t*o})}let c=`M${l[0].x},${l[0].y}`;for(let t=0;t<l.length-1;t++){let e=l[t],n=l[t+1],r=(e.y+n.y)/2,o=1.5*i*(t%2==0?1:-1)*h(a+31*t+7),s=e.x+o,d=n.x-o;c+=` C${s},${r} ${d},${r} ${n.x},${n.y}`}return c}function b(t,e,a,n){let r=e/2,i=n??.015*e,o=t/7,l=[];for(let t=0;t<=7;t++){let e=h(a+23*t)*i*2-i;l.push({x:t*o,y:r+e})}let c=`M${l[0].x},${l[0].y}`;for(let t=0;t<l.length-1;t++){let e=l[t],n=l[t+1],r=(e.x+n.x)/2,o=1.5*i*(t%2==0?1:-1)*h(a+37*t+11),s=e.y+o,d=n.y-o;c+=` C${r},${s} ${r},${d} ${n.x},${n.y}`}return c}function w(t,e){let a=t/2,n=.5*e,r=.03*t;return`M${a},${n} C${a+r},${n+(e-n)*.2} ${a-1.5*r},${n+(e-n)*.55} ${a+.5*r},${n+(e-n)*.75} C${a-r},${n+(e-n)*.85} ${a+.3*r},${n+(e-n)*.95} ${a},${e}`}function C(t,e,a,n){return`M${t-a},${e} A${a},${n} 0 1,1 ${t+a},${e} A${a},${n} 0 1,1 ${t-a},${e} Z`}(0,c.K)(h,"seededRandom"),(0,c.K)($,"hashString"),(0,c.K)(g,"resolveSeed"),(0,c.K)(u,"generateFoldPath"),(0,c.K)(b,"generateHorizontalBoundary"),(0,c.K)(w,"generateCliffPath"),(0,c.K)(C,"generateConfusionPath");var k={complex:{model:"Probe \u2192 Sense \u2192 Respond",practice:"Emergent Practices"},complicated:{model:"Sense \u2192 Analyse \u2192 Respond",practice:"Good Practices"},clear:{model:"Sense \u2192 Categorise \u2192 Respond",practice:"Best Practices"},chaotic:{model:"Act \u2192 Sense \u2192 Respond",practice:"Novel Practices"},confusion:{model:"",practice:"Disorder"}},D=(0,c.K)((t,e)=>{let a=t/2,n=e/2;return{complex:{cx:a/2,cy:n/2,x:0,y:0,w:a,h:n},complicated:{cx:a+a/2,cy:n/2,x:a,y:0,w:a,h:n},chaotic:{cx:a/2,cy:n+n/2,x:0,y:n,w:a,h:n},clear:{cx:a+a/2,cy:n+n/2,x:a,y:n,w:a,h:n},confusion:{cx:a,cy:n,x:.7*a,y:.7*n,w:.6*a,h:.6*n}}},"getDomainLayouts"),K=(0,c.K)(()=>{let t=(0,o.P$)(),e=(0,o.zj)();return(0,i.$t)(t,e.themeVariables).cynefin},"getCynefinDomainColors"),B=(0,c.K)((t,e,a,n)=>{let i=n.db,c=i.getDomains(),s=i.getTransitions(),d=i.getDiagramTitle(),f=i.getAccTitle(),p=i.getAccDescription(),y=i.getConfig(),m=K();l.R.debug("Rendering Cynefin diagram");let x=y.width,h=y.height,$=y.padding,B=y.showDomainDescriptions,A=y.boundaryAmplitude,T=x+2*$,S=h+2*$,z={complex:m.complexBg,complicated:m.complicatedBg,clear:m.clearBg,chaotic:m.chaoticBg,confusion:m.confusionBg},v=(0,r.D)(e);(0,o.a$)(v,S,T,y.useMaxWidth??!0),v.attr("viewBox",`0 0 ${T} ${S}`),f&&v.append("title").text(f),p&&v.append("desc").text(p);let M=v.append("g").attr("transform",`translate(${$}, ${$})`),I=D(x,h),L=g(y.seed,e),P=M.append("g").attr("class","cynefin-backgrounds"),R=["complex","complicated","chaotic","clear"];for(let t of R){let e=I[t];P.append("rect").attr("class","cynefinDomain").attr("x",e.x).attr("y",e.y).attr("width",e.w).attr("height",e.h).attr("fill",z[t]).attr("fill-opacity",.4).attr("stroke","none")}let F=M.append("g").attr("class","cynefin-boundaries");F.append("path").attr("class","cynefinBoundary").attr("d",u(x,h,L,A)).attr("fill","none"),F.append("path").attr("class","cynefinBoundary").attr("d",b(x,h,L+100,A)).attr("fill","none"),F.append("path").attr("class","cynefinCliff").attr("d",w(x,h)).attr("fill","none");let W=.15*x,q=.15*h;M.append("path").attr("class","cynefinConfusion").attr("d",C(x/2,h/2,W,q)).attr("fill",z.confusion).attr("fill-opacity",.5);let E=M.append("g").attr("class","cynefin-labels");for(let t of R){let e=I[t];E.append("text").attr("class","cynefinDomainLabel").attr("x",e.cx).attr("y",B?e.cy-30:e.cy).attr("text-anchor","middle").attr("dominant-baseline","middle").text(t.charAt(0).toUpperCase()+t.slice(1))}if(E.append("text").attr("class","cynefinDomainLabel").attr("x",x/2).attr("y",B?h/2-10:h/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text("Confusion"),B){let t=M.append("g").attr("class","cynefin-subtitles");for(let e of R){let a=I[e],n=k[e];t.append("text").attr("class","cynefinSubtitle").attr("x",a.cx).attr("y",a.cy-10).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n.model),t.append("text").attr("class","cynefinSubtitle").attr("x",a.cx).attr("y",a.cy+5).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n.practice)}t.append("text").attr("class","cynefinSubtitle").attr("x",x/2).attr("y",h/2+8).attr("text-anchor","middle").attr("dominant-baseline","middle").text(k.confusion.practice)}let H=M.append("g").attr("class","cynefin-items");for(let t of["complex","complicated","chaotic","clear","confusion"]){let e,a=c.get(t);if(!a||0===a.items.length)continue;let n=I[t],r="confusion"===t,i=a.items,o=0;if(r&&a.items.length>3&&(o=a.items.length-3,i=a.items.slice(0,3)),r){let t=B?22:14;e=n.cy+t}else e=n.cy+(B?25:15);if([...i].forEach((a,r)=>{let i=e+30*r,o=H.append("g"),l=o.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",13).attr("text-anchor","middle").attr("dominant-baseline","central").text(a.label),c=7*a.label.length,s=l.node();if(s&&"function"==typeof s.getBBox){let t=s.getBBox();t.width>0&&(c=t.width)}let d=c+20,f=n.cx-d/2;o.attr("transform",`translate(${f}, ${i})`),o.insert("rect","text").attr("class","cynefinItem").attr("x",0).attr("y",0).attr("width",d).attr("height",26).attr("rx",4).attr("ry",4).attr("fill",z[t]).attr("fill-opacity",.95),l.attr("x",d/2).attr("y",13)}),o>0){let a=e+30*i.length,r=`+${o} more`,l=H.append("g"),c=l.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",13).attr("text-anchor","middle").attr("dominant-baseline","central").text(r),s=7*r.length,d=c.node();if(d&&"function"==typeof d.getBBox){let t=d.getBBox();t.width>0&&(s=t.width)}let f=s+20,p=n.cx-f/2;l.attr("transform",`translate(${p}, ${a})`),l.insert("rect","text").attr("class","cynefinItemOverflow").attr("x",0).attr("y",0).attr("width",f).attr("height",26).attr("rx",4).attr("ry",4).attr("fill",z[t]).attr("fill-opacity",.6),c.attr("x",f/2).attr("y",13)}}if(s.length>0){let t=v.select("defs").empty()?v.append("defs"):v.select("defs"),a=`cynefin-arrow-${e}`;t.append("marker").attr("id",a).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","cynefinArrowHead");let n=M.append("g").attr("class","cynefin-arrows");s.forEach(t=>{let e=I[t.from],r=I[t.to];if(!e||!r)return;if(t.from===t.to)return void l.R.warn(`Cynefin renderer: skipping self-loop on domain "${t.from}"`);let i=e.cx,o=e.cy,c=r.cx,s=r.cy,d=c-i,f=s-o,p=Math.sqrt(d*d+f*f),y=.15*p,m=(i+c)/2+-f/p*y,x=(o+s)/2+d/p*y;n.append("path").attr("class","cynefinArrowLine").attr("d",`M${i},${o} Q${m},${x} ${c},${s}`).attr("fill","none").attr("marker-end",`url(#${a})`),t.label&&n.append("text").attr("class","cynefinArrowLabel").attr("x",m).attr("y",x-6).attr("text-anchor","middle").attr("dominant-baseline","auto").text(t.label)})}d&&M.append("text").attr("class","cynefinTitle").attr("x",x/2).attr("y",-$/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text(d)},"draw"),A=(0,c.K)(()=>{let t=(0,o.P$)(),e=(0,o.zj)();return(0,i.$t)(t,e.themeVariables).cynefin},"getCynefinTheme"),T={parser:x,db:y,renderer:{draw:B},styles:(0,c.K)(()=>{let t=A();return` - .cynefinDomain { - stroke: none; - } - .cynefinDomainLabel { - font-size: ${t.domainFontSize}px; - font-weight: bold; - fill: ${t.labelColor}; - } - .cynefinSubtitle { - font-size: ${t.itemFontSize-1}px; - fill: ${t.textColor}; - font-style: italic; - } - .cynefinItem { - fill-opacity: 0.95; - stroke: ${t.boundaryColor}; - stroke-width: 1; - } - .cynefinItemText { - font-size: ${t.itemFontSize}px; - fill: ${t.textColor}; - } - .cynefinItemOverflow { - fill-opacity: 0.6; - stroke: ${t.boundaryColor}; - stroke-width: 1; - stroke-dasharray: 3 2; - } - .cynefinBoundary { - stroke: ${t.boundaryColor}; - stroke-width: ${t.boundaryWidth}; - stroke-dasharray: 6 3; - } - .cynefinCliff { - stroke: ${t.cliffColor}; - stroke-width: ${t.cliffWidth}; - } - .cynefinConfusion { - stroke: ${t.boundaryColor}; - stroke-width: 1.5; - stroke-dasharray: 4 2; - } - .cynefinArrowLine { - stroke: ${t.arrowColor}; - stroke-width: ${t.arrowWidth}; - fill: none; - } - .cynefinArrowHead { - fill: ${t.arrowColor}; - stroke: none; - } - .cynefinArrowLabel { - font-size: ${t.itemFontSize-1}px; - fill: ${t.textColor}; - } - .cynefinTitle { - font-size: ${t.domainFontSize+2}px; - font-weight: bold; - fill: ${t.labelColor}; - } - `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/common.b2db8efe.js b/en/assets/js/4936.2ebabc8b.js similarity index 90% rename from en/assets/js/common.b2db8efe.js rename to en/assets/js/4936.2ebabc8b.js index d4b48f7..1d00cd1 100644 --- a/en/assets/js/common.b2db8efe.js +++ b/en/assets/js/4936.2ebabc8b.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5005"],{8453(e,t,r){r.d(t,{R:()=>s,x:()=>o});var n=r(6540);let i={},a=n.createContext(i);function s(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(a.Provider,{value:t},e.children)}},4916(e,t,r){r.d(t,{W:()=>l});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RailroadEbnfTokenBuilder")}constructor(){super(["railroad-ebnf-beta"])}},a=(0,n.K2)(e=>{let t=e.slice(1,-1),r="";for(let e=0;e<t.length;e++){let n=t[e];if("\\"===n&&e+1<t.length){let n=t[++e];switch(n){case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+=" ";break;default:r+=n}continue}r+=n}return r},"decodeEscapedString"),s=class extends n.dg{static{(0,n.K2)(this,"RailroadEbnfValueConverter")}runConverter(e,t,r){let n=super.runConverter(e,t,r);if("TITLE"===e.name&&"string"==typeof n){let e=n.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return a(e)}return n}runCustomConverter(e,t,r){return"EBNF_STRING"===e.name?a(t):"EBNF_SPECIAL_SEQUENCE"===e.name?t.slice(1,-1).trim():void 0}},o={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")}};function l(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.U4,o);return t.ServiceRegistry.register(r),{shared:t,RailroadEbnf:r}}(0,n.K2)(l,"createRailroadEbnfServices")},6041(e,t,r){r.d(t,{f:()=>o});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},a=class extends n.dg{static{(0,n.K2)(this,"PieValueConverter")}runCustomConverter(e,t,r){if("PIE_SECTION_LABEL"===e.name)return t.replace(/"/g,"").trim()}},s={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new a,"ValueConverter")}};function o(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.D_,s);return t.ServiceRegistry.register(r),{shared:t,Pie:r}}(0,n.K2)(o,"createPieServices")},4614(e,t,r){r.d(t,{v:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.FZ,a);return t.ServiceRegistry.register(r),{shared:t,Info:r}}(0,n.K2)(s,"createInfoServices")},5796(e,t,r){r.d(t,{S:()=>o});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},a=class extends n.dg{static{(0,n.K2)(this,"ArchitectureValueConverter")}runCustomConverter(e,t,r){if("ARCH_ICON"===e.name)return t.replace(/[()]/g,"").trim();if("ARCH_TEXT_ICON"===e.name)return t.replace(/["()]/g,"");if("ARCH_TITLE"===e.name){let e=t.replace(/^\[|]$/g,"").trim();return(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=(e=e.slice(1,-1)).replace(/\\"/g,'"').replace(/\\'/g,"'")),e.trim()}}},s={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new a,"ValueConverter")}};function o(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.wV,s);return t.ServiceRegistry.register(r),{shared:t,Architecture:r}}(0,n.K2)(o,"createArchitectureServices")},2688(e,t,r){r.d(t,{g:()=>d});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"EventModelingTokenBuilder")}constructor(){super(["eventmodeling"])}},a=new Set(["cmd","command"]),s=new Set(["evt","event"]),o=new Set(["rmo","readmodel"]),l=new Set(["pcr","processor"]),u=new Set(["ui"]);function c(e){let t=e.validation.EventModelingValidator,r=e.validation.ValidationRegistry;if(r){let e={EmTimeFrame:t.checkSourceFrameTypes.bind(t),EmResetFrame:t.checkSourceFrameTypes.bind(t)};r.register(e,t)}}(0,n.K2)(c,"registerValidationChecks");var p=class{static{(0,n.K2)(this,"EventModelingValidator")}checkSourceFrameTypes(e,t){0!==e.sourceFrames.length&&(a.has(e.modelEntityType)?this.validateSources(e,new Set([...u,...l]),"command","ui or processor",t):s.has(e.modelEntityType)?this.validateSources(e,a,"event","command",t):o.has(e.modelEntityType)?this.validateSources(e,s,"read model","event",t):l.has(e.modelEntityType)?this.validateSources(e,o,"processor","read model",t):u.has(e.modelEntityType)&&this.validateSources(e,o,"ui","read model",t))}validateSources(e,t,r,n,i){for(let a of e.sourceFrames){let s=a.ref;void 0===s||t.has(s.modelEntityType)||i("error",`A ${r} can only receive input from a ${n}, not from '${s.modelEntityType}'.`,{node:e,property:"sourceFrames"})}}},f={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")},validation:{EventModelingValidator:(0,n.K2)(()=>new p,"EventModelingValidator")}};function d(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.x0,f);return t.ServiceRegistry.register(r),c(r),{shared:t,EventModel:r}}(0,n.K2)(d,"createEventModelingServices")},6527(e,t,r){r.d(t,{d:()=>c});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},a=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,s=class extends n.dg{static{(0,n.K2)(this,"TreemapValueConverter")}runCustomConverter(e,t,r){if("NUMBER2"===e.name)return parseFloat(t.replace(/,/g,""));if("SEPARATOR"===e.name)return t.substring(1,t.length-1);if("STRING2"===e.name)return t.substring(1,t.length-1);if("INDENTATION"===e.name)return t.length;if("ClassDef"===e.name){if("string"!=typeof t)return t;let e=a.exec(t);if(e)return{$type:"ClassDefStatement",className:e[1],styleText:e[2]||void 0}}}};function o(e){let t=e.validation.TreemapValidator,r=e.validation.ValidationRegistry;if(r){let e={Treemap:t.checkSingleRoot.bind(t)};r.register(e,t)}}(0,n.K2)(o,"registerValidationChecks");var l=class{static{(0,n.K2)(this,"TreemapValidator")}checkSingleRoot(e,t){let r;for(let n of e.TreemapRows)n.item&&(void 0===r&&void 0===n.indent?r=0:void 0===n.indent?t("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}):void 0!==r&&r>=parseInt(n.indent,10)&&t("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}))}},u={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")},validation:{TreemapValidator:(0,n.K2)(()=>new l,"TreemapValidator")}};function c(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.XE,u);return t.ServiceRegistry.register(r),o(r),{shared:t,Treemap:r}}(0,n.K2)(c,"createTreemapServices")},3279(e,t,r){r.d(t,{t:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"CynefinTokenBuilder")}constructor(){super(["cynefin-beta"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.Jn,a);return t.ServiceRegistry.register(r),{shared:t,Cynefin:r}}(0,n.K2)(s,"createCynefinServices")},3245(e,t,r){r.d(t,{P:()=>l});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RailroadPegTokenBuilder")}constructor(){super(["railroad-peg-beta"])}},a=(0,n.K2)(e=>{let t=e.slice(1,-1),r="";for(let e=0;e<t.length;e++){let n=t[e];if("\\"===n&&e+1<t.length){let n=t[++e];switch(n){case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+=" ";break;default:r+=n}continue}r+=n}return r},"decodeEscapedString"),s=class extends n.dg{static{(0,n.K2)(this,"RailroadPegValueConverter")}runConverter(e,t,r){let n=super.runConverter(e,t,r);if("TITLE"===e.name&&"string"==typeof n){let e=n.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return a(e)}return n}runCustomConverter(e,t,r){if("PEG_STRING"===e.name)return a(t)}},o={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")}};function l(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.dj,o);return t.ServiceRegistry.register(r),{shared:t,RailroadPeg:r}}(0,n.K2)(l,"createRailroadPegServices")},4954(e,t,r){let n,i;r.d(t,{Bg:()=>Ex,Bi:()=>EI,CZ:()=>EO,DD:()=>Rd,D_:()=>Ek,F5:()=>RO,FZ:()=>EC,Jn:()=>EE,K2:()=>tD,Tm:()=>Ej,U4:()=>Ew,WQ:()=>Rt,XE:()=>EP,Xr:()=>ED,d$:()=>EA,dg:()=>EM,dj:()=>E_,mR:()=>EF,oI:()=>EN,p5:()=>ES,sr:()=>E$,tG:()=>$8,uM:()=>Re,wV:()=>ER,x0:()=>Eb});var a,s,o,l,u,c,p,f,d,m,h,y,g,T,v,$,R,E,b,A,C,S,k,x,N,w,I,_,P,O,D,L,M,j,F,G,z,K,q,U,B,W,V,H,Y,Q,Z,X,J,ee,et,er,en,ei,ea,es,eo,el,eu,ec,ep,ef,ed,em,eh,ey,eg,eT,ev,e$,eR,eE,eb,eA,eC,eS,ek,ex,eN,ew,eI,e_,eP,eO,eD,eL,eM,ej,eF,eG,ez,eK,eq,eU,eB,eW,eV,eH,eY,eQ,eZ,eX,eJ,e0,e1,e2,e3,e4,e5,e9,e6,e7,e8,te,tt,tr,tn,ti,ta,ts,to,tl,tu,tc,tp,tf,td,tm,th,ty,tg,tT,tv,t$,tR,tE,tb,tA,tC,tS,tk,tx,tN=Object.create,tw=Object.defineProperty,tI=Object.getOwnPropertyDescriptor,t_=Object.getOwnPropertyNames,tP=Object.getPrototypeOf,tO=Object.prototype.hasOwnProperty,tD=(e,t)=>tw(e,"name",{value:t,configurable:!0}),tL=(e,t)=>function(){return t||(0,e[t_(e)[0]])((t={exports:{}}).exports,t),t.exports},tM=(e,t)=>{for(var r in t)tw(e,r,{get:t[r],enumerable:!0})},tj=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of t_(t))tO.call(e,i)||i===r||tw(e,i,{get:()=>t[i],enumerable:!(n=tI(t,i))||n.enumerable});return e},tF=(e,t,r)=>(tj(e,t,"default"),r&&tj(r,t,"default")),tG=(e,t,r)=>(r=null!=e?tN(tP(e)):{},tj(!t&&e&&e.__esModule?r:tw(r,"default",{value:e,enumerable:!0}),e)),tz=e=>tj(tw({},"__esModule",{value:!0}),e),tK={};tM(tK,{AnnotatedTextEdit:()=>j,ChangeAnnotation:()=>L,ChangeAnnotationIdentifier:()=>M,CodeAction:()=>eR,CodeActionContext:()=>e$,CodeActionKind:()=>eT,CodeActionTriggerKind:()=>ev,CodeDescription:()=>_,CodeLens:()=>eE,Color:()=>A,ColorInformation:()=>C,ColorPresentation:()=>S,Command:()=>O,CompletionItem:()=>ea,CompletionItemKind:()=>J,CompletionItemLabelDetails:()=>ei,CompletionItemTag:()=>et,CompletionList:()=>es,CreateFile:()=>G,DeleteFile:()=>K,Diagnostic:()=>P,DiagnosticRelatedInformation:()=>N,DiagnosticSeverity:()=>w,DiagnosticTag:()=>I,DocumentHighlight:()=>ef,DocumentHighlightKind:()=>ep,DocumentLink:()=>eA,DocumentSymbol:()=>eg,DocumentUri:()=>y,EOL:()=>eq,FoldingRange:()=>x,FoldingRangeKind:()=>k,FormattingOptions:()=>eb,Hover:()=>el,InlayHint:()=>eD,InlayHintKind:()=>eP,InlayHintLabelPart:()=>eO,InlineCompletionContext:()=>ez,InlineCompletionItem:()=>eM,InlineCompletionList:()=>ej,InlineCompletionTriggerKind:()=>eF,InlineValueContext:()=>e_,InlineValueEvaluatableExpression:()=>eI,InlineValueText:()=>eN,InlineValueVariableLookup:()=>ew,InsertReplaceEdit:()=>er,InsertTextFormat:()=>ee,InsertTextMode:()=>en,Location:()=>E,LocationLink:()=>b,MarkedString:()=>eo,MarkupContent:()=>X,MarkupKind:()=>Z,OptionalVersionedTextDocumentIdentifier:()=>Y,ParameterInformation:()=>eu,Position:()=>$,Range:()=>R,RenameFile:()=>z,SelectedCompletionInfo:()=>eG,SelectionRange:()=>eC,SemanticTokenModifiers:()=>ek,SemanticTokenTypes:()=>eS,SemanticTokens:()=>ex,SignatureInformation:()=>ec,StringValue:()=>eL,SymbolInformation:()=>eh,SymbolKind:()=>ed,SymbolTag:()=>em,TextDocument:()=>eU,TextDocumentEdit:()=>F,TextDocumentIdentifier:()=>V,TextDocumentItem:()=>Q,TextEdit:()=>D,URI:()=>g,VersionedTextDocumentIdentifier:()=>H,WorkspaceChange:()=>W,WorkspaceEdit:()=>q,WorkspaceFolder:()=>eK,WorkspaceSymbol:()=>ey,integer:()=>T,uinteger:()=>v});var tq=(n={"../../node_modules/.pnpm/vscode-languageserver-types@3.17.5/node_modules/vscode-languageserver-types/lib/esm/main.js"(){var e,t,r,n,i,a,s,o,l,u,c,p,f,d=y||(y={});function m(e){return"string"==typeof e}tD(m,"is"),d.is=m;var h=g||(g={});function eV(e){return"string"==typeof e}tD(eV,"is"),h.is=eV;var eH=T||(T={});function eY(e){return"number"==typeof e&&eH.MIN_VALUE<=e&&e<=eH.MAX_VALUE}eH.MIN_VALUE=-0x80000000,eH.MAX_VALUE=0x7fffffff,tD(eY,"is"),eH.is=eY;var eQ=v||(v={});function eZ(e){return"number"==typeof e&&eQ.MIN_VALUE<=e&&e<=eQ.MAX_VALUE}eQ.MIN_VALUE=0,eQ.MAX_VALUE=0x7fffffff,tD(eZ,"is"),eQ.is=eZ;var eX=$||($={});function eJ(e,t){return e===Number.MAX_VALUE&&(e=v.MAX_VALUE),t===Number.MAX_VALUE&&(t=v.MAX_VALUE),{line:e,character:t}}function e0(e){return eW.objectLiteral(e)&&eW.uinteger(e.line)&&eW.uinteger(e.character)}tD(eJ,"create"),eX.create=eJ,tD(e0,"is"),eX.is=e0;var e1=R||(R={});function e2(e,t,r,n){if(eW.uinteger(e)&&eW.uinteger(t)&&eW.uinteger(r)&&eW.uinteger(n))return{start:$.create(e,t),end:$.create(r,n)};if($.is(e)&&$.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${r}, ${n}]`)}function e3(e){return eW.objectLiteral(e)&&$.is(e.start)&&$.is(e.end)}tD(e2,"create"),e1.create=e2,tD(e3,"is"),e1.is=e3;var e4=E||(E={});function e5(e,t){return{uri:e,range:t}}function e9(e){return eW.objectLiteral(e)&&R.is(e.range)&&(eW.string(e.uri)||eW.undefined(e.uri))}tD(e5,"create"),e4.create=e5,tD(e9,"is"),e4.is=e9;var e6=b||(b={});function e7(e,t,r,n){return{targetUri:e,targetRange:t,targetSelectionRange:r,originSelectionRange:n}}function e8(e){return eW.objectLiteral(e)&&R.is(e.targetRange)&&eW.string(e.targetUri)&&R.is(e.targetSelectionRange)&&(R.is(e.originSelectionRange)||eW.undefined(e.originSelectionRange))}tD(e7,"create"),e6.create=e7,tD(e8,"is"),e6.is=e8;var te=A||(A={});function tt(e,t,r,n){return{red:e,green:t,blue:r,alpha:n}}function tr(e){return eW.objectLiteral(e)&&eW.numberRange(e.red,0,1)&&eW.numberRange(e.green,0,1)&&eW.numberRange(e.blue,0,1)&&eW.numberRange(e.alpha,0,1)}tD(tt,"create"),te.create=tt,tD(tr,"is"),te.is=tr;var tn=C||(C={});function ti(e,t){return{range:e,color:t}}function ta(e){return eW.objectLiteral(e)&&R.is(e.range)&&A.is(e.color)}tD(ti,"create"),tn.create=ti,tD(ta,"is"),tn.is=ta;var ts=S||(S={});function to(e,t,r){return{label:e,textEdit:t,additionalTextEdits:r}}function tl(e){return eW.objectLiteral(e)&&eW.string(e.label)&&(eW.undefined(e.textEdit)||D.is(e))&&(eW.undefined(e.additionalTextEdits)||eW.typedArray(e.additionalTextEdits,D.is))}tD(to,"create"),ts.create=to,tD(tl,"is"),ts.is=tl,(e=k||(k={})).Comment="comment",e.Imports="imports",e.Region="region";var tu=x||(x={});function tc(e,t,r,n,i,a){let s={startLine:e,endLine:t};return eW.defined(r)&&(s.startCharacter=r),eW.defined(n)&&(s.endCharacter=n),eW.defined(i)&&(s.kind=i),eW.defined(a)&&(s.collapsedText=a),s}function tp(e){return eW.objectLiteral(e)&&eW.uinteger(e.startLine)&&eW.uinteger(e.startLine)&&(eW.undefined(e.startCharacter)||eW.uinteger(e.startCharacter))&&(eW.undefined(e.endCharacter)||eW.uinteger(e.endCharacter))&&(eW.undefined(e.kind)||eW.string(e.kind))}tD(tc,"create"),tu.create=tc,tD(tp,"is"),tu.is=tp;var tf=N||(N={});function td(e,t){return{location:e,message:t}}function tm(e){return eW.defined(e)&&E.is(e.location)&&eW.string(e.message)}tD(td,"create"),tf.create=td,tD(tm,"is"),tf.is=tm,(t=w||(w={})).Error=1,t.Warning=2,t.Information=3,t.Hint=4,(r=I||(I={})).Unnecessary=1,r.Deprecated=2;var th=_||(_={});function ty(e){return eW.objectLiteral(e)&&eW.string(e.href)}tD(ty,"is"),th.is=ty;var tg=P||(P={});function tT(e,t,r,n,i,a){let s={range:e,message:t};return eW.defined(r)&&(s.severity=r),eW.defined(n)&&(s.code=n),eW.defined(i)&&(s.source=i),eW.defined(a)&&(s.relatedInformation=a),s}function tv(e){var t;return eW.defined(e)&&R.is(e.range)&&eW.string(e.message)&&(eW.number(e.severity)||eW.undefined(e.severity))&&(eW.integer(e.code)||eW.string(e.code)||eW.undefined(e.code))&&(eW.undefined(e.codeDescription)||eW.string(null==(t=e.codeDescription)?void 0:t.href))&&(eW.string(e.source)||eW.undefined(e.source))&&(eW.undefined(e.relatedInformation)||eW.typedArray(e.relatedInformation,N.is))}tD(tT,"create"),tg.create=tT,tD(tv,"is"),tg.is=tv;var t$=O||(O={});function tR(e,t,...r){let n={title:e,command:t};return eW.defined(r)&&r.length>0&&(n.arguments=r),n}function tE(e){return eW.defined(e)&&eW.string(e.title)&&eW.string(e.command)}tD(tR,"create"),t$.create=tR,tD(tE,"is"),t$.is=tE,function(e){function t(e,t){return{range:e,newText:t}}function r(e,t){return{range:{start:e,end:e},newText:t}}function n(e){return{range:e,newText:""}}function i(e){return eW.objectLiteral(e)&&eW.string(e.newText)&&R.is(e.range)}tD(t,"replace"),e.replace=t,tD(r,"insert"),e.insert=r,tD(n,"del"),e.del=n,tD(i,"is"),e.is=i}(D||(D={}));var tb=L||(L={});function tA(e,t,r){let n={label:e};return void 0!==t&&(n.needsConfirmation=t),void 0!==r&&(n.description=r),n}function tC(e){return eW.objectLiteral(e)&&eW.string(e.label)&&(eW.boolean(e.needsConfirmation)||void 0===e.needsConfirmation)&&(eW.string(e.description)||void 0===e.description)}tD(tA,"create"),tb.create=tA,tD(tC,"is"),tb.is=tC;var tS=M||(M={});function tk(e){return eW.string(e)}tD(tk,"is"),tS.is=tk,function(e){function t(e,t,r){return{range:e,newText:t,annotationId:r}}function r(e,t,r){return{range:{start:e,end:e},newText:t,annotationId:r}}function n(e,t){return{range:e,newText:"",annotationId:t}}function i(e){return D.is(e)&&(L.is(e.annotationId)||M.is(e.annotationId))}tD(t,"replace"),e.replace=t,tD(r,"insert"),e.insert=r,tD(n,"del"),e.del=n,tD(i,"is"),e.is=i}(j||(j={}));var tx=F||(F={});function tN(e,t){return{textDocument:e,edits:t}}function tw(e){return eW.defined(e)&&Y.is(e.textDocument)&&Array.isArray(e.edits)}tD(tN,"create"),tx.create=tN,tD(tw,"is"),tx.is=tw;var tI=G||(G={});function t_(e,t,r){let n={kind:"create",uri:e};return void 0!==t&&(void 0!==t.overwrite||void 0!==t.ignoreIfExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n}function tP(e){return e&&"create"===e.kind&&eW.string(e.uri)&&(void 0===e.options||(void 0===e.options.overwrite||eW.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||eW.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||M.is(e.annotationId))}tD(t_,"create"),tI.create=t_,tD(tP,"is"),tI.is=tP;var tO=z||(z={});function tL(e,t,r,n){let i={kind:"rename",oldUri:e,newUri:t};return void 0!==r&&(void 0!==r.overwrite||void 0!==r.ignoreIfExists)&&(i.options=r),void 0!==n&&(i.annotationId=n),i}function tM(e){return e&&"rename"===e.kind&&eW.string(e.oldUri)&&eW.string(e.newUri)&&(void 0===e.options||(void 0===e.options.overwrite||eW.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||eW.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||M.is(e.annotationId))}tD(tL,"create"),tO.create=tL,tD(tM,"is"),tO.is=tM;var tj=K||(K={});function tF(e,t,r){let n={kind:"delete",uri:e};return void 0!==t&&(void 0!==t.recursive||void 0!==t.ignoreIfNotExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n}function tG(e){return e&&"delete"===e.kind&&eW.string(e.uri)&&(void 0===e.options||(void 0===e.options.recursive||eW.boolean(e.options.recursive))&&(void 0===e.options.ignoreIfNotExists||eW.boolean(e.options.ignoreIfNotExists)))&&(void 0===e.annotationId||M.is(e.annotationId))}tD(tF,"create"),tj.create=tF,tD(tG,"is"),tj.is=tG;var tz=q||(q={});function tK(e){return e&&(void 0!==e.changes||void 0!==e.documentChanges)&&(void 0===e.documentChanges||e.documentChanges.every(e=>eW.string(e.kind)?G.is(e)||z.is(e)||K.is(e):F.is(e)))}tD(tK,"is"),tz.is=tK,U=class{static{tD(this,"TextEditChangeImpl")}constructor(e,t){this.edits=e,this.changeAnnotations=t}insert(e,t,r){let n,i;if(void 0===r?n=D.insert(e,t):M.is(r)?(i=r,n=j.insert(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(r),n=j.insert(e,t,i)),this.edits.push(n),void 0!==i)return i}replace(e,t,r){let n,i;if(void 0===r?n=D.replace(e,t):M.is(r)?(i=r,n=j.replace(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(r),n=j.replace(e,t,i)),this.edits.push(n),void 0!==i)return i}delete(e,t){let r,n;if(void 0===t?r=D.del(e):M.is(t)?(n=t,r=j.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(t),r=j.del(e,n)),this.edits.push(r),void 0!==n)return n}add(e){this.edits.push(e)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(e){if(void 0===e)throw Error("Text edit change is not configured to manage change annotations.")}},B=class{static{tD(this,"ChangeAnnotations")}constructor(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(e,t){let r;if(M.is(e)?r=e:(r=this.nextId(),t=e),void 0!==this._annotations[r])throw Error(`Id ${r} is already in use.`);if(void 0===t)throw Error(`No annotation provided for id ${r}`);return this._annotations[r]=t,this._size++,r}nextId(){return this._counter++,this._counter.toString()}},W=class{static{tD(this,"WorkspaceChange")}constructor(e){this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new B(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(e=>{if(F.is(e)){let t=new U(e.edits,this._changeAnnotations);this._textEditChanges[e.textDocument.uri]=t}})):e.changes&&Object.keys(e.changes).forEach(t=>{let r=new U(e.changes[t]);this._textEditChanges[t]=r})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(e){if(Y.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");let t={uri:e.uri,version:e.version},r=this._textEditChanges[t.uri];if(!r){let e=[];this._workspaceEdit.documentChanges.push({textDocument:t,edits:e}),r=new U(e,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}{if(this.initChanges(),void 0===this._workspaceEdit.changes)throw Error("Workspace edit is not configured for normal text edit changes.");let t=this._textEditChanges[e];if(!t){let r=[];this._workspaceEdit.changes[e]=r,t=new U(r),this._textEditChanges[e]=t}return t}}initDocumentChanges(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new B,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))}createFile(e,t,r){let n,i,a;if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");if(L.is(t)||M.is(t)?n=t:r=t,void 0===n?i=G.create(e,r):(a=M.is(n)?n:this._changeAnnotations.manage(n),i=G.create(e,r,a)),this._workspaceEdit.documentChanges.push(i),void 0!==a)return a}renameFile(e,t,r,n){let i,a,s;if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");if(L.is(r)||M.is(r)?i=r:n=r,void 0===i?a=z.create(e,t,n):(s=M.is(i)?i:this._changeAnnotations.manage(i),a=z.create(e,t,n,s)),this._workspaceEdit.documentChanges.push(a),void 0!==s)return s}deleteFile(e,t,r){let n,i,a;if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");if(L.is(t)||M.is(t)?n=t:r=t,void 0===n?i=K.create(e,r):(a=M.is(n)?n:this._changeAnnotations.manage(n),i=K.create(e,r,a)),this._workspaceEdit.documentChanges.push(i),void 0!==a)return a}};var tq=V||(V={});function tU(e){return{uri:e}}function tB(e){return eW.defined(e)&&eW.string(e.uri)}tD(tU,"create"),tq.create=tU,tD(tB,"is"),tq.is=tB;var tW=H||(H={});function tV(e,t){return{uri:e,version:t}}function tH(e){return eW.defined(e)&&eW.string(e.uri)&&eW.integer(e.version)}tD(tV,"create"),tW.create=tV,tD(tH,"is"),tW.is=tH;var tY=Y||(Y={});function tQ(e,t){return{uri:e,version:t}}function tZ(e){return eW.defined(e)&&eW.string(e.uri)&&(null===e.version||eW.integer(e.version))}tD(tQ,"create"),tY.create=tQ,tD(tZ,"is"),tY.is=tZ;var tX=Q||(Q={});function tJ(e,t,r,n){return{uri:e,languageId:t,version:r,text:n}}function t0(e){return eW.defined(e)&&eW.string(e.uri)&&eW.string(e.languageId)&&eW.integer(e.version)&&eW.string(e.text)}tD(tJ,"create"),tX.create=tJ,tD(t0,"is"),tX.is=t0;var t1=Z||(Z={});function t2(e){return e===t1.PlainText||e===t1.Markdown}t1.PlainText="plaintext",t1.Markdown="markdown",tD(t2,"is"),t1.is=t2;var t3=X||(X={});function t4(e){return eW.objectLiteral(e)&&Z.is(e.kind)&&eW.string(e.value)}tD(t4,"is"),t3.is=t4,(n=J||(J={})).Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25,(i=ee||(ee={})).PlainText=1,i.Snippet=2,(et||(et={})).Deprecated=1;var t5=er||(er={});function t9(e,t,r){return{newText:e,insert:t,replace:r}}function t6(e){return e&&eW.string(e.newText)&&R.is(e.insert)&&R.is(e.replace)}tD(t9,"create"),t5.create=t9,tD(t6,"is"),t5.is=t6,(a=en||(en={})).asIs=1,a.adjustIndentation=2;var t7=ei||(ei={});function t8(e){return e&&(eW.string(e.detail)||void 0===e.detail)&&(eW.string(e.description)||void 0===e.description)}tD(t8,"is"),t7.is=t8;var re=ea||(ea={});function rt(e){return{label:e}}tD(rt,"create"),re.create=rt;var rr=es||(es={});function rn(e,t){return{items:e||[],isIncomplete:!!t}}tD(rn,"create"),rr.create=rn;var ri=eo||(eo={});function ra(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}function rs(e){return eW.string(e)||eW.objectLiteral(e)&&eW.string(e.language)&&eW.string(e.value)}tD(ra,"fromPlainText"),ri.fromPlainText=ra,tD(rs,"is"),ri.is=rs;var ro=el||(el={});function rl(e){return!!e&&eW.objectLiteral(e)&&(X.is(e.contents)||eo.is(e.contents)||eW.typedArray(e.contents,eo.is))&&(void 0===e.range||R.is(e.range))}tD(rl,"is"),ro.is=rl;var ru=eu||(eu={});function rc(e,t){return t?{label:e,documentation:t}:{label:e}}tD(rc,"create"),ru.create=rc;var rp=ec||(ec={});function rf(e,t,...r){let n={label:e};return eW.defined(t)&&(n.documentation=t),eW.defined(r)?n.parameters=r:n.parameters=[],n}tD(rf,"create"),rp.create=rf,(s=ep||(ep={})).Text=1,s.Read=2,s.Write=3;var rd=ef||(ef={});function rm(e,t){let r={range:e};return eW.number(t)&&(r.kind=t),r}tD(rm,"create"),rd.create=rm,(o=ed||(ed={})).File=1,o.Module=2,o.Namespace=3,o.Package=4,o.Class=5,o.Method=6,o.Property=7,o.Field=8,o.Constructor=9,o.Enum=10,o.Interface=11,o.Function=12,o.Variable=13,o.Constant=14,o.String=15,o.Number=16,o.Boolean=17,o.Array=18,o.Object=19,o.Key=20,o.Null=21,o.EnumMember=22,o.Struct=23,o.Event=24,o.Operator=25,o.TypeParameter=26,(em||(em={})).Deprecated=1;var rh=eh||(eh={});function ry(e,t,r,n,i){let a={name:e,kind:t,location:{uri:n,range:r}};return i&&(a.containerName=i),a}tD(ry,"create"),rh.create=ry;var rg=ey||(ey={});function rT(e,t,r,n){return void 0!==n?{name:e,kind:t,location:{uri:r,range:n}}:{name:e,kind:t,location:{uri:r}}}tD(rT,"create"),rg.create=rT;var rv=eg||(eg={});function r$(e,t,r,n,i,a){let s={name:e,detail:t,kind:r,range:n,selectionRange:i};return void 0!==a&&(s.children=a),s}function rR(e){return e&&eW.string(e.name)&&eW.number(e.kind)&&R.is(e.range)&&R.is(e.selectionRange)&&(void 0===e.detail||eW.string(e.detail))&&(void 0===e.deprecated||eW.boolean(e.deprecated))&&(void 0===e.children||Array.isArray(e.children))&&(void 0===e.tags||Array.isArray(e.tags))}tD(r$,"create"),rv.create=r$,tD(rR,"is"),rv.is=rR,(l=eT||(eT={})).Empty="",l.QuickFix="quickfix",l.Refactor="refactor",l.RefactorExtract="refactor.extract",l.RefactorInline="refactor.inline",l.RefactorRewrite="refactor.rewrite",l.Source="source",l.SourceOrganizeImports="source.organizeImports",l.SourceFixAll="source.fixAll",(u=ev||(ev={})).Invoked=1,u.Automatic=2;var rE=e$||(e$={});function rb(e,t,r){let n={diagnostics:e};return null!=t&&(n.only=t),null!=r&&(n.triggerKind=r),n}function rA(e){return eW.defined(e)&&eW.typedArray(e.diagnostics,P.is)&&(void 0===e.only||eW.typedArray(e.only,eW.string))&&(void 0===e.triggerKind||e.triggerKind===ev.Invoked||e.triggerKind===ev.Automatic)}tD(rb,"create"),rE.create=rb,tD(rA,"is"),rE.is=rA;var rC=eR||(eR={});function rS(e,t,r){let n={title:e},i=!0;return"string"==typeof t?(i=!1,n.kind=t):O.is(t)?n.command=t:n.edit=t,i&&void 0!==r&&(n.kind=r),n}function rk(e){return e&&eW.string(e.title)&&(void 0===e.diagnostics||eW.typedArray(e.diagnostics,P.is))&&(void 0===e.kind||eW.string(e.kind))&&(void 0!==e.edit||void 0!==e.command)&&(void 0===e.command||O.is(e.command))&&(void 0===e.isPreferred||eW.boolean(e.isPreferred))&&(void 0===e.edit||q.is(e.edit))}tD(rS,"create"),rC.create=rS,tD(rk,"is"),rC.is=rk;var rx=eE||(eE={});function rN(e,t){let r={range:e};return eW.defined(t)&&(r.data=t),r}function rw(e){return eW.defined(e)&&R.is(e.range)&&(eW.undefined(e.command)||O.is(e.command))}tD(rN,"create"),rx.create=rN,tD(rw,"is"),rx.is=rw;var rI=eb||(eb={});function r_(e,t){return{tabSize:e,insertSpaces:t}}function rP(e){return eW.defined(e)&&eW.uinteger(e.tabSize)&&eW.boolean(e.insertSpaces)}tD(r_,"create"),rI.create=r_,tD(rP,"is"),rI.is=rP;var rO=eA||(eA={});function rD(e,t,r){return{range:e,target:t,data:r}}function rL(e){return eW.defined(e)&&R.is(e.range)&&(eW.undefined(e.target)||eW.string(e.target))}tD(rD,"create"),rO.create=rD,tD(rL,"is"),rO.is=rL;var rM=eC||(eC={});function rj(e,t){return{range:e,parent:t}}function rF(e){return eW.objectLiteral(e)&&R.is(e.range)&&(void 0===e.parent||rM.is(e.parent))}tD(rj,"create"),rM.create=rj,tD(rF,"is"),rM.is=rF,(c=eS||(eS={})).namespace="namespace",c.type="type",c.class="class",c.enum="enum",c.interface="interface",c.struct="struct",c.typeParameter="typeParameter",c.parameter="parameter",c.variable="variable",c.property="property",c.enumMember="enumMember",c.event="event",c.function="function",c.method="method",c.macro="macro",c.keyword="keyword",c.modifier="modifier",c.comment="comment",c.string="string",c.number="number",c.regexp="regexp",c.operator="operator",c.decorator="decorator",(p=ek||(ek={})).declaration="declaration",p.definition="definition",p.readonly="readonly",p.static="static",p.deprecated="deprecated",p.abstract="abstract",p.async="async",p.modification="modification",p.documentation="documentation",p.defaultLibrary="defaultLibrary";var rG=ex||(ex={});function rz(e){return eW.objectLiteral(e)&&(void 0===e.resultId||"string"==typeof e.resultId)&&Array.isArray(e.data)&&(0===e.data.length||"number"==typeof e.data[0])}tD(rz,"is"),rG.is=rz;var rK=eN||(eN={});function rq(e,t){return{range:e,text:t}}function rU(e){return null!=e&&R.is(e.range)&&eW.string(e.text)}tD(rq,"create"),rK.create=rq,tD(rU,"is"),rK.is=rU;var rB=ew||(ew={});function rW(e,t,r){return{range:e,variableName:t,caseSensitiveLookup:r}}function rV(e){return null!=e&&R.is(e.range)&&eW.boolean(e.caseSensitiveLookup)&&(eW.string(e.variableName)||void 0===e.variableName)}tD(rW,"create"),rB.create=rW,tD(rV,"is"),rB.is=rV;var rH=eI||(eI={});function rY(e,t){return{range:e,expression:t}}function rQ(e){return null!=e&&R.is(e.range)&&(eW.string(e.expression)||void 0===e.expression)}tD(rY,"create"),rH.create=rY,tD(rQ,"is"),rH.is=rQ;var rZ=e_||(e_={});function rX(e,t){return{frameId:e,stoppedLocation:t}}function rJ(e){return eW.defined(e)&&R.is(e.stoppedLocation)}tD(rX,"create"),rZ.create=rX,tD(rJ,"is"),rZ.is=rJ;var r0=eP||(eP={});function r1(e){return 1===e||2===e}r0.Type=1,r0.Parameter=2,tD(r1,"is"),r0.is=r1;var r2=eO||(eO={});function r3(e){return{value:e}}function r4(e){return eW.objectLiteral(e)&&(void 0===e.tooltip||eW.string(e.tooltip)||X.is(e.tooltip))&&(void 0===e.location||E.is(e.location))&&(void 0===e.command||O.is(e.command))}tD(r3,"create"),r2.create=r3,tD(r4,"is"),r2.is=r4;var r5=eD||(eD={});function r9(e,t,r){let n={position:e,label:t};return void 0!==r&&(n.kind=r),n}function r6(e){return eW.objectLiteral(e)&&$.is(e.position)&&(eW.string(e.label)||eW.typedArray(e.label,eO.is))&&(void 0===e.kind||eP.is(e.kind))&&void 0===e.textEdits||eW.typedArray(e.textEdits,D.is)&&(void 0===e.tooltip||eW.string(e.tooltip)||X.is(e.tooltip))&&(void 0===e.paddingLeft||eW.boolean(e.paddingLeft))&&(void 0===e.paddingRight||eW.boolean(e.paddingRight))}tD(r9,"create"),r5.create=r9,tD(r6,"is"),r5.is=r6;var r7=eL||(eL={});function r8(e){return{kind:"snippet",value:e}}tD(r8,"createSnippet"),r7.createSnippet=r8;var ne=eM||(eM={});function nt(e,t,r,n){return{insertText:e,filterText:t,range:r,command:n}}tD(nt,"create"),ne.create=nt;var nr=ej||(ej={});function nn(e){return{items:e}}tD(nn,"create"),nr.create=nn,(f=eF||(eF={})).Invoked=0,f.Automatic=1;var ni=eG||(eG={});function na(e,t){return{range:e,text:t}}tD(na,"create"),ni.create=na;var ns=ez||(ez={});function no(e,t){return{triggerKind:e,selectedCompletionInfo:t}}tD(no,"create"),ns.create=no;var nl=eK||(eK={});function nu(e){return eW.objectLiteral(e)&&g.is(e.uri)&&eW.string(e.name)}tD(nu,"is"),nl.is=nu,eq=["\n","\r\n","\r"],function(e){function t(e,t,r,n){return new eB(e,t,r,n)}function r(e){return!!(eW.defined(e)&&eW.string(e.uri)&&(eW.undefined(e.languageId)||eW.string(e.languageId))&&eW.uinteger(e.lineCount)&&eW.func(e.getText)&&eW.func(e.positionAt)&&eW.func(e.offsetAt))}function n(e,t){let r=e.getText(),n=i(t,(e,t)=>{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),a=r.length;for(let t=n.length-1;t>=0;t--){let i=n[t],s=e.offsetAt(i.range.start),o=e.offsetAt(i.range.end);if(o<=a)r=r.substring(0,s)+i.newText+r.substring(o,r.length);else throw Error("Overlapping edit");a=s}return r}function i(e,t){if(e.length<=1)return e;let r=e.length/2|0,n=e.slice(0,r),a=e.slice(r);i(n,t),i(a,t);let s=0,o=0,l=0;for(;s<n.length&&o<a.length;)0>=t(n[s],a[o])?e[l++]=n[s++]:e[l++]=a[o++];for(;s<n.length;)e[l++]=n[s++];for(;o<a.length;)e[l++]=a[o++];return e}tD(t,"create"),e.create=t,tD(r,"is"),e.is=r,tD(n,"applyEdits"),e.applyEdits=n,tD(i,"mergeSort")}(eU||(eU={})),eB=class{static{tD(this,"FullTextDocument")}constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(void 0===this._lineOffsets){let e=[],t=this._content,r=!0;for(let n=0;n<t.length;n++){r&&(e.push(n),r=!1);let i=t.charAt(n);r="\r"===i||"\n"===i,"\r"===i&&n+1<t.length&&"\n"===t.charAt(n+1)&&n++}r&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(0===n)return $.create(0,e);for(;r<n;){let i=Math.floor((r+n)/2);t[i]>e?n=i:r=i+1}let i=r-1;return $.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],n=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,n),r)}get lineCount(){return this.getLineOffsets().length}},function(e){let t=Object.prototype.toString;function r(e){return void 0!==e}function n(e){return void 0===e}function i(e){return!0===e||!1===e}function a(e){return"[object String]"===t.call(e)}function s(e){return"[object Number]"===t.call(e)}function o(e,r,n){return"[object Number]"===t.call(e)&&r<=e&&e<=n}function l(e){return"[object Number]"===t.call(e)&&-0x80000000<=e&&e<=0x7fffffff}function u(e){return"[object Number]"===t.call(e)&&0<=e&&e<=0x7fffffff}function c(e){return"[object Function]"===t.call(e)}function p(e){return null!==e&&"object"==typeof e}function f(e,t){return Array.isArray(e)&&e.every(t)}tD(r,"defined"),e.defined=r,tD(n,"undefined"),e.undefined=n,tD(i,"boolean"),e.boolean=i,tD(a,"string"),e.string=a,tD(s,"number"),e.number=s,tD(o,"numberRange"),e.numberRange=o,tD(l,"integer"),e.integer=l,tD(u,"uinteger"),e.uinteger=u,tD(c,"func"),e.func=c,tD(p,"objectLiteral"),e.objectLiteral=p,tD(f,"typedArray"),e.typedArray=f}(eW||(eW={}))}},function(){return n&&(i=(0,n[t_(n)[0]])(n=0)),i}),tU=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/ral.js"(e){function t(){if(void 0===r)throw Error("No runtime abstraction layer installed");return r}Object.defineProperty(e,"__esModule",{value:!0}),tD(t,"RAL");var r,n=t||(t={});function i(e){if(void 0===e)throw Error("No runtime abstraction layer provided");r=e}tD(i,"install"),n.install=i,e.default=t}}),tB=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/is.js"(e){function t(e){return!0===e||!1===e}function r(e){return"string"==typeof e||e instanceof String}function n(e){return"number"==typeof e||e instanceof Number}function i(e){return e instanceof Error}function a(e){return"function"==typeof e}function s(e){return Array.isArray(e)}function o(e){return s(e)&&e.every(e=>r(e))}Object.defineProperty(e,"__esModule",{value:!0}),e.stringArray=e.array=e.func=e.error=e.number=e.string=e.boolean=void 0,tD(t,"boolean"),e.boolean=t,tD(r,"string"),e.string=r,tD(n,"number"),e.number=n,tD(i,"error"),e.error=i,tD(a,"func"),e.func=a,tD(s,"array"),e.array=s,tD(o,"stringArray"),e.stringArray=o}}),tW=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/events.js"(e){let t;Object.defineProperty(e,"__esModule",{value:!0}),e.Emitter=e.Event=void 0;var r,n,i=tU();r=n||(e.Event=n={}),t={dispose(){}},r.None=function(){return t};var a=class{static{tD(this,"CallbackList")}add(e,t=null,r){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(r)&&r.push({dispose:tD(()=>this.remove(e,t),"dispose")})}remove(e,t=null){if(!this._callbacks)return;let r=!1;for(let n=0,i=this._callbacks.length;n<i;n++)if(this._callbacks[n]===e)if(this._contexts[n]===t){this._callbacks.splice(n,1),this._contexts.splice(n,1);return}else r=!0;if(r)throw Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let t=[],r=this._callbacks.slice(0),n=this._contexts.slice(0);for(let a=0,s=r.length;a<s;a++)try{t.push(r[a].apply(n[a],e))}catch(e){(0,i.default)().console.error(e)}return t}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}},s=class e{static{tD(this,"Emitter")}constructor(e){this._options=e}get event(){return this._event||(this._event=(t,r,n)=>{this._callbacks||(this._callbacks=new a),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,r);let i={dispose:tD(()=>{this._callbacks&&(this._callbacks.remove(t,r),i.dispose=e._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};e.Emitter=s,s._noop=function(){}}}),tV=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/cancellation.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;var t,r=tU(),n=tB(),i=tW(),a=t||(e.CancellationToken=t={});function s(e){return e&&(e===a.None||e===a.Cancelled||n.boolean(e.isCancellationRequested)&&!!e.onCancellationRequested)}a.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:i.Event.None}),a.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:i.Event.None}),tD(s,"is"),a.is=s;var o=Object.freeze(function(e,t){let n=(0,r.default)().timer.setTimeout(e.bind(t),0);return{dispose(){n.dispose()}}}),l=class{static{tD(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){!this._isCancelled&&(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?o:(this._emitter||(this._emitter=new i.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}};e.CancellationTokenSource=class{static{tD(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new l),this._token}cancel(){this._token?this._token.cancel():this._token=t.Cancelled}dispose(){this._token?this._token instanceof l&&this._token.dispose():this._token=t.None}}}}),tH=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messages.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Message=e.NotificationType9=e.NotificationType8=e.NotificationType7=e.NotificationType6=e.NotificationType5=e.NotificationType4=e.NotificationType3=e.NotificationType2=e.NotificationType1=e.NotificationType0=e.NotificationType=e.RequestType9=e.RequestType8=e.RequestType7=e.RequestType6=e.RequestType5=e.RequestType4=e.RequestType3=e.RequestType2=e.RequestType1=e.RequestType=e.RequestType0=e.AbstractMessageSignature=e.ParameterStructures=e.ResponseError=e.ErrorCodes=void 0;var t,r,n,i=tB();(t=r||(e.ErrorCodes=r={})).ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3,e.ResponseError=class e extends Error{static{tD(this,"ResponseError")}constructor(t,n,a){super(n),this.code=i.number(t)?t:r.UnknownErrorCode,this.data=a,Object.setPrototypeOf(this,e.prototype)}toJson(){let e={code:this.code,message:this.message};return void 0!==this.data&&(e.data=this.data),e}};var a=class e{static{tD(this,"ParameterStructures")}constructor(e){this.kind=e}static is(t){return t===e.auto||t===e.byName||t===e.byPosition}toString(){return this.kind}};e.ParameterStructures=a,a.auto=new a("auto"),a.byPosition=new a("byPosition"),a.byName=new a("byName");var s=class{static{tD(this,"AbstractMessageSignature")}constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return a.auto}};e.AbstractMessageSignature=s,e.RequestType0=class extends s{static{tD(this,"RequestType0")}constructor(e){super(e,0)}},e.RequestType=class extends s{static{tD(this,"RequestType")}constructor(e,t=a.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.RequestType1=class extends s{static{tD(this,"RequestType1")}constructor(e,t=a.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.RequestType2=class extends s{static{tD(this,"RequestType2")}constructor(e){super(e,2)}},e.RequestType3=class extends s{static{tD(this,"RequestType3")}constructor(e){super(e,3)}},e.RequestType4=class extends s{static{tD(this,"RequestType4")}constructor(e){super(e,4)}},e.RequestType5=class extends s{static{tD(this,"RequestType5")}constructor(e){super(e,5)}},e.RequestType6=class extends s{static{tD(this,"RequestType6")}constructor(e){super(e,6)}},e.RequestType7=class extends s{static{tD(this,"RequestType7")}constructor(e){super(e,7)}},e.RequestType8=class extends s{static{tD(this,"RequestType8")}constructor(e){super(e,8)}},e.RequestType9=class extends s{static{tD(this,"RequestType9")}constructor(e){super(e,9)}},e.NotificationType=class extends s{static{tD(this,"NotificationType")}constructor(e,t=a.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.NotificationType0=class extends s{static{tD(this,"NotificationType0")}constructor(e){super(e,0)}},e.NotificationType1=class extends s{static{tD(this,"NotificationType1")}constructor(e,t=a.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.NotificationType2=class extends s{static{tD(this,"NotificationType2")}constructor(e){super(e,2)}},e.NotificationType3=class extends s{static{tD(this,"NotificationType3")}constructor(e){super(e,3)}},e.NotificationType4=class extends s{static{tD(this,"NotificationType4")}constructor(e){super(e,4)}},e.NotificationType5=class extends s{static{tD(this,"NotificationType5")}constructor(e){super(e,5)}},e.NotificationType6=class extends s{static{tD(this,"NotificationType6")}constructor(e){super(e,6)}},e.NotificationType7=class extends s{static{tD(this,"NotificationType7")}constructor(e){super(e,7)}},e.NotificationType8=class extends s{static{tD(this,"NotificationType8")}constructor(e){super(e,8)}},e.NotificationType9=class extends s{static{tD(this,"NotificationType9")}constructor(e){super(e,9)}},function(e){function t(e){return e&&i.string(e.method)&&(i.string(e.id)||i.number(e.id))}function r(e){return e&&i.string(e.method)&&void 0===e.id}function n(e){return e&&(void 0!==e.result||!!e.error)&&(i.string(e.id)||i.number(e.id)||null===e.id)}tD(t,"isRequest"),e.isRequest=t,tD(r,"isNotification"),e.isNotification=r,tD(n,"isResponse"),e.isResponse=n}(n||(e.Message=n={}))}}),tY=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/linkedMap.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.LRUCache=e.LinkedMap=e.Touch=void 0,(t=n||(e.Touch=n={})).None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last;var t,r,n,i=class{static{tD(this,"LinkedMap")}constructor(){this[r]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=n.None){let r=this._map.get(e);if(r)return t!==n.None&&this.touch(r,t),r.value}set(e,t,r=n.None){let i=this._map.get(e);if(i)i.value=t,r!==n.None&&this.touch(i,r);else{switch(i={key:e,value:t,next:void 0,previous:void 0},r){case n.None:this.addItemLast(i);break;case n.First:this.addItemFirst(i);break;case n.Last:default:this.addItemLast(i)}this._map.set(e,i),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let r=this._state,n=this._head;for(;n;){if(t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),this._state!==r)throw Error("LinkedMap got modified during iteration.");n=n.next}}keys(){let e=this._state,t=this._head,r={[Symbol.iterator]:()=>r,next:tD(()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:t.key,done:!1};return t=t.next,e}},"next")};return r}values(){let e=this._state,t=this._head,r={[Symbol.iterator]:()=>r,next:tD(()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:t.value,done:!1};return t=t.next,e}},"next")};return r}entries(){let e=this._state,t=this._head,r={[Symbol.iterator]:()=>r,next:tD(()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:[t.key,t.value],done:!1};return t=t.next,e}},"next")};return r}[(r=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(0===e)return void this.clear();let t=this._head,r=this.size;for(;t&&r>e;)this._map.delete(t.key),t=t.next,r--;this._head=t,this._size=r,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(this._head||this._tail)if(this._head)e.next=this._head,this._head.previous=e;else throw Error("Invalid list");else this._tail=e;this._head=e,this._state++}addItemLast(e){if(this._head||this._tail)if(this._tail)e.previous=this._tail,this._tail.next=e;else throw Error("Invalid list");else this._head=e;this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,r=e.previous;if(!t||!r)throw Error("Invalid list");t.previous=r,r.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw Error("Invalid list");if(t===n.First||t===n.Last){if(t===n.First){if(e===this._head)return;let t=e.next,r=e.previous;e===this._tail?(r.next=void 0,this._tail=r):(t.previous=r,r.next=t),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===n.Last){if(e===this._tail)return;let t=e.next,r=e.previous;e===this._head?(t.previous=void 0,this._head=t):(t.previous=r,r.next=t),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,r)=>{e.push([r,t])}),e}fromJSON(e){for(let[t,r]of(this.clear(),e))this.set(t,r)}};e.LinkedMap=i,e.LRUCache=class extends i{static{tD(this,"LRUCache")}constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=n.AsNew){return super.get(e,t)}peek(e){return super.get(e,n.None)}set(e,t){return super.set(e,t,n.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}}}),tQ=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/disposable.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Disposable=void 0;var t,r=t||(e.Disposable=t={});function n(e){return{dispose:e}}tD(n,"create"),r.create=n}}),tZ=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=void 0;var t,r,n=tV();(t=r||(r={})).Continue=0,t.Cancelled=1,e.SharedArraySenderStrategy=class{static{tD(this,"SharedArraySenderStrategy")}constructor(){this.buffers=new Map}enableCancellation(e){if(null===e.id)return;let t=new SharedArrayBuffer(4);new Int32Array(t,0,1)[0]=r.Continue,this.buffers.set(e.id,t),e.$cancellationData=t}async sendCancellation(e,t){let n=this.buffers.get(t);if(void 0===n)return;let i=new Int32Array(n,0,1);Atomics.store(i,0,r.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};var i=class{static{tD(this,"SharedArrayBufferCancellationToken")}constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===r.Cancelled}get onCancellationRequested(){throw Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},a=class{static{tD(this,"SharedArrayBufferCancellationTokenSource")}constructor(e){this.token=new i(e)}cancel(){}dispose(){}};e.SharedArrayReceiverStrategy=class{static{tD(this,"SharedArrayReceiverStrategy")}constructor(){this.kind="request"}createCancellationTokenSource(e){let t=e.$cancellationData;return void 0===t?new n.CancellationTokenSource:new a(t)}}}}),tX=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/semaphore.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Semaphore=void 0;var t=tU();e.Semaphore=class{static{tD(this,"Semaphore")}constructor(e=1){if(e<=0)throw Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,r)=>{this._waiting.push({thunk:e,resolve:t,reject:r}),this.runNext()})}get active(){return this._active}runNext(){0!==this._waiting.length&&this._active!==this._capacity&&(0,t.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(0===this._waiting.length||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(t=>{this._active--,e.resolve(t),this.runNext()},t=>{this._active--,e.reject(t),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}}}}),tJ=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messageReader.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=void 0;var t,r,n=tU(),i=tB(),a=tW(),s=tX(),o=t||(e.MessageReader=t={});function l(e){return e&&i.func(e.listen)&&i.func(e.dispose)&&i.func(e.onError)&&i.func(e.onClose)&&i.func(e.onPartialMessage)}tD(l,"is"),o.is=l;var u=class{static{tD(this,"AbstractMessageReader")}constructor(){this.errorEmitter=new a.Emitter,this.closeEmitter=new a.Emitter,this.partialMessageEmitter=new a.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:Error(`Reader received error. Reason: ${i.string(e.message)?e.message:"unknown"}`)}};e.AbstractMessageReader=u;var c=r||(r={});function p(e){let t,r,i,a=new Map,s=new Map;if(void 0===e||"string"==typeof e)t=e??"utf-8";else{if(t=e.charset??"utf-8",void 0!==e.contentDecoder&&(r=e.contentDecoder,a.set(r.name,r)),void 0!==e.contentDecoders)for(let t of e.contentDecoders)a.set(t.name,t);if(void 0!==e.contentTypeDecoder&&(i=e.contentTypeDecoder,s.set(i.name,i)),void 0!==e.contentTypeDecoders)for(let t of e.contentTypeDecoders)s.set(t.name,t)}return void 0===i&&(i=(0,n.default)().applicationJson.decoder,s.set(i.name,i)),{charset:t,contentDecoder:r,contentDecoders:a,contentTypeDecoder:i,contentTypeDecoders:s}}tD(p,"fromOptions"),c.fromOptions=p,e.ReadableStreamMessageReader=class extends u{static{tD(this,"ReadableStreamMessageReader")}constructor(e,t){super(),this.readable=e,this.options=r.fromOptions(t),this.buffer=(0,n.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new s.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(e=>{this.onData(e)});return this.readable.onError(e=>this.fireError(e)),this.readable.onClose(()=>this.fireClose()),t}onData(e){try{for(this.buffer.append(e);;){if(-1===this.nextMessageLength){let e=this.buffer.tryReadHeaders(!0);if(!e)return;let t=e.get("content-length");if(!t)return void this.fireError(Error(`Header must provide a Content-Length property. +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4936"],{4916(e,t,r){r.d(t,{W:()=>l});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RailroadEbnfTokenBuilder")}constructor(){super(["railroad-ebnf-beta"])}},a=(0,n.K2)(e=>{let t=e.slice(1,-1),r="";for(let e=0;e<t.length;e++){let n=t[e];if("\\"===n&&e+1<t.length){let n=t[++e];switch(n){case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+=" ";break;default:r+=n}continue}r+=n}return r},"decodeEscapedString"),s=class extends n.dg{static{(0,n.K2)(this,"RailroadEbnfValueConverter")}runConverter(e,t,r){let n=super.runConverter(e,t,r);if("TITLE"===e.name&&"string"==typeof n){let e=n.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return a(e)}return n}runCustomConverter(e,t,r){return"EBNF_STRING"===e.name?a(t):"EBNF_SPECIAL_SEQUENCE"===e.name?t.slice(1,-1).trim():void 0}},o={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")}};function l(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.U4,o);return t.ServiceRegistry.register(r),{shared:t,RailroadEbnf:r}}(0,n.K2)(l,"createRailroadEbnfServices")},6041(e,t,r){r.d(t,{f:()=>o});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},a=class extends n.dg{static{(0,n.K2)(this,"PieValueConverter")}runCustomConverter(e,t,r){if("PIE_SECTION_LABEL"===e.name)return t.replace(/"/g,"").trim()}},s={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new a,"ValueConverter")}};function o(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.D_,s);return t.ServiceRegistry.register(r),{shared:t,Pie:r}}(0,n.K2)(o,"createPieServices")},4614(e,t,r){r.d(t,{v:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.FZ,a);return t.ServiceRegistry.register(r),{shared:t,Info:r}}(0,n.K2)(s,"createInfoServices")},5796(e,t,r){r.d(t,{S:()=>o});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},a=class extends n.dg{static{(0,n.K2)(this,"ArchitectureValueConverter")}runCustomConverter(e,t,r){if("ARCH_ICON"===e.name)return t.replace(/[()]/g,"").trim();if("ARCH_TEXT_ICON"===e.name)return t.replace(/["()]/g,"");if("ARCH_TITLE"===e.name){let e=t.replace(/^\[|]$/g,"").trim();return(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=(e=e.slice(1,-1)).replace(/\\"/g,'"').replace(/\\'/g,"'")),e.trim()}}},s={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new a,"ValueConverter")}};function o(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.wV,s);return t.ServiceRegistry.register(r),{shared:t,Architecture:r}}(0,n.K2)(o,"createArchitectureServices")},2688(e,t,r){r.d(t,{g:()=>d});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"EventModelingTokenBuilder")}constructor(){super(["eventmodeling"])}},a=new Set(["cmd","command"]),s=new Set(["evt","event"]),o=new Set(["rmo","readmodel"]),l=new Set(["pcr","processor"]),u=new Set(["ui"]);function c(e){let t=e.validation.EventModelingValidator,r=e.validation.ValidationRegistry;if(r){let e={EmTimeFrame:t.checkSourceFrameTypes.bind(t),EmResetFrame:t.checkSourceFrameTypes.bind(t)};r.register(e,t)}}(0,n.K2)(c,"registerValidationChecks");var p=class{static{(0,n.K2)(this,"EventModelingValidator")}checkSourceFrameTypes(e,t){0!==e.sourceFrames.length&&(a.has(e.modelEntityType)?this.validateSources(e,new Set([...u,...l]),"command","ui or processor",t):s.has(e.modelEntityType)?this.validateSources(e,a,"event","command",t):o.has(e.modelEntityType)?this.validateSources(e,s,"read model","event",t):l.has(e.modelEntityType)?this.validateSources(e,o,"processor","read model",t):u.has(e.modelEntityType)&&this.validateSources(e,o,"ui","read model",t))}validateSources(e,t,r,n,i){for(let a of e.sourceFrames){let s=a.ref;void 0===s||t.has(s.modelEntityType)||i("error",`A ${r} can only receive input from a ${n}, not from '${s.modelEntityType}'.`,{node:e,property:"sourceFrames"})}}},f={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")},validation:{EventModelingValidator:(0,n.K2)(()=>new p,"EventModelingValidator")}};function d(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.x0,f);return t.ServiceRegistry.register(r),c(r),{shared:t,EventModel:r}}(0,n.K2)(d,"createEventModelingServices")},6527(e,t,r){r.d(t,{d:()=>c});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},a=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,s=class extends n.dg{static{(0,n.K2)(this,"TreemapValueConverter")}runCustomConverter(e,t,r){if("NUMBER2"===e.name)return parseFloat(t.replace(/,/g,""));if("SEPARATOR"===e.name)return t.substring(1,t.length-1);if("STRING2"===e.name)return t.substring(1,t.length-1);if("INDENTATION"===e.name)return t.length;if("ClassDef"===e.name){if("string"!=typeof t)return t;let e=a.exec(t);if(e)return{$type:"ClassDefStatement",className:e[1],styleText:e[2]||void 0}}}};function o(e){let t=e.validation.TreemapValidator,r=e.validation.ValidationRegistry;if(r){let e={Treemap:t.checkSingleRoot.bind(t)};r.register(e,t)}}(0,n.K2)(o,"registerValidationChecks");var l=class{static{(0,n.K2)(this,"TreemapValidator")}checkSingleRoot(e,t){let r;for(let n of e.TreemapRows)n.item&&(void 0===r&&void 0===n.indent?r=0:void 0===n.indent?t("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}):void 0!==r&&r>=parseInt(n.indent,10)&&t("error","Multiple root nodes are not allowed in a treemap.",{node:n,property:"item"}))}},u={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")},validation:{TreemapValidator:(0,n.K2)(()=>new l,"TreemapValidator")}};function c(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.XE,u);return t.ServiceRegistry.register(r),o(r),{shared:t,Treemap:r}}(0,n.K2)(c,"createTreemapServices")},3279(e,t,r){r.d(t,{t:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"CynefinTokenBuilder")}constructor(){super(["cynefin-beta"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.Jn,a);return t.ServiceRegistry.register(r),{shared:t,Cynefin:r}}(0,n.K2)(s,"createCynefinServices")},3245(e,t,r){r.d(t,{P:()=>l});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RailroadPegTokenBuilder")}constructor(){super(["railroad-peg-beta"])}},a=(0,n.K2)(e=>{let t=e.slice(1,-1),r="";for(let e=0;e<t.length;e++){let n=t[e];if("\\"===n&&e+1<t.length){let n=t[++e];switch(n){case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+=" ";break;default:r+=n}continue}r+=n}return r},"decodeEscapedString"),s=class extends n.dg{static{(0,n.K2)(this,"RailroadPegValueConverter")}runConverter(e,t,r){let n=super.runConverter(e,t,r);if("TITLE"===e.name&&"string"==typeof n){let e=n.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return a(e)}return n}runCustomConverter(e,t,r){if("PEG_STRING"===e.name)return a(t)}},o={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")}};function l(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.dj,o);return t.ServiceRegistry.register(r),{shared:t,RailroadPeg:r}}(0,n.K2)(l,"createRailroadPegServices")},4954(e,t,r){let n,i;r.d(t,{Bg:()=>Ex,Bi:()=>EI,CZ:()=>EO,DD:()=>Rd,D_:()=>Ek,F5:()=>RO,FZ:()=>EC,Jn:()=>EE,K2:()=>tD,Tm:()=>Ej,U4:()=>Ew,WQ:()=>Rt,XE:()=>EP,Xr:()=>ED,d$:()=>EA,dg:()=>EM,dj:()=>E_,mR:()=>EF,oI:()=>EN,p5:()=>ES,sr:()=>E$,tG:()=>$8,uM:()=>Re,wV:()=>ER,x0:()=>Eb});var a,s,o,l,u,c,p,f,d,m,h,y,g,T,v,$,R,E,b,A,C,S,k,x,N,w,I,_,P,O,D,L,M,j,F,G,z,K,q,U,B,W,V,H,Y,Q,Z,X,J,ee,et,er,en,ei,ea,es,eo,el,eu,ec,ep,ef,ed,em,eh,ey,eg,eT,ev,e$,eR,eE,eb,eA,eC,eS,ek,ex,eN,ew,eI,e_,eP,eO,eD,eL,eM,ej,eF,eG,ez,eK,eq,eU,eB,eW,eV,eH,eY,eQ,eZ,eX,eJ,e0,e1,e2,e3,e4,e9,e5,e6,e7,e8,te,tt,tr,tn,ti,ta,ts,to,tl,tu,tc,tp,tf,td,tm,th,ty,tg,tT,tv,t$,tR,tE,tb,tA,tC,tS,tk,tx,tN=Object.create,tw=Object.defineProperty,tI=Object.getOwnPropertyDescriptor,t_=Object.getOwnPropertyNames,tP=Object.getPrototypeOf,tO=Object.prototype.hasOwnProperty,tD=(e,t)=>tw(e,"name",{value:t,configurable:!0}),tL=(e,t)=>function(){return t||(0,e[t_(e)[0]])((t={exports:{}}).exports,t),t.exports},tM=(e,t)=>{for(var r in t)tw(e,r,{get:t[r],enumerable:!0})},tj=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of t_(t))tO.call(e,i)||i===r||tw(e,i,{get:()=>t[i],enumerable:!(n=tI(t,i))||n.enumerable});return e},tF=(e,t,r)=>(tj(e,t,"default"),r&&tj(r,t,"default")),tG=(e,t,r)=>(r=null!=e?tN(tP(e)):{},tj(!t&&e&&e.__esModule?r:tw(r,"default",{value:e,enumerable:!0}),e)),tz=e=>tj(tw({},"__esModule",{value:!0}),e),tK={};tM(tK,{AnnotatedTextEdit:()=>j,ChangeAnnotation:()=>L,ChangeAnnotationIdentifier:()=>M,CodeAction:()=>eR,CodeActionContext:()=>e$,CodeActionKind:()=>eT,CodeActionTriggerKind:()=>ev,CodeDescription:()=>_,CodeLens:()=>eE,Color:()=>A,ColorInformation:()=>C,ColorPresentation:()=>S,Command:()=>O,CompletionItem:()=>ea,CompletionItemKind:()=>J,CompletionItemLabelDetails:()=>ei,CompletionItemTag:()=>et,CompletionList:()=>es,CreateFile:()=>G,DeleteFile:()=>K,Diagnostic:()=>P,DiagnosticRelatedInformation:()=>N,DiagnosticSeverity:()=>w,DiagnosticTag:()=>I,DocumentHighlight:()=>ef,DocumentHighlightKind:()=>ep,DocumentLink:()=>eA,DocumentSymbol:()=>eg,DocumentUri:()=>y,EOL:()=>eq,FoldingRange:()=>x,FoldingRangeKind:()=>k,FormattingOptions:()=>eb,Hover:()=>el,InlayHint:()=>eD,InlayHintKind:()=>eP,InlayHintLabelPart:()=>eO,InlineCompletionContext:()=>ez,InlineCompletionItem:()=>eM,InlineCompletionList:()=>ej,InlineCompletionTriggerKind:()=>eF,InlineValueContext:()=>e_,InlineValueEvaluatableExpression:()=>eI,InlineValueText:()=>eN,InlineValueVariableLookup:()=>ew,InsertReplaceEdit:()=>er,InsertTextFormat:()=>ee,InsertTextMode:()=>en,Location:()=>E,LocationLink:()=>b,MarkedString:()=>eo,MarkupContent:()=>X,MarkupKind:()=>Z,OptionalVersionedTextDocumentIdentifier:()=>Y,ParameterInformation:()=>eu,Position:()=>$,Range:()=>R,RenameFile:()=>z,SelectedCompletionInfo:()=>eG,SelectionRange:()=>eC,SemanticTokenModifiers:()=>ek,SemanticTokenTypes:()=>eS,SemanticTokens:()=>ex,SignatureInformation:()=>ec,StringValue:()=>eL,SymbolInformation:()=>eh,SymbolKind:()=>ed,SymbolTag:()=>em,TextDocument:()=>eU,TextDocumentEdit:()=>F,TextDocumentIdentifier:()=>V,TextDocumentItem:()=>Q,TextEdit:()=>D,URI:()=>g,VersionedTextDocumentIdentifier:()=>H,WorkspaceChange:()=>W,WorkspaceEdit:()=>q,WorkspaceFolder:()=>eK,WorkspaceSymbol:()=>ey,integer:()=>T,uinteger:()=>v});var tq=(n={"../../node_modules/.pnpm/vscode-languageserver-types@3.17.5/node_modules/vscode-languageserver-types/lib/esm/main.js"(){var e,t,r,n,i,a,s,o,l,u,c,p,f,d=y||(y={});function m(e){return"string"==typeof e}tD(m,"is"),d.is=m;var h=g||(g={});function eV(e){return"string"==typeof e}tD(eV,"is"),h.is=eV;var eH=T||(T={});function eY(e){return"number"==typeof e&&eH.MIN_VALUE<=e&&e<=eH.MAX_VALUE}eH.MIN_VALUE=-0x80000000,eH.MAX_VALUE=0x7fffffff,tD(eY,"is"),eH.is=eY;var eQ=v||(v={});function eZ(e){return"number"==typeof e&&eQ.MIN_VALUE<=e&&e<=eQ.MAX_VALUE}eQ.MIN_VALUE=0,eQ.MAX_VALUE=0x7fffffff,tD(eZ,"is"),eQ.is=eZ;var eX=$||($={});function eJ(e,t){return e===Number.MAX_VALUE&&(e=v.MAX_VALUE),t===Number.MAX_VALUE&&(t=v.MAX_VALUE),{line:e,character:t}}function e0(e){return eW.objectLiteral(e)&&eW.uinteger(e.line)&&eW.uinteger(e.character)}tD(eJ,"create"),eX.create=eJ,tD(e0,"is"),eX.is=e0;var e1=R||(R={});function e2(e,t,r,n){if(eW.uinteger(e)&&eW.uinteger(t)&&eW.uinteger(r)&&eW.uinteger(n))return{start:$.create(e,t),end:$.create(r,n)};if($.is(e)&&$.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${r}, ${n}]`)}function e3(e){return eW.objectLiteral(e)&&$.is(e.start)&&$.is(e.end)}tD(e2,"create"),e1.create=e2,tD(e3,"is"),e1.is=e3;var e4=E||(E={});function e9(e,t){return{uri:e,range:t}}function e5(e){return eW.objectLiteral(e)&&R.is(e.range)&&(eW.string(e.uri)||eW.undefined(e.uri))}tD(e9,"create"),e4.create=e9,tD(e5,"is"),e4.is=e5;var e6=b||(b={});function e7(e,t,r,n){return{targetUri:e,targetRange:t,targetSelectionRange:r,originSelectionRange:n}}function e8(e){return eW.objectLiteral(e)&&R.is(e.targetRange)&&eW.string(e.targetUri)&&R.is(e.targetSelectionRange)&&(R.is(e.originSelectionRange)||eW.undefined(e.originSelectionRange))}tD(e7,"create"),e6.create=e7,tD(e8,"is"),e6.is=e8;var te=A||(A={});function tt(e,t,r,n){return{red:e,green:t,blue:r,alpha:n}}function tr(e){return eW.objectLiteral(e)&&eW.numberRange(e.red,0,1)&&eW.numberRange(e.green,0,1)&&eW.numberRange(e.blue,0,1)&&eW.numberRange(e.alpha,0,1)}tD(tt,"create"),te.create=tt,tD(tr,"is"),te.is=tr;var tn=C||(C={});function ti(e,t){return{range:e,color:t}}function ta(e){return eW.objectLiteral(e)&&R.is(e.range)&&A.is(e.color)}tD(ti,"create"),tn.create=ti,tD(ta,"is"),tn.is=ta;var ts=S||(S={});function to(e,t,r){return{label:e,textEdit:t,additionalTextEdits:r}}function tl(e){return eW.objectLiteral(e)&&eW.string(e.label)&&(eW.undefined(e.textEdit)||D.is(e))&&(eW.undefined(e.additionalTextEdits)||eW.typedArray(e.additionalTextEdits,D.is))}tD(to,"create"),ts.create=to,tD(tl,"is"),ts.is=tl,(e=k||(k={})).Comment="comment",e.Imports="imports",e.Region="region";var tu=x||(x={});function tc(e,t,r,n,i,a){let s={startLine:e,endLine:t};return eW.defined(r)&&(s.startCharacter=r),eW.defined(n)&&(s.endCharacter=n),eW.defined(i)&&(s.kind=i),eW.defined(a)&&(s.collapsedText=a),s}function tp(e){return eW.objectLiteral(e)&&eW.uinteger(e.startLine)&&eW.uinteger(e.startLine)&&(eW.undefined(e.startCharacter)||eW.uinteger(e.startCharacter))&&(eW.undefined(e.endCharacter)||eW.uinteger(e.endCharacter))&&(eW.undefined(e.kind)||eW.string(e.kind))}tD(tc,"create"),tu.create=tc,tD(tp,"is"),tu.is=tp;var tf=N||(N={});function td(e,t){return{location:e,message:t}}function tm(e){return eW.defined(e)&&E.is(e.location)&&eW.string(e.message)}tD(td,"create"),tf.create=td,tD(tm,"is"),tf.is=tm,(t=w||(w={})).Error=1,t.Warning=2,t.Information=3,t.Hint=4,(r=I||(I={})).Unnecessary=1,r.Deprecated=2;var th=_||(_={});function ty(e){return eW.objectLiteral(e)&&eW.string(e.href)}tD(ty,"is"),th.is=ty;var tg=P||(P={});function tT(e,t,r,n,i,a){let s={range:e,message:t};return eW.defined(r)&&(s.severity=r),eW.defined(n)&&(s.code=n),eW.defined(i)&&(s.source=i),eW.defined(a)&&(s.relatedInformation=a),s}function tv(e){var t;return eW.defined(e)&&R.is(e.range)&&eW.string(e.message)&&(eW.number(e.severity)||eW.undefined(e.severity))&&(eW.integer(e.code)||eW.string(e.code)||eW.undefined(e.code))&&(eW.undefined(e.codeDescription)||eW.string(null==(t=e.codeDescription)?void 0:t.href))&&(eW.string(e.source)||eW.undefined(e.source))&&(eW.undefined(e.relatedInformation)||eW.typedArray(e.relatedInformation,N.is))}tD(tT,"create"),tg.create=tT,tD(tv,"is"),tg.is=tv;var t$=O||(O={});function tR(e,t,...r){let n={title:e,command:t};return eW.defined(r)&&r.length>0&&(n.arguments=r),n}function tE(e){return eW.defined(e)&&eW.string(e.title)&&eW.string(e.command)}tD(tR,"create"),t$.create=tR,tD(tE,"is"),t$.is=tE,function(e){function t(e,t){return{range:e,newText:t}}function r(e,t){return{range:{start:e,end:e},newText:t}}function n(e){return{range:e,newText:""}}function i(e){return eW.objectLiteral(e)&&eW.string(e.newText)&&R.is(e.range)}tD(t,"replace"),e.replace=t,tD(r,"insert"),e.insert=r,tD(n,"del"),e.del=n,tD(i,"is"),e.is=i}(D||(D={}));var tb=L||(L={});function tA(e,t,r){let n={label:e};return void 0!==t&&(n.needsConfirmation=t),void 0!==r&&(n.description=r),n}function tC(e){return eW.objectLiteral(e)&&eW.string(e.label)&&(eW.boolean(e.needsConfirmation)||void 0===e.needsConfirmation)&&(eW.string(e.description)||void 0===e.description)}tD(tA,"create"),tb.create=tA,tD(tC,"is"),tb.is=tC;var tS=M||(M={});function tk(e){return eW.string(e)}tD(tk,"is"),tS.is=tk,function(e){function t(e,t,r){return{range:e,newText:t,annotationId:r}}function r(e,t,r){return{range:{start:e,end:e},newText:t,annotationId:r}}function n(e,t){return{range:e,newText:"",annotationId:t}}function i(e){return D.is(e)&&(L.is(e.annotationId)||M.is(e.annotationId))}tD(t,"replace"),e.replace=t,tD(r,"insert"),e.insert=r,tD(n,"del"),e.del=n,tD(i,"is"),e.is=i}(j||(j={}));var tx=F||(F={});function tN(e,t){return{textDocument:e,edits:t}}function tw(e){return eW.defined(e)&&Y.is(e.textDocument)&&Array.isArray(e.edits)}tD(tN,"create"),tx.create=tN,tD(tw,"is"),tx.is=tw;var tI=G||(G={});function t_(e,t,r){let n={kind:"create",uri:e};return void 0!==t&&(void 0!==t.overwrite||void 0!==t.ignoreIfExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n}function tP(e){return e&&"create"===e.kind&&eW.string(e.uri)&&(void 0===e.options||(void 0===e.options.overwrite||eW.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||eW.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||M.is(e.annotationId))}tD(t_,"create"),tI.create=t_,tD(tP,"is"),tI.is=tP;var tO=z||(z={});function tL(e,t,r,n){let i={kind:"rename",oldUri:e,newUri:t};return void 0!==r&&(void 0!==r.overwrite||void 0!==r.ignoreIfExists)&&(i.options=r),void 0!==n&&(i.annotationId=n),i}function tM(e){return e&&"rename"===e.kind&&eW.string(e.oldUri)&&eW.string(e.newUri)&&(void 0===e.options||(void 0===e.options.overwrite||eW.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||eW.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||M.is(e.annotationId))}tD(tL,"create"),tO.create=tL,tD(tM,"is"),tO.is=tM;var tj=K||(K={});function tF(e,t,r){let n={kind:"delete",uri:e};return void 0!==t&&(void 0!==t.recursive||void 0!==t.ignoreIfNotExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n}function tG(e){return e&&"delete"===e.kind&&eW.string(e.uri)&&(void 0===e.options||(void 0===e.options.recursive||eW.boolean(e.options.recursive))&&(void 0===e.options.ignoreIfNotExists||eW.boolean(e.options.ignoreIfNotExists)))&&(void 0===e.annotationId||M.is(e.annotationId))}tD(tF,"create"),tj.create=tF,tD(tG,"is"),tj.is=tG;var tz=q||(q={});function tK(e){return e&&(void 0!==e.changes||void 0!==e.documentChanges)&&(void 0===e.documentChanges||e.documentChanges.every(e=>eW.string(e.kind)?G.is(e)||z.is(e)||K.is(e):F.is(e)))}tD(tK,"is"),tz.is=tK,U=class{static{tD(this,"TextEditChangeImpl")}constructor(e,t){this.edits=e,this.changeAnnotations=t}insert(e,t,r){let n,i;if(void 0===r?n=D.insert(e,t):M.is(r)?(i=r,n=j.insert(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(r),n=j.insert(e,t,i)),this.edits.push(n),void 0!==i)return i}replace(e,t,r){let n,i;if(void 0===r?n=D.replace(e,t):M.is(r)?(i=r,n=j.replace(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(r),n=j.replace(e,t,i)),this.edits.push(n),void 0!==i)return i}delete(e,t){let r,n;if(void 0===t?r=D.del(e):M.is(t)?(n=t,r=j.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(t),r=j.del(e,n)),this.edits.push(r),void 0!==n)return n}add(e){this.edits.push(e)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(e){if(void 0===e)throw Error("Text edit change is not configured to manage change annotations.")}},B=class{static{tD(this,"ChangeAnnotations")}constructor(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(e,t){let r;if(M.is(e)?r=e:(r=this.nextId(),t=e),void 0!==this._annotations[r])throw Error(`Id ${r} is already in use.`);if(void 0===t)throw Error(`No annotation provided for id ${r}`);return this._annotations[r]=t,this._size++,r}nextId(){return this._counter++,this._counter.toString()}},W=class{static{tD(this,"WorkspaceChange")}constructor(e){this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new B(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(e=>{if(F.is(e)){let t=new U(e.edits,this._changeAnnotations);this._textEditChanges[e.textDocument.uri]=t}})):e.changes&&Object.keys(e.changes).forEach(t=>{let r=new U(e.changes[t]);this._textEditChanges[t]=r})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(e){if(Y.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");let t={uri:e.uri,version:e.version},r=this._textEditChanges[t.uri];if(!r){let e=[];this._workspaceEdit.documentChanges.push({textDocument:t,edits:e}),r=new U(e,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}{if(this.initChanges(),void 0===this._workspaceEdit.changes)throw Error("Workspace edit is not configured for normal text edit changes.");let t=this._textEditChanges[e];if(!t){let r=[];this._workspaceEdit.changes[e]=r,t=new U(r),this._textEditChanges[e]=t}return t}}initDocumentChanges(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new B,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))}createFile(e,t,r){let n,i,a;if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");if(L.is(t)||M.is(t)?n=t:r=t,void 0===n?i=G.create(e,r):(a=M.is(n)?n:this._changeAnnotations.manage(n),i=G.create(e,r,a)),this._workspaceEdit.documentChanges.push(i),void 0!==a)return a}renameFile(e,t,r,n){let i,a,s;if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");if(L.is(r)||M.is(r)?i=r:n=r,void 0===i?a=z.create(e,t,n):(s=M.is(i)?i:this._changeAnnotations.manage(i),a=z.create(e,t,n,s)),this._workspaceEdit.documentChanges.push(a),void 0!==s)return s}deleteFile(e,t,r){let n,i,a;if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");if(L.is(t)||M.is(t)?n=t:r=t,void 0===n?i=K.create(e,r):(a=M.is(n)?n:this._changeAnnotations.manage(n),i=K.create(e,r,a)),this._workspaceEdit.documentChanges.push(i),void 0!==a)return a}};var tq=V||(V={});function tU(e){return{uri:e}}function tB(e){return eW.defined(e)&&eW.string(e.uri)}tD(tU,"create"),tq.create=tU,tD(tB,"is"),tq.is=tB;var tW=H||(H={});function tV(e,t){return{uri:e,version:t}}function tH(e){return eW.defined(e)&&eW.string(e.uri)&&eW.integer(e.version)}tD(tV,"create"),tW.create=tV,tD(tH,"is"),tW.is=tH;var tY=Y||(Y={});function tQ(e,t){return{uri:e,version:t}}function tZ(e){return eW.defined(e)&&eW.string(e.uri)&&(null===e.version||eW.integer(e.version))}tD(tQ,"create"),tY.create=tQ,tD(tZ,"is"),tY.is=tZ;var tX=Q||(Q={});function tJ(e,t,r,n){return{uri:e,languageId:t,version:r,text:n}}function t0(e){return eW.defined(e)&&eW.string(e.uri)&&eW.string(e.languageId)&&eW.integer(e.version)&&eW.string(e.text)}tD(tJ,"create"),tX.create=tJ,tD(t0,"is"),tX.is=t0;var t1=Z||(Z={});function t2(e){return e===t1.PlainText||e===t1.Markdown}t1.PlainText="plaintext",t1.Markdown="markdown",tD(t2,"is"),t1.is=t2;var t3=X||(X={});function t4(e){return eW.objectLiteral(e)&&Z.is(e.kind)&&eW.string(e.value)}tD(t4,"is"),t3.is=t4,(n=J||(J={})).Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25,(i=ee||(ee={})).PlainText=1,i.Snippet=2,(et||(et={})).Deprecated=1;var t9=er||(er={});function t5(e,t,r){return{newText:e,insert:t,replace:r}}function t6(e){return e&&eW.string(e.newText)&&R.is(e.insert)&&R.is(e.replace)}tD(t5,"create"),t9.create=t5,tD(t6,"is"),t9.is=t6,(a=en||(en={})).asIs=1,a.adjustIndentation=2;var t7=ei||(ei={});function t8(e){return e&&(eW.string(e.detail)||void 0===e.detail)&&(eW.string(e.description)||void 0===e.description)}tD(t8,"is"),t7.is=t8;var re=ea||(ea={});function rt(e){return{label:e}}tD(rt,"create"),re.create=rt;var rr=es||(es={});function rn(e,t){return{items:e||[],isIncomplete:!!t}}tD(rn,"create"),rr.create=rn;var ri=eo||(eo={});function ra(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}function rs(e){return eW.string(e)||eW.objectLiteral(e)&&eW.string(e.language)&&eW.string(e.value)}tD(ra,"fromPlainText"),ri.fromPlainText=ra,tD(rs,"is"),ri.is=rs;var ro=el||(el={});function rl(e){return!!e&&eW.objectLiteral(e)&&(X.is(e.contents)||eo.is(e.contents)||eW.typedArray(e.contents,eo.is))&&(void 0===e.range||R.is(e.range))}tD(rl,"is"),ro.is=rl;var ru=eu||(eu={});function rc(e,t){return t?{label:e,documentation:t}:{label:e}}tD(rc,"create"),ru.create=rc;var rp=ec||(ec={});function rf(e,t,...r){let n={label:e};return eW.defined(t)&&(n.documentation=t),eW.defined(r)?n.parameters=r:n.parameters=[],n}tD(rf,"create"),rp.create=rf,(s=ep||(ep={})).Text=1,s.Read=2,s.Write=3;var rd=ef||(ef={});function rm(e,t){let r={range:e};return eW.number(t)&&(r.kind=t),r}tD(rm,"create"),rd.create=rm,(o=ed||(ed={})).File=1,o.Module=2,o.Namespace=3,o.Package=4,o.Class=5,o.Method=6,o.Property=7,o.Field=8,o.Constructor=9,o.Enum=10,o.Interface=11,o.Function=12,o.Variable=13,o.Constant=14,o.String=15,o.Number=16,o.Boolean=17,o.Array=18,o.Object=19,o.Key=20,o.Null=21,o.EnumMember=22,o.Struct=23,o.Event=24,o.Operator=25,o.TypeParameter=26,(em||(em={})).Deprecated=1;var rh=eh||(eh={});function ry(e,t,r,n,i){let a={name:e,kind:t,location:{uri:n,range:r}};return i&&(a.containerName=i),a}tD(ry,"create"),rh.create=ry;var rg=ey||(ey={});function rT(e,t,r,n){return void 0!==n?{name:e,kind:t,location:{uri:r,range:n}}:{name:e,kind:t,location:{uri:r}}}tD(rT,"create"),rg.create=rT;var rv=eg||(eg={});function r$(e,t,r,n,i,a){let s={name:e,detail:t,kind:r,range:n,selectionRange:i};return void 0!==a&&(s.children=a),s}function rR(e){return e&&eW.string(e.name)&&eW.number(e.kind)&&R.is(e.range)&&R.is(e.selectionRange)&&(void 0===e.detail||eW.string(e.detail))&&(void 0===e.deprecated||eW.boolean(e.deprecated))&&(void 0===e.children||Array.isArray(e.children))&&(void 0===e.tags||Array.isArray(e.tags))}tD(r$,"create"),rv.create=r$,tD(rR,"is"),rv.is=rR,(l=eT||(eT={})).Empty="",l.QuickFix="quickfix",l.Refactor="refactor",l.RefactorExtract="refactor.extract",l.RefactorInline="refactor.inline",l.RefactorRewrite="refactor.rewrite",l.Source="source",l.SourceOrganizeImports="source.organizeImports",l.SourceFixAll="source.fixAll",(u=ev||(ev={})).Invoked=1,u.Automatic=2;var rE=e$||(e$={});function rb(e,t,r){let n={diagnostics:e};return null!=t&&(n.only=t),null!=r&&(n.triggerKind=r),n}function rA(e){return eW.defined(e)&&eW.typedArray(e.diagnostics,P.is)&&(void 0===e.only||eW.typedArray(e.only,eW.string))&&(void 0===e.triggerKind||e.triggerKind===ev.Invoked||e.triggerKind===ev.Automatic)}tD(rb,"create"),rE.create=rb,tD(rA,"is"),rE.is=rA;var rC=eR||(eR={});function rS(e,t,r){let n={title:e},i=!0;return"string"==typeof t?(i=!1,n.kind=t):O.is(t)?n.command=t:n.edit=t,i&&void 0!==r&&(n.kind=r),n}function rk(e){return e&&eW.string(e.title)&&(void 0===e.diagnostics||eW.typedArray(e.diagnostics,P.is))&&(void 0===e.kind||eW.string(e.kind))&&(void 0!==e.edit||void 0!==e.command)&&(void 0===e.command||O.is(e.command))&&(void 0===e.isPreferred||eW.boolean(e.isPreferred))&&(void 0===e.edit||q.is(e.edit))}tD(rS,"create"),rC.create=rS,tD(rk,"is"),rC.is=rk;var rx=eE||(eE={});function rN(e,t){let r={range:e};return eW.defined(t)&&(r.data=t),r}function rw(e){return eW.defined(e)&&R.is(e.range)&&(eW.undefined(e.command)||O.is(e.command))}tD(rN,"create"),rx.create=rN,tD(rw,"is"),rx.is=rw;var rI=eb||(eb={});function r_(e,t){return{tabSize:e,insertSpaces:t}}function rP(e){return eW.defined(e)&&eW.uinteger(e.tabSize)&&eW.boolean(e.insertSpaces)}tD(r_,"create"),rI.create=r_,tD(rP,"is"),rI.is=rP;var rO=eA||(eA={});function rD(e,t,r){return{range:e,target:t,data:r}}function rL(e){return eW.defined(e)&&R.is(e.range)&&(eW.undefined(e.target)||eW.string(e.target))}tD(rD,"create"),rO.create=rD,tD(rL,"is"),rO.is=rL;var rM=eC||(eC={});function rj(e,t){return{range:e,parent:t}}function rF(e){return eW.objectLiteral(e)&&R.is(e.range)&&(void 0===e.parent||rM.is(e.parent))}tD(rj,"create"),rM.create=rj,tD(rF,"is"),rM.is=rF,(c=eS||(eS={})).namespace="namespace",c.type="type",c.class="class",c.enum="enum",c.interface="interface",c.struct="struct",c.typeParameter="typeParameter",c.parameter="parameter",c.variable="variable",c.property="property",c.enumMember="enumMember",c.event="event",c.function="function",c.method="method",c.macro="macro",c.keyword="keyword",c.modifier="modifier",c.comment="comment",c.string="string",c.number="number",c.regexp="regexp",c.operator="operator",c.decorator="decorator",(p=ek||(ek={})).declaration="declaration",p.definition="definition",p.readonly="readonly",p.static="static",p.deprecated="deprecated",p.abstract="abstract",p.async="async",p.modification="modification",p.documentation="documentation",p.defaultLibrary="defaultLibrary";var rG=ex||(ex={});function rz(e){return eW.objectLiteral(e)&&(void 0===e.resultId||"string"==typeof e.resultId)&&Array.isArray(e.data)&&(0===e.data.length||"number"==typeof e.data[0])}tD(rz,"is"),rG.is=rz;var rK=eN||(eN={});function rq(e,t){return{range:e,text:t}}function rU(e){return null!=e&&R.is(e.range)&&eW.string(e.text)}tD(rq,"create"),rK.create=rq,tD(rU,"is"),rK.is=rU;var rB=ew||(ew={});function rW(e,t,r){return{range:e,variableName:t,caseSensitiveLookup:r}}function rV(e){return null!=e&&R.is(e.range)&&eW.boolean(e.caseSensitiveLookup)&&(eW.string(e.variableName)||void 0===e.variableName)}tD(rW,"create"),rB.create=rW,tD(rV,"is"),rB.is=rV;var rH=eI||(eI={});function rY(e,t){return{range:e,expression:t}}function rQ(e){return null!=e&&R.is(e.range)&&(eW.string(e.expression)||void 0===e.expression)}tD(rY,"create"),rH.create=rY,tD(rQ,"is"),rH.is=rQ;var rZ=e_||(e_={});function rX(e,t){return{frameId:e,stoppedLocation:t}}function rJ(e){return eW.defined(e)&&R.is(e.stoppedLocation)}tD(rX,"create"),rZ.create=rX,tD(rJ,"is"),rZ.is=rJ;var r0=eP||(eP={});function r1(e){return 1===e||2===e}r0.Type=1,r0.Parameter=2,tD(r1,"is"),r0.is=r1;var r2=eO||(eO={});function r3(e){return{value:e}}function r4(e){return eW.objectLiteral(e)&&(void 0===e.tooltip||eW.string(e.tooltip)||X.is(e.tooltip))&&(void 0===e.location||E.is(e.location))&&(void 0===e.command||O.is(e.command))}tD(r3,"create"),r2.create=r3,tD(r4,"is"),r2.is=r4;var r9=eD||(eD={});function r5(e,t,r){let n={position:e,label:t};return void 0!==r&&(n.kind=r),n}function r6(e){return eW.objectLiteral(e)&&$.is(e.position)&&(eW.string(e.label)||eW.typedArray(e.label,eO.is))&&(void 0===e.kind||eP.is(e.kind))&&void 0===e.textEdits||eW.typedArray(e.textEdits,D.is)&&(void 0===e.tooltip||eW.string(e.tooltip)||X.is(e.tooltip))&&(void 0===e.paddingLeft||eW.boolean(e.paddingLeft))&&(void 0===e.paddingRight||eW.boolean(e.paddingRight))}tD(r5,"create"),r9.create=r5,tD(r6,"is"),r9.is=r6;var r7=eL||(eL={});function r8(e){return{kind:"snippet",value:e}}tD(r8,"createSnippet"),r7.createSnippet=r8;var ne=eM||(eM={});function nt(e,t,r,n){return{insertText:e,filterText:t,range:r,command:n}}tD(nt,"create"),ne.create=nt;var nr=ej||(ej={});function nn(e){return{items:e}}tD(nn,"create"),nr.create=nn,(f=eF||(eF={})).Invoked=0,f.Automatic=1;var ni=eG||(eG={});function na(e,t){return{range:e,text:t}}tD(na,"create"),ni.create=na;var ns=ez||(ez={});function no(e,t){return{triggerKind:e,selectedCompletionInfo:t}}tD(no,"create"),ns.create=no;var nl=eK||(eK={});function nu(e){return eW.objectLiteral(e)&&g.is(e.uri)&&eW.string(e.name)}tD(nu,"is"),nl.is=nu,eq=["\n","\r\n","\r"],function(e){function t(e,t,r,n){return new eB(e,t,r,n)}function r(e){return!!(eW.defined(e)&&eW.string(e.uri)&&(eW.undefined(e.languageId)||eW.string(e.languageId))&&eW.uinteger(e.lineCount)&&eW.func(e.getText)&&eW.func(e.positionAt)&&eW.func(e.offsetAt))}function n(e,t){let r=e.getText(),n=i(t,(e,t)=>{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),a=r.length;for(let t=n.length-1;t>=0;t--){let i=n[t],s=e.offsetAt(i.range.start),o=e.offsetAt(i.range.end);if(o<=a)r=r.substring(0,s)+i.newText+r.substring(o,r.length);else throw Error("Overlapping edit");a=s}return r}function i(e,t){if(e.length<=1)return e;let r=e.length/2|0,n=e.slice(0,r),a=e.slice(r);i(n,t),i(a,t);let s=0,o=0,l=0;for(;s<n.length&&o<a.length;)0>=t(n[s],a[o])?e[l++]=n[s++]:e[l++]=a[o++];for(;s<n.length;)e[l++]=n[s++];for(;o<a.length;)e[l++]=a[o++];return e}tD(t,"create"),e.create=t,tD(r,"is"),e.is=r,tD(n,"applyEdits"),e.applyEdits=n,tD(i,"mergeSort")}(eU||(eU={})),eB=class{static{tD(this,"FullTextDocument")}constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(void 0===this._lineOffsets){let e=[],t=this._content,r=!0;for(let n=0;n<t.length;n++){r&&(e.push(n),r=!1);let i=t.charAt(n);r="\r"===i||"\n"===i,"\r"===i&&n+1<t.length&&"\n"===t.charAt(n+1)&&n++}r&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(0===n)return $.create(0,e);for(;r<n;){let i=Math.floor((r+n)/2);t[i]>e?n=i:r=i+1}let i=r-1;return $.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],n=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,n),r)}get lineCount(){return this.getLineOffsets().length}},function(e){let t=Object.prototype.toString;function r(e){return void 0!==e}function n(e){return void 0===e}function i(e){return!0===e||!1===e}function a(e){return"[object String]"===t.call(e)}function s(e){return"[object Number]"===t.call(e)}function o(e,r,n){return"[object Number]"===t.call(e)&&r<=e&&e<=n}function l(e){return"[object Number]"===t.call(e)&&-0x80000000<=e&&e<=0x7fffffff}function u(e){return"[object Number]"===t.call(e)&&0<=e&&e<=0x7fffffff}function c(e){return"[object Function]"===t.call(e)}function p(e){return null!==e&&"object"==typeof e}function f(e,t){return Array.isArray(e)&&e.every(t)}tD(r,"defined"),e.defined=r,tD(n,"undefined"),e.undefined=n,tD(i,"boolean"),e.boolean=i,tD(a,"string"),e.string=a,tD(s,"number"),e.number=s,tD(o,"numberRange"),e.numberRange=o,tD(l,"integer"),e.integer=l,tD(u,"uinteger"),e.uinteger=u,tD(c,"func"),e.func=c,tD(p,"objectLiteral"),e.objectLiteral=p,tD(f,"typedArray"),e.typedArray=f}(eW||(eW={}))}},function(){return n&&(i=(0,n[t_(n)[0]])(n=0)),i}),tU=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/ral.js"(e){function t(){if(void 0===r)throw Error("No runtime abstraction layer installed");return r}Object.defineProperty(e,"__esModule",{value:!0}),tD(t,"RAL");var r,n=t||(t={});function i(e){if(void 0===e)throw Error("No runtime abstraction layer provided");r=e}tD(i,"install"),n.install=i,e.default=t}}),tB=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/is.js"(e){function t(e){return!0===e||!1===e}function r(e){return"string"==typeof e||e instanceof String}function n(e){return"number"==typeof e||e instanceof Number}function i(e){return e instanceof Error}function a(e){return"function"==typeof e}function s(e){return Array.isArray(e)}function o(e){return s(e)&&e.every(e=>r(e))}Object.defineProperty(e,"__esModule",{value:!0}),e.stringArray=e.array=e.func=e.error=e.number=e.string=e.boolean=void 0,tD(t,"boolean"),e.boolean=t,tD(r,"string"),e.string=r,tD(n,"number"),e.number=n,tD(i,"error"),e.error=i,tD(a,"func"),e.func=a,tD(s,"array"),e.array=s,tD(o,"stringArray"),e.stringArray=o}}),tW=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/events.js"(e){let t;Object.defineProperty(e,"__esModule",{value:!0}),e.Emitter=e.Event=void 0;var r,n,i=tU();r=n||(e.Event=n={}),t={dispose(){}},r.None=function(){return t};var a=class{static{tD(this,"CallbackList")}add(e,t=null,r){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(r)&&r.push({dispose:tD(()=>this.remove(e,t),"dispose")})}remove(e,t=null){if(!this._callbacks)return;let r=!1;for(let n=0,i=this._callbacks.length;n<i;n++)if(this._callbacks[n]===e)if(this._contexts[n]===t){this._callbacks.splice(n,1),this._contexts.splice(n,1);return}else r=!0;if(r)throw Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let t=[],r=this._callbacks.slice(0),n=this._contexts.slice(0);for(let a=0,s=r.length;a<s;a++)try{t.push(r[a].apply(n[a],e))}catch(e){(0,i.default)().console.error(e)}return t}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}},s=class e{static{tD(this,"Emitter")}constructor(e){this._options=e}get event(){return this._event||(this._event=(t,r,n)=>{this._callbacks||(this._callbacks=new a),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,r);let i={dispose:tD(()=>{this._callbacks&&(this._callbacks.remove(t,r),i.dispose=e._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};e.Emitter=s,s._noop=function(){}}}),tV=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/cancellation.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;var t,r=tU(),n=tB(),i=tW(),a=t||(e.CancellationToken=t={});function s(e){return e&&(e===a.None||e===a.Cancelled||n.boolean(e.isCancellationRequested)&&!!e.onCancellationRequested)}a.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:i.Event.None}),a.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:i.Event.None}),tD(s,"is"),a.is=s;var o=Object.freeze(function(e,t){let n=(0,r.default)().timer.setTimeout(e.bind(t),0);return{dispose(){n.dispose()}}}),l=class{static{tD(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){!this._isCancelled&&(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?o:(this._emitter||(this._emitter=new i.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}};e.CancellationTokenSource=class{static{tD(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new l),this._token}cancel(){this._token?this._token.cancel():this._token=t.Cancelled}dispose(){this._token?this._token instanceof l&&this._token.dispose():this._token=t.None}}}}),tH=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messages.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Message=e.NotificationType9=e.NotificationType8=e.NotificationType7=e.NotificationType6=e.NotificationType5=e.NotificationType4=e.NotificationType3=e.NotificationType2=e.NotificationType1=e.NotificationType0=e.NotificationType=e.RequestType9=e.RequestType8=e.RequestType7=e.RequestType6=e.RequestType5=e.RequestType4=e.RequestType3=e.RequestType2=e.RequestType1=e.RequestType=e.RequestType0=e.AbstractMessageSignature=e.ParameterStructures=e.ResponseError=e.ErrorCodes=void 0;var t,r,n,i=tB();(t=r||(e.ErrorCodes=r={})).ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3,e.ResponseError=class e extends Error{static{tD(this,"ResponseError")}constructor(t,n,a){super(n),this.code=i.number(t)?t:r.UnknownErrorCode,this.data=a,Object.setPrototypeOf(this,e.prototype)}toJson(){let e={code:this.code,message:this.message};return void 0!==this.data&&(e.data=this.data),e}};var a=class e{static{tD(this,"ParameterStructures")}constructor(e){this.kind=e}static is(t){return t===e.auto||t===e.byName||t===e.byPosition}toString(){return this.kind}};e.ParameterStructures=a,a.auto=new a("auto"),a.byPosition=new a("byPosition"),a.byName=new a("byName");var s=class{static{tD(this,"AbstractMessageSignature")}constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return a.auto}};e.AbstractMessageSignature=s,e.RequestType0=class extends s{static{tD(this,"RequestType0")}constructor(e){super(e,0)}},e.RequestType=class extends s{static{tD(this,"RequestType")}constructor(e,t=a.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.RequestType1=class extends s{static{tD(this,"RequestType1")}constructor(e,t=a.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.RequestType2=class extends s{static{tD(this,"RequestType2")}constructor(e){super(e,2)}},e.RequestType3=class extends s{static{tD(this,"RequestType3")}constructor(e){super(e,3)}},e.RequestType4=class extends s{static{tD(this,"RequestType4")}constructor(e){super(e,4)}},e.RequestType5=class extends s{static{tD(this,"RequestType5")}constructor(e){super(e,5)}},e.RequestType6=class extends s{static{tD(this,"RequestType6")}constructor(e){super(e,6)}},e.RequestType7=class extends s{static{tD(this,"RequestType7")}constructor(e){super(e,7)}},e.RequestType8=class extends s{static{tD(this,"RequestType8")}constructor(e){super(e,8)}},e.RequestType9=class extends s{static{tD(this,"RequestType9")}constructor(e){super(e,9)}},e.NotificationType=class extends s{static{tD(this,"NotificationType")}constructor(e,t=a.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.NotificationType0=class extends s{static{tD(this,"NotificationType0")}constructor(e){super(e,0)}},e.NotificationType1=class extends s{static{tD(this,"NotificationType1")}constructor(e,t=a.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.NotificationType2=class extends s{static{tD(this,"NotificationType2")}constructor(e){super(e,2)}},e.NotificationType3=class extends s{static{tD(this,"NotificationType3")}constructor(e){super(e,3)}},e.NotificationType4=class extends s{static{tD(this,"NotificationType4")}constructor(e){super(e,4)}},e.NotificationType5=class extends s{static{tD(this,"NotificationType5")}constructor(e){super(e,5)}},e.NotificationType6=class extends s{static{tD(this,"NotificationType6")}constructor(e){super(e,6)}},e.NotificationType7=class extends s{static{tD(this,"NotificationType7")}constructor(e){super(e,7)}},e.NotificationType8=class extends s{static{tD(this,"NotificationType8")}constructor(e){super(e,8)}},e.NotificationType9=class extends s{static{tD(this,"NotificationType9")}constructor(e){super(e,9)}},function(e){function t(e){return e&&i.string(e.method)&&(i.string(e.id)||i.number(e.id))}function r(e){return e&&i.string(e.method)&&void 0===e.id}function n(e){return e&&(void 0!==e.result||!!e.error)&&(i.string(e.id)||i.number(e.id)||null===e.id)}tD(t,"isRequest"),e.isRequest=t,tD(r,"isNotification"),e.isNotification=r,tD(n,"isResponse"),e.isResponse=n}(n||(e.Message=n={}))}}),tY=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/linkedMap.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.LRUCache=e.LinkedMap=e.Touch=void 0,(t=n||(e.Touch=n={})).None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last;var t,r,n,i=class{static{tD(this,"LinkedMap")}constructor(){this[r]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=n.None){let r=this._map.get(e);if(r)return t!==n.None&&this.touch(r,t),r.value}set(e,t,r=n.None){let i=this._map.get(e);if(i)i.value=t,r!==n.None&&this.touch(i,r);else{switch(i={key:e,value:t,next:void 0,previous:void 0},r){case n.None:this.addItemLast(i);break;case n.First:this.addItemFirst(i);break;case n.Last:default:this.addItemLast(i)}this._map.set(e,i),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let r=this._state,n=this._head;for(;n;){if(t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),this._state!==r)throw Error("LinkedMap got modified during iteration.");n=n.next}}keys(){let e=this._state,t=this._head,r={[Symbol.iterator]:()=>r,next:tD(()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:t.key,done:!1};return t=t.next,e}},"next")};return r}values(){let e=this._state,t=this._head,r={[Symbol.iterator]:()=>r,next:tD(()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:t.value,done:!1};return t=t.next,e}},"next")};return r}entries(){let e=this._state,t=this._head,r={[Symbol.iterator]:()=>r,next:tD(()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:[t.key,t.value],done:!1};return t=t.next,e}},"next")};return r}[(r=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(0===e)return void this.clear();let t=this._head,r=this.size;for(;t&&r>e;)this._map.delete(t.key),t=t.next,r--;this._head=t,this._size=r,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(this._head||this._tail)if(this._head)e.next=this._head,this._head.previous=e;else throw Error("Invalid list");else this._tail=e;this._head=e,this._state++}addItemLast(e){if(this._head||this._tail)if(this._tail)e.previous=this._tail,this._tail.next=e;else throw Error("Invalid list");else this._head=e;this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,r=e.previous;if(!t||!r)throw Error("Invalid list");t.previous=r,r.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw Error("Invalid list");if(t===n.First||t===n.Last){if(t===n.First){if(e===this._head)return;let t=e.next,r=e.previous;e===this._tail?(r.next=void 0,this._tail=r):(t.previous=r,r.next=t),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===n.Last){if(e===this._tail)return;let t=e.next,r=e.previous;e===this._head?(t.previous=void 0,this._head=t):(t.previous=r,r.next=t),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,r)=>{e.push([r,t])}),e}fromJSON(e){for(let[t,r]of(this.clear(),e))this.set(t,r)}};e.LinkedMap=i,e.LRUCache=class extends i{static{tD(this,"LRUCache")}constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=n.AsNew){return super.get(e,t)}peek(e){return super.get(e,n.None)}set(e,t){return super.set(e,t,n.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}}}),tQ=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/disposable.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Disposable=void 0;var t,r=t||(e.Disposable=t={});function n(e){return{dispose:e}}tD(n,"create"),r.create=n}}),tZ=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=void 0;var t,r,n=tV();(t=r||(r={})).Continue=0,t.Cancelled=1,e.SharedArraySenderStrategy=class{static{tD(this,"SharedArraySenderStrategy")}constructor(){this.buffers=new Map}enableCancellation(e){if(null===e.id)return;let t=new SharedArrayBuffer(4);new Int32Array(t,0,1)[0]=r.Continue,this.buffers.set(e.id,t),e.$cancellationData=t}async sendCancellation(e,t){let n=this.buffers.get(t);if(void 0===n)return;let i=new Int32Array(n,0,1);Atomics.store(i,0,r.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};var i=class{static{tD(this,"SharedArrayBufferCancellationToken")}constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===r.Cancelled}get onCancellationRequested(){throw Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},a=class{static{tD(this,"SharedArrayBufferCancellationTokenSource")}constructor(e){this.token=new i(e)}cancel(){}dispose(){}};e.SharedArrayReceiverStrategy=class{static{tD(this,"SharedArrayReceiverStrategy")}constructor(){this.kind="request"}createCancellationTokenSource(e){let t=e.$cancellationData;return void 0===t?new n.CancellationTokenSource:new a(t)}}}}),tX=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/semaphore.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Semaphore=void 0;var t=tU();e.Semaphore=class{static{tD(this,"Semaphore")}constructor(e=1){if(e<=0)throw Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,r)=>{this._waiting.push({thunk:e,resolve:t,reject:r}),this.runNext()})}get active(){return this._active}runNext(){0!==this._waiting.length&&this._active!==this._capacity&&(0,t.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(0===this._waiting.length||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(t=>{this._active--,e.resolve(t),this.runNext()},t=>{this._active--,e.reject(t),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}}}}),tJ=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messageReader.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=void 0;var t,r,n=tU(),i=tB(),a=tW(),s=tX(),o=t||(e.MessageReader=t={});function l(e){return e&&i.func(e.listen)&&i.func(e.dispose)&&i.func(e.onError)&&i.func(e.onClose)&&i.func(e.onPartialMessage)}tD(l,"is"),o.is=l;var u=class{static{tD(this,"AbstractMessageReader")}constructor(){this.errorEmitter=new a.Emitter,this.closeEmitter=new a.Emitter,this.partialMessageEmitter=new a.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:Error(`Reader received error. Reason: ${i.string(e.message)?e.message:"unknown"}`)}};e.AbstractMessageReader=u;var c=r||(r={});function p(e){let t,r,i,a=new Map,s=new Map;if(void 0===e||"string"==typeof e)t=e??"utf-8";else{if(t=e.charset??"utf-8",void 0!==e.contentDecoder&&(r=e.contentDecoder,a.set(r.name,r)),void 0!==e.contentDecoders)for(let t of e.contentDecoders)a.set(t.name,t);if(void 0!==e.contentTypeDecoder&&(i=e.contentTypeDecoder,s.set(i.name,i)),void 0!==e.contentTypeDecoders)for(let t of e.contentTypeDecoders)s.set(t.name,t)}return void 0===i&&(i=(0,n.default)().applicationJson.decoder,s.set(i.name,i)),{charset:t,contentDecoder:r,contentDecoders:a,contentTypeDecoder:i,contentTypeDecoders:s}}tD(p,"fromOptions"),c.fromOptions=p,e.ReadableStreamMessageReader=class extends u{static{tD(this,"ReadableStreamMessageReader")}constructor(e,t){super(),this.readable=e,this.options=r.fromOptions(t),this.buffer=(0,n.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new s.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(e=>{this.onData(e)});return this.readable.onError(e=>this.fireError(e)),this.readable.onClose(()=>this.fireClose()),t}onData(e){try{for(this.buffer.append(e);;){if(-1===this.nextMessageLength){let e=this.buffer.tryReadHeaders(!0);if(!e)return;let t=e.get("content-length");if(!t)return void this.fireError(Error(`Header must provide a Content-Length property. ${JSON.stringify(Object.fromEntries(e))}`));let r=parseInt(t);if(isNaN(r))return void this.fireError(Error(`Content-Length value must be a number. Got ${t}`));this.nextMessageLength=r}let e=this.buffer.tryReadBody(this.nextMessageLength);if(void 0===e)return void this.setPartialMessageTimer();this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let t=void 0!==this.options.contentDecoder?await this.options.contentDecoder.decode(e):e,r=await this.options.contentTypeDecoder.decode(t,this.options);this.callback(r)}).catch(e=>{this.fireError(e)})}}catch(e){this.fireError(e)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),this._partialMessageTimeout<=0||(this.partialMessageTimer=(0,n.default)().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}}}),t0=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messageWriter.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.WriteableStreamMessageWriter=e.AbstractMessageWriter=e.MessageWriter=void 0;var t,r,n=tU(),i=tB(),a=tX(),s=tW(),o=t||(e.MessageWriter=t={});function l(e){return e&&i.func(e.dispose)&&i.func(e.onClose)&&i.func(e.onError)&&i.func(e.write)}tD(l,"is"),o.is=l;var u=class{static{tD(this,"AbstractMessageWriter")}constructor(){this.errorEmitter=new s.Emitter,this.closeEmitter=new s.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,r){this.errorEmitter.fire([this.asError(e),t,r])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:Error(`Writer received error. Reason: ${i.string(e.message)?e.message:"unknown"}`)}};e.AbstractMessageWriter=u;var c=r||(r={});function p(e){return void 0===e||"string"==typeof e?{charset:e??"utf-8",contentTypeEncoder:(0,n.default)().applicationJson.encoder}:{charset:e.charset??"utf-8",contentEncoder:e.contentEncoder,contentTypeEncoder:e.contentTypeEncoder??(0,n.default)().applicationJson.encoder}}tD(p,"fromOptions"),c.fromOptions=p,e.WriteableStreamMessageWriter=class extends u{static{tD(this,"WriteableStreamMessageWriter")}constructor(e,t){super(),this.writable=e,this.options=r.fromOptions(t),this.errorCount=0,this.writeSemaphore=new a.Semaphore(1),this.writable.onError(e=>this.fireError(e)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(e=>void 0!==this.options.contentEncoder?this.options.contentEncoder.encode(e):e).then(t=>{let r=[];return r.push("Content-Length: ",t.byteLength.toString(),"\r\n"),r.push("\r\n"),this.doWrite(e,r,t)},e=>{throw this.fireError(e),e}))}async doWrite(e,t,r){try{return await this.writable.write(t.join(""),"ascii"),this.writable.write(r)}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){this.writable.end()}}}}),t1=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractMessageBuffer=void 0,e.AbstractMessageBuffer=class{static{tD(this,"AbstractMessageBuffer")}constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let t="string"==typeof e?this.fromString(e,this._encoding):e;this._chunks.push(t),this._totalLength+=t.byteLength}tryReadHeaders(e=!1){if(0===this._chunks.length)return;let t=0,r=0,n=0,i=0;e:for(;r<this._chunks.length;){let e=this._chunks[r];for(n=0;n<e.length;){switch(e[n]){case 13:switch(t){case 0:t=1;break;case 2:t=3;break;default:t=0}break;case 10:switch(t){case 1:t=2;break;case 3:t=4,n++;break e;default:t=0}break;default:t=0}n++}i+=e.byteLength,r++}if(4!==t)return;let a=this._read(i+n),s=new Map,o=this.toString(a,"ascii").split("\r\n");if(o.length<2)return s;for(let t=0;t<o.length-2;t++){let r=o[t],n=r.indexOf(":");if(-1===n)throw Error(`Message header must separate key and value using ':' ${r}`);let i=r.substr(0,n),a=r.substr(n+1).trim();s.set(e?i.toLowerCase():i,a)}return s}tryReadBody(e){if(!(this._totalLength<e))return this._read(e)}get numberOfBytes(){return this._totalLength}_read(e){if(0===e)return this.emptyBuffer();if(e>this._totalLength)throw Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let t=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(t)}if(this._chunks[0].byteLength>e){let t=this._chunks[0],r=this.asNative(t,e);return this._chunks[0]=t.slice(e),this._totalLength-=e,r}let t=this.allocNative(e),r=0;for(;e>0;){let n=this._chunks[0];if(n.byteLength>e){let i=n.slice(0,e);t.set(i,r),r+=e,this._chunks[0]=n.slice(e),this._totalLength-=e,e-=e}else t.set(n,r),r+=n.byteLength,this._chunks.shift(),this._totalLength-=n.byteLength,e-=n.byteLength}return t}}}}),t2=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/connection.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.createMessageConnection=e.ConnectionOptions=e.MessageStrategy=e.CancellationStrategy=e.CancellationSenderStrategy=e.CancellationReceiverStrategy=e.RequestCancellationReceiverStrategy=e.IdCancellationReceiverStrategy=e.ConnectionStrategy=e.ConnectionError=e.ConnectionErrors=e.LogTraceNotification=e.SetTraceNotification=e.TraceFormat=e.TraceValues=e.Trace=e.NullLogger=e.ProgressType=e.ProgressToken=void 0;var t,r,n,i,a,s,o,l,u,c,p,f,d,m,h,y,g,T,v,$,R,E,b,A,C=tU(),S=tB(),k=tH(),x=tY(),N=tW(),w=tV();(s||(s={})).type=new k.NotificationType("$/cancelRequest");var I=o||(e.ProgressToken=o={});function _(e){return"string"==typeof e||"number"==typeof e}tD(_,"is"),I.is=_,(l||(l={})).type=new k.NotificationType("$/progress"),e.ProgressType=class{static{tD(this,"ProgressType")}};var P=u||(u={});function O(e){return S.func(e)}tD(O,"is"),P.is=O,e.NullLogger=Object.freeze({error:tD(()=>{},"error"),warn:tD(()=>{},"warn"),info:tD(()=>{},"info"),log:tD(()=>{},"log")}),(t=c||(e.Trace=c={}))[t.Off=0]="Off",t[t.Messages=1]="Messages",t[t.Compact=2]="Compact",t[t.Verbose=3]="Verbose",(r=p||(e.TraceValues=p={})).Off="off",r.Messages="messages",r.Compact="compact",r.Verbose="verbose";var D=c||(e.Trace=c={});function L(e){if(!S.string(e))return D.Off;switch(e=e.toLowerCase()){case"off":default:return D.Off;case"messages":return D.Messages;case"compact":return D.Compact;case"verbose":return D.Verbose}}function M(e){switch(e){case D.Off:return"off";case D.Messages:return"messages";case D.Compact:return"compact";case D.Verbose:return"verbose";default:return"off"}}tD(L,"fromString"),D.fromString=L,tD(M,"toString"),D.toString=M,(n=f||(e.TraceFormat=f={})).Text="text",n.JSON="json";var j=f||(e.TraceFormat=f={});function F(e){return S.string(e)&&"json"===(e=e.toLowerCase())?j.JSON:j.Text}tD(F,"fromString"),j.fromString=F,(d||(e.SetTraceNotification=d={})).type=new k.NotificationType("$/setTrace"),(m||(e.LogTraceNotification=m={})).type=new k.NotificationType("$/logTrace"),(i=h||(e.ConnectionErrors=h={}))[i.Closed=1]="Closed",i[i.Disposed=2]="Disposed",i[i.AlreadyListening=3]="AlreadyListening";var G=class e extends Error{static{tD(this,"ConnectionError")}constructor(t,r){super(r),this.code=t,Object.setPrototypeOf(this,e.prototype)}};e.ConnectionError=G;var z=y||(e.ConnectionStrategy=y={});function K(e){return e&&S.func(e.cancelUndispatched)}tD(K,"is"),z.is=K;var q=g||(e.IdCancellationReceiverStrategy=g={});function U(e){return e&&(void 0===e.kind||"id"===e.kind)&&S.func(e.createCancellationTokenSource)&&(void 0===e.dispose||S.func(e.dispose))}tD(U,"is"),q.is=U;var B=T||(e.RequestCancellationReceiverStrategy=T={});function W(e){return e&&"request"===e.kind&&S.func(e.createCancellationTokenSource)&&(void 0===e.dispose||S.func(e.dispose))}tD(W,"is"),B.is=W;var V=v||(e.CancellationReceiverStrategy=v={});function H(e){return g.is(e)||T.is(e)}V.Message=Object.freeze({createCancellationTokenSource:e=>new w.CancellationTokenSource}),tD(H,"is"),V.is=H;var Y=$||(e.CancellationSenderStrategy=$={});function Q(e){return e&&S.func(e.sendCancellation)&&S.func(e.cleanup)}Y.Message=Object.freeze({sendCancellation:(e,t)=>e.sendNotification(s.type,{id:t}),cleanup(e){}}),tD(Q,"is"),Y.is=Q;var Z=R||(e.CancellationStrategy=R={});function X(e){return e&&v.is(e.receiver)&&$.is(e.sender)}Z.Message=Object.freeze({receiver:v.Message,sender:$.Message}),tD(X,"is"),Z.is=X;var J=E||(e.MessageStrategy=E={});function ee(e){return e&&S.func(e.handleMessage)}tD(ee,"is"),J.is=ee;var et=b||(e.ConnectionOptions=b={});function er(e){return e&&(R.is(e.cancellationStrategy)||y.is(e.connectionStrategy)||E.is(e.messageStrategy))}function en(t,r,n,i){let a,p,y,T,v=void 0!==n?n:e.NullLogger,$=0,b=0,I=0,_=new Map,P=new Map,O=new Map,D=new x.LinkedMap,L=new Map,M=new Set,j=new Map,F=c.Off,z=f.Text,K=A.New,q=new N.Emitter,U=new N.Emitter,B=new N.Emitter,W=new N.Emitter,V=new N.Emitter,H=i&&i.cancellationStrategy?i.cancellationStrategy:R.Message;function Y(e){if(null===e)throw Error("Can't send requests with id null since the response can't be correlated.");return"req-"+e.toString()}function Q(e){return null===e?"res-unknown-"+(++I).toString():"res-"+e.toString()}function Z(){return"not-"+(++b).toString()}function X(e,t){k.Message.isRequest(t)?e.set(Y(t.id),t):k.Message.isResponse(t)?e.set(Q(t.id),t):e.set(Z(),t)}function J(e){}function ee(){return K===A.Listening}function et(){return K===A.Closed}function er(){return K===A.Disposed}function en(){(K===A.New||K===A.Listening)&&(K=A.Closed,U.fire(void 0))}function ei(e){q.fire([e,void 0,void 0])}function ea(e){q.fire(e)}function es(){a||0===D.size||(a=(0,C.default)().timer.setImmediate(()=>{a=void 0,el()}))}function eo(e){k.Message.isRequest(e)?ec(e):k.Message.isNotification(e)?ef(e):k.Message.isResponse(e)?ep(e):ed(e)}function el(){if(0===D.size)return;let e=D.shift();try{let t=i?.messageStrategy;E.is(t)?t.handleMessage(e,eo):eo(e)}finally{es()}}tD(Y,"createRequestQueueKey"),tD(Q,"createResponseQueueKey"),tD(Z,"createNotificationQueueKey"),tD(X,"addMessageToQueue"),tD(J,"cancelUndispatched"),tD(ee,"isListening"),tD(et,"isClosed"),tD(er,"isDisposed"),tD(en,"closeHandler"),tD(ei,"readErrorHandler"),tD(ea,"writeErrorHandler"),t.onClose(en),t.onError(ei),r.onClose(en),r.onError(ea),tD(es,"triggerMessageQueue"),tD(eo,"handleMessage"),tD(el,"processMessageQueue");let eu=tD(e=>{try{if(k.Message.isNotification(e)&&e.method===s.type.method){let t=e.params.id,n=Y(t),a=D.get(n);if(k.Message.isRequest(a)){let s=i?.connectionStrategy,o=s&&s.cancelUndispatched?s.cancelUndispatched(a,J):J(a);if(o&&(void 0!==o.error||void 0!==o.result)){D.delete(n),j.delete(t),o.id=a.id,eg(o,e.method,Date.now()),r.write(o).catch(()=>v.error("Sending response for canceled message failed."));return}}let s=j.get(t);if(void 0!==s){s.cancel(),ev(e);return}M.add(t)}X(D,e)}finally{es()}},"callback");function ec(e){let t,n;if(er())return;function i(t,n,i){let a={jsonrpc:"2.0",id:e.id};t instanceof k.ResponseError?a.error=t.toJson():a.result=void 0===t?null:t,eg(a,n,i),r.write(a).catch(()=>v.error("Sending response failed."))}function a(t,n,i){let a={jsonrpc:"2.0",id:e.id,error:t.toJson()};eg(a,n,i),r.write(a).catch(()=>v.error("Sending response failed."))}function s(t,n,i){void 0===t&&(t=null);let a={jsonrpc:"2.0",id:e.id,result:t};eg(a,n,i),r.write(a).catch(()=>v.error("Sending response failed."))}tD(i,"reply"),tD(a,"replyError"),tD(s,"replySuccess"),eT(e);let o=_.get(e.method);o&&(t=o.type,n=o.handler);let l=Date.now();if(n||y){let r=e.id??String(Date.now()),o=g.is(H.receiver)?H.receiver.createCancellationTokenSource(r):H.receiver.createCancellationTokenSource(e);null!==e.id&&M.has(e.id)&&o.cancel(),null!==e.id&&j.set(r,o);try{let u;if(n)if(void 0===e.params){if(void 0!==t&&0!==t.numberOfParams)return void a(new k.ResponseError(k.ErrorCodes.InvalidParams,`Request ${e.method} defines ${t.numberOfParams} params but received none.`),e.method,l);u=n(o.token)}else if(Array.isArray(e.params)){if(void 0!==t&&t.parameterStructures===k.ParameterStructures.byName)return void a(new k.ResponseError(k.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by name but received parameters by position`),e.method,l);u=n(...e.params,o.token)}else{if(void 0!==t&&t.parameterStructures===k.ParameterStructures.byPosition)return void a(new k.ResponseError(k.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by position but received parameters by name`),e.method,l);u=n(e.params,o.token)}else y&&(u=y(e.method,e.params,o.token));let c=u;u?c.then?c.then(t=>{j.delete(r),i(t,e.method,l)},t=>{j.delete(r),t instanceof k.ResponseError?a(t,e.method,l):t&&S.string(t.message)?a(new k.ResponseError(k.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,l):a(new k.ResponseError(k.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,l)}):(j.delete(r),i(u,e.method,l)):(j.delete(r),s(u,e.method,l))}catch(t){j.delete(r),t instanceof k.ResponseError?i(t,e.method,l):t&&S.string(t.message)?a(new k.ResponseError(k.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,l):a(new k.ResponseError(k.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,l)}}else a(new k.ResponseError(k.ErrorCodes.MethodNotFound,`Unhandled method ${e.method}`),e.method,l)}function ep(e){if(!er())if(null===e.id)e.error?v.error(`Received response message without id: Error is: ${JSON.stringify(e.error,void 0,4)}`):v.error("Received response message without id. No further error information provided.");else{let t=e.id,r=L.get(t);if(e$(e,r),void 0!==r){L.delete(t);try{if(e.error){let t=e.error;r.reject(new k.ResponseError(t.code,t.message,t.data))}else if(void 0!==e.result)r.resolve(e.result);else throw Error("Should never happen.")}catch(e){e.message?v.error(`Response handler '${r.method}' failed with message: ${e.message}`):v.error(`Response handler '${r.method}' failed unexpectedly.`)}}}}function ef(e){let t,r;if(!er()){if(e.method===s.type.method){let t=e.params.id;M.delete(t),ev(e);return}{let n=P.get(e.method);n&&(t=n.handler,r=n.type)}if(t||T)try{if(ev(e),t)if(void 0===e.params)void 0!==r&&0!==r.numberOfParams&&r.parameterStructures!==k.ParameterStructures.byName&&v.error(`Notification ${e.method} defines ${r.numberOfParams} params but received none.`),t();else if(Array.isArray(e.params)){let n=e.params;e.method===l.type.method&&2===n.length&&o.is(n[0])?t({token:n[0],value:n[1]}):(void 0!==r&&(r.parameterStructures===k.ParameterStructures.byName&&v.error(`Notification ${e.method} defines parameters by name but received parameters by position`),r.numberOfParams!==e.params.length&&v.error(`Notification ${e.method} defines ${r.numberOfParams} params but received ${n.length} arguments`)),t(...n))}else void 0!==r&&r.parameterStructures===k.ParameterStructures.byPosition&&v.error(`Notification ${e.method} defines parameters by position but received parameters by name`),t(e.params);else T&&T(e.method,e.params)}catch(t){t.message?v.error(`Notification handler '${e.method}' failed with message: ${t.message}`):v.error(`Notification handler '${e.method}' failed unexpectedly.`)}else B.fire(e)}}function ed(e){if(!e)return void v.error("Received empty message.");if(v.error(`Received message which is neither a response nor a notification message: @@ -18,18 +18,18 @@ ${JSON.stringify(e,null,4)}`),S.string(e.id)||S.number(e.id)){let t=e.id,r=L.get `:e.result?r=`Result: ${em(e.result)} -`:void 0===e.error&&(r="No result returned.\n\n")),t){let n=e.error?` Request failed: ${e.error.message} (${e.error.code}).`:"";p.log(`Received response '${t.method} - (${e.id})' in ${Date.now()-t.timerStart}ms.${n}`,r)}else p.log(`Received response ${e.id} without active response promise.`,r)}else eR("receive-response",e)}function eR(e,t){if(!p||F===c.Off)return;let r={isLSPMessage:!0,type:e,message:t,timestamp:Date.now()};p.log(r)}function eE(){if(et())throw new G(h.Closed,"Connection is closed.");if(er())throw new G(h.Disposed,"Connection is disposed.")}function eb(){if(ee())throw new G(h.AlreadyListening,"Connection is already listening")}function eA(){if(!ee())throw Error("Call listen() first.")}function eC(e){return void 0===e?null:e}function eS(e){if(null!==e)return e}function ek(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}function ex(e,t){switch(e){case k.ParameterStructures.auto:if(ek(t))return eS(t);return[eC(t)];case k.ParameterStructures.byName:if(!ek(t))throw Error("Received parameters by name but param is not an object literal.");return eS(t);case k.ParameterStructures.byPosition:return[eC(t)];default:throw Error(`Unknown parameter structure ${e.toString()}`)}}function eN(e,t){let r,n=e.numberOfParams;switch(n){case 0:r=void 0;break;case 1:r=ex(e.parameterStructures,t[0]);break;default:r=[];for(let e=0;e<t.length&&e<n;e++)r.push(eC(t[e]));if(t.length<n)for(let e=t.length;e<n;e++)r.push(null)}return r}tD(ec,"handleRequest"),tD(ep,"handleResponse"),tD(ef,"handleNotification"),tD(ed,"handleInvalidMessage"),tD(em,"stringifyTrace"),tD(eh,"traceSendingRequest"),tD(ey,"traceSendingNotification"),tD(eg,"traceSendingResponse"),tD(eT,"traceReceivedRequest"),tD(ev,"traceReceivedNotification"),tD(e$,"traceReceivedResponse"),tD(eR,"logLSPMessage"),tD(eE,"throwIfClosedOrDisposed"),tD(eb,"throwIfListening"),tD(eA,"throwIfNotListening"),tD(eC,"undefinedToNull"),tD(eS,"nullToUndefined"),tD(ek,"isNamedParam"),tD(ex,"computeSingleParam"),tD(eN,"computeMessageParams");let ew={sendNotification:tD((e,...t)=>{let n,i;if(eE(),S.string(e)){n=e;let r=t[0],a=0,s=k.ParameterStructures.auto;k.ParameterStructures.is(r)&&(a=1,s=r);let o=t.length,l=o-a;switch(l){case 0:i=void 0;break;case 1:i=ex(s,t[a]);break;default:if(s===k.ParameterStructures.byName)throw Error(`Received ${l} parameters for 'by Name' notification parameter structure.`);i=t.slice(a,o).map(e=>eC(e))}}else n=e.method,i=eN(e,t);let a={jsonrpc:"2.0",method:n,params:i};return ey(a),r.write(a).catch(e=>{throw v.error("Sending notification failed."),e})},"sendNotification"),onNotification:tD((e,t)=>{let r;return eE(),S.func(e)?T=e:t&&(S.string(e)?(r=e,P.set(e,{type:void 0,handler:t})):(r=e.method,P.set(e.method,{type:e,handler:t}))),{dispose:tD(()=>{void 0!==r?P.delete(r):T=void 0},"dispose")}},"onNotification"),onProgress:tD((e,t,r)=>{if(O.has(t))throw Error(`Progress handler for token ${t} already registered`);return O.set(t,r),{dispose:tD(()=>{O.delete(t)},"dispose")}},"onProgress"),sendProgress:tD((e,t,r)=>ew.sendNotification(l.type,{token:t,value:r}),"sendProgress"),onUnhandledProgress:W.event,sendRequest:tD((e,...t)=>{let n,i,a,s;if(eE(),eA(),S.string(e)){n=e;let r=t[0],a=t[t.length-1],o=0,l=k.ParameterStructures.auto;k.ParameterStructures.is(r)&&(o=1,l=r);let u=t.length;w.CancellationToken.is(a)&&(u-=1,s=a);let c=u-o;switch(c){case 0:i=void 0;break;case 1:i=ex(l,t[o]);break;default:if(l===k.ParameterStructures.byName)throw Error(`Received ${c} parameters for 'by Name' request parameter structure.`);i=t.slice(o,u).map(e=>eC(e))}}else{n=e.method,i=eN(e,t);let r=e.numberOfParams;s=w.CancellationToken.is(t[r])?t[r]:void 0}let o=$++;s&&(a=s.onCancellationRequested(()=>{let e=H.sender.sendCancellation(ew,o);return void 0===e?(v.log(`Received no promise from cancellation strategy when cancelling id ${o}`),Promise.resolve()):e.catch(()=>{v.log(`Sending cancellation messages for id ${o} failed`)})}));let l={jsonrpc:"2.0",id:o,method:n,params:i};return eh(l),"function"==typeof H.sender.enableCancellation&&H.sender.enableCancellation(l),new Promise(async(e,t)=>{let i=tD(t=>{e(t),H.sender.cleanup(o),a?.dispose()},"resolveWithCleanup"),s=tD(e=>{t(e),H.sender.cleanup(o),a?.dispose()},"rejectWithCleanup"),u={method:n,timerStart:Date.now(),resolve:i,reject:s};try{await r.write(l),L.set(o,u)}catch(e){throw v.error("Sending request failed."),u.reject(new k.ResponseError(k.ErrorCodes.MessageWriteError,e.message?e.message:"Unknown reason")),e}})},"sendRequest"),onRequest:tD((e,t)=>{eE();let r=null;return u.is(e)?(r=void 0,y=e):S.string(e)?(r=null,void 0!==t&&(r=e,_.set(e,{handler:t,type:void 0}))):void 0!==t&&(r=e.method,_.set(e.method,{type:e,handler:t})),{dispose:tD(()=>{null!==r&&(void 0!==r?_.delete(r):y=void 0)},"dispose")}},"onRequest"),hasPendingResponse:tD(()=>L.size>0,"hasPendingResponse"),trace:tD(async(e,t,r)=>{let n=!1,i=f.Text;void 0!==r&&(S.boolean(r)?n=r:(n=r.sendNotification||!1,i=r.traceFormat||f.Text)),F=e,z=i,p=F===c.Off?void 0:t,!n||et()||er()||await ew.sendNotification(d.type,{value:c.toString(e)})},"trace"),onError:q.event,onClose:U.event,onUnhandledNotification:B.event,onDispose:V.event,end:tD(()=>{r.end()},"end"),dispose:tD(()=>{if(er())return;K=A.Disposed,V.fire(void 0);let e=new k.ResponseError(k.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let t of L.values())t.reject(e);L=new Map,j=new Map,M=new Set,D=new x.LinkedMap,S.func(r.dispose)&&r.dispose(),S.func(t.dispose)&&t.dispose()},"dispose"),listen:tD(()=>{eE(),eb(),K=A.Listening,t.listen(eu)},"listen"),inspect:tD(()=>{(0,C.default)().console.log("inspect")},"inspect")};return ew.onNotification(m.type,e=>{if(F===c.Off||!p)return;let t=F===c.Verbose||F===c.Compact;p.log(e.message,t?e.verbose:void 0)}),ew.onNotification(l.type,e=>{let t=O.get(e.token);t?t(e.value):W.fire(e)}),ew}tD(er,"is"),et.is=er,(a=A||(A={}))[a.New=1]="New",a[a.Listening=2]="Listening",a[a.Closed=3]="Closed",a[a.Disposed=4]="Disposed",tD(en,"createMessageConnection"),e.createMessageConnection=en}}),t3=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/api.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ProgressType=e.ProgressToken=e.createMessageConnection=e.NullLogger=e.ConnectionOptions=e.ConnectionStrategy=e.AbstractMessageBuffer=e.WriteableStreamMessageWriter=e.AbstractMessageWriter=e.MessageWriter=e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=e.CancellationToken=e.CancellationTokenSource=e.Emitter=e.Event=e.Disposable=e.LRUCache=e.Touch=e.LinkedMap=e.ParameterStructures=e.NotificationType9=e.NotificationType8=e.NotificationType7=e.NotificationType6=e.NotificationType5=e.NotificationType4=e.NotificationType3=e.NotificationType2=e.NotificationType1=e.NotificationType0=e.NotificationType=e.ErrorCodes=e.ResponseError=e.RequestType9=e.RequestType8=e.RequestType7=e.RequestType6=e.RequestType5=e.RequestType4=e.RequestType3=e.RequestType2=e.RequestType1=e.RequestType0=e.RequestType=e.Message=e.RAL=void 0,e.MessageStrategy=e.CancellationStrategy=e.CancellationSenderStrategy=e.CancellationReceiverStrategy=e.ConnectionError=e.ConnectionErrors=e.LogTraceNotification=e.SetTraceNotification=e.TraceFormat=e.TraceValues=e.Trace=void 0;var t=tH();Object.defineProperty(e,"Message",{enumerable:!0,get:tD(function(){return t.Message},"get")}),Object.defineProperty(e,"RequestType",{enumerable:!0,get:tD(function(){return t.RequestType},"get")}),Object.defineProperty(e,"RequestType0",{enumerable:!0,get:tD(function(){return t.RequestType0},"get")}),Object.defineProperty(e,"RequestType1",{enumerable:!0,get:tD(function(){return t.RequestType1},"get")}),Object.defineProperty(e,"RequestType2",{enumerable:!0,get:tD(function(){return t.RequestType2},"get")}),Object.defineProperty(e,"RequestType3",{enumerable:!0,get:tD(function(){return t.RequestType3},"get")}),Object.defineProperty(e,"RequestType4",{enumerable:!0,get:tD(function(){return t.RequestType4},"get")}),Object.defineProperty(e,"RequestType5",{enumerable:!0,get:tD(function(){return t.RequestType5},"get")}),Object.defineProperty(e,"RequestType6",{enumerable:!0,get:tD(function(){return t.RequestType6},"get")}),Object.defineProperty(e,"RequestType7",{enumerable:!0,get:tD(function(){return t.RequestType7},"get")}),Object.defineProperty(e,"RequestType8",{enumerable:!0,get:tD(function(){return t.RequestType8},"get")}),Object.defineProperty(e,"RequestType9",{enumerable:!0,get:tD(function(){return t.RequestType9},"get")}),Object.defineProperty(e,"ResponseError",{enumerable:!0,get:tD(function(){return t.ResponseError},"get")}),Object.defineProperty(e,"ErrorCodes",{enumerable:!0,get:tD(function(){return t.ErrorCodes},"get")}),Object.defineProperty(e,"NotificationType",{enumerable:!0,get:tD(function(){return t.NotificationType},"get")}),Object.defineProperty(e,"NotificationType0",{enumerable:!0,get:tD(function(){return t.NotificationType0},"get")}),Object.defineProperty(e,"NotificationType1",{enumerable:!0,get:tD(function(){return t.NotificationType1},"get")}),Object.defineProperty(e,"NotificationType2",{enumerable:!0,get:tD(function(){return t.NotificationType2},"get")}),Object.defineProperty(e,"NotificationType3",{enumerable:!0,get:tD(function(){return t.NotificationType3},"get")}),Object.defineProperty(e,"NotificationType4",{enumerable:!0,get:tD(function(){return t.NotificationType4},"get")}),Object.defineProperty(e,"NotificationType5",{enumerable:!0,get:tD(function(){return t.NotificationType5},"get")}),Object.defineProperty(e,"NotificationType6",{enumerable:!0,get:tD(function(){return t.NotificationType6},"get")}),Object.defineProperty(e,"NotificationType7",{enumerable:!0,get:tD(function(){return t.NotificationType7},"get")}),Object.defineProperty(e,"NotificationType8",{enumerable:!0,get:tD(function(){return t.NotificationType8},"get")}),Object.defineProperty(e,"NotificationType9",{enumerable:!0,get:tD(function(){return t.NotificationType9},"get")}),Object.defineProperty(e,"ParameterStructures",{enumerable:!0,get:tD(function(){return t.ParameterStructures},"get")});var r=tY();Object.defineProperty(e,"LinkedMap",{enumerable:!0,get:tD(function(){return r.LinkedMap},"get")}),Object.defineProperty(e,"LRUCache",{enumerable:!0,get:tD(function(){return r.LRUCache},"get")}),Object.defineProperty(e,"Touch",{enumerable:!0,get:tD(function(){return r.Touch},"get")});var n=tQ();Object.defineProperty(e,"Disposable",{enumerable:!0,get:tD(function(){return n.Disposable},"get")});var i=tW();Object.defineProperty(e,"Event",{enumerable:!0,get:tD(function(){return i.Event},"get")}),Object.defineProperty(e,"Emitter",{enumerable:!0,get:tD(function(){return i.Emitter},"get")});var a=tV();Object.defineProperty(e,"CancellationTokenSource",{enumerable:!0,get:tD(function(){return a.CancellationTokenSource},"get")}),Object.defineProperty(e,"CancellationToken",{enumerable:!0,get:tD(function(){return a.CancellationToken},"get")});var s=tZ();Object.defineProperty(e,"SharedArraySenderStrategy",{enumerable:!0,get:tD(function(){return s.SharedArraySenderStrategy},"get")}),Object.defineProperty(e,"SharedArrayReceiverStrategy",{enumerable:!0,get:tD(function(){return s.SharedArrayReceiverStrategy},"get")});var o=tJ();Object.defineProperty(e,"MessageReader",{enumerable:!0,get:tD(function(){return o.MessageReader},"get")}),Object.defineProperty(e,"AbstractMessageReader",{enumerable:!0,get:tD(function(){return o.AbstractMessageReader},"get")}),Object.defineProperty(e,"ReadableStreamMessageReader",{enumerable:!0,get:tD(function(){return o.ReadableStreamMessageReader},"get")});var l=t0();Object.defineProperty(e,"MessageWriter",{enumerable:!0,get:tD(function(){return l.MessageWriter},"get")}),Object.defineProperty(e,"AbstractMessageWriter",{enumerable:!0,get:tD(function(){return l.AbstractMessageWriter},"get")}),Object.defineProperty(e,"WriteableStreamMessageWriter",{enumerable:!0,get:tD(function(){return l.WriteableStreamMessageWriter},"get")});var u=t1();Object.defineProperty(e,"AbstractMessageBuffer",{enumerable:!0,get:tD(function(){return u.AbstractMessageBuffer},"get")});var c=t2();Object.defineProperty(e,"ConnectionStrategy",{enumerable:!0,get:tD(function(){return c.ConnectionStrategy},"get")}),Object.defineProperty(e,"ConnectionOptions",{enumerable:!0,get:tD(function(){return c.ConnectionOptions},"get")}),Object.defineProperty(e,"NullLogger",{enumerable:!0,get:tD(function(){return c.NullLogger},"get")}),Object.defineProperty(e,"createMessageConnection",{enumerable:!0,get:tD(function(){return c.createMessageConnection},"get")}),Object.defineProperty(e,"ProgressToken",{enumerable:!0,get:tD(function(){return c.ProgressToken},"get")}),Object.defineProperty(e,"ProgressType",{enumerable:!0,get:tD(function(){return c.ProgressType},"get")}),Object.defineProperty(e,"Trace",{enumerable:!0,get:tD(function(){return c.Trace},"get")}),Object.defineProperty(e,"TraceValues",{enumerable:!0,get:tD(function(){return c.TraceValues},"get")}),Object.defineProperty(e,"TraceFormat",{enumerable:!0,get:tD(function(){return c.TraceFormat},"get")}),Object.defineProperty(e,"SetTraceNotification",{enumerable:!0,get:tD(function(){return c.SetTraceNotification},"get")}),Object.defineProperty(e,"LogTraceNotification",{enumerable:!0,get:tD(function(){return c.LogTraceNotification},"get")}),Object.defineProperty(e,"ConnectionErrors",{enumerable:!0,get:tD(function(){return c.ConnectionErrors},"get")}),Object.defineProperty(e,"ConnectionError",{enumerable:!0,get:tD(function(){return c.ConnectionError},"get")}),Object.defineProperty(e,"CancellationReceiverStrategy",{enumerable:!0,get:tD(function(){return c.CancellationReceiverStrategy},"get")}),Object.defineProperty(e,"CancellationSenderStrategy",{enumerable:!0,get:tD(function(){return c.CancellationSenderStrategy},"get")}),Object.defineProperty(e,"CancellationStrategy",{enumerable:!0,get:tD(function(){return c.CancellationStrategy},"get")}),Object.defineProperty(e,"MessageStrategy",{enumerable:!0,get:tD(function(){return c.MessageStrategy},"get")}),e.RAL=tU().default}}),t4=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/browser/ril.js"(e){Object.defineProperty(e,"__esModule",{value:!0});var t=t3(),r=class e extends t.AbstractMessageBuffer{static{tD(this,"MessageBuffer")}constructor(e="utf-8"){super(e),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return e.emptyBuffer}fromString(e,t){return new TextEncoder().encode(e)}toString(e,t){return"ascii"===t?this.asciiDecoder.decode(e):new TextDecoder(t).decode(e)}asNative(e,t){return void 0===t?e:e.slice(0,t)}allocNative(e){return new Uint8Array(e)}};r.emptyBuffer=new Uint8Array(0);var n=class{static{tD(this,"ReadableStreamWrapper")}constructor(e){this.socket=e,this._onData=new t.Emitter,this._messageListener=e=>{e.data.arrayBuffer().then(e=>{this._onData.fire(new Uint8Array(e))},()=>{(0,t.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(e){return this.socket.addEventListener("close",e),t.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),t.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),t.Disposable.create(()=>this.socket.removeEventListener("end",e))}onData(e){return this._onData.event(e)}},i=class{static{tD(this,"WritableStreamWrapper")}constructor(e){this.socket=e}onClose(e){return this.socket.addEventListener("close",e),t.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),t.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),t.Disposable.create(()=>this.socket.removeEventListener("end",e))}write(e,t){if("string"==typeof e){if(void 0!==t&&"utf-8"!==t)throw Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t}`);this.socket.send(e)}else this.socket.send(e);return Promise.resolve()}end(){this.socket.close()}},a=new TextEncoder,s=Object.freeze({messageBuffer:Object.freeze({create:tD(e=>new r(e),"create")}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:tD((e,t)=>{if("utf-8"!==t.charset)throw Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t.charset}`);return Promise.resolve(a.encode(JSON.stringify(e,void 0,0)))},"encode")}),decoder:Object.freeze({name:"application/json",decode:tD((e,t)=>{if(!(e instanceof Uint8Array))throw Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(t.charset).decode(e)))},"decode")})}),stream:Object.freeze({asReadableStream:tD(e=>new n(e),"asReadableStream"),asWritableStream:tD(e=>new i(e),"asWritableStream")}),console,timer:Object.freeze({setTimeout(e,t,...r){let n=setTimeout(e,t,...r);return{dispose:tD(()=>clearTimeout(n),"dispose")}},setImmediate(e,...t){let r=setTimeout(e,0,...t);return{dispose:tD(()=>clearTimeout(r),"dispose")}},setInterval(e,t,...r){let n=setInterval(e,t,...r);return{dispose:tD(()=>clearInterval(n),"dispose")}}})});function o(){return s}tD(o,"RIL");var l=o||(o={});function u(){t.RAL.install(s)}tD(u,"install"),l.install=u,e.default=o}}),t5=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/browser/main.js"(e){var t=e&&e.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:tD(function(){return t[r]},"get")}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),r=e&&e.__exportStar||function(e,r){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(r,n)||t(r,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),e.createMessageConnection=e.BrowserMessageWriter=e.BrowserMessageReader=void 0,t4().default.install();var n=t3();function i(e,t,r,i){return void 0===r&&(r=n.NullLogger),n.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,n.createMessageConnection)(e,t,r,i)}r(t3(),e),e.BrowserMessageReader=class extends n.AbstractMessageReader{static{tD(this,"BrowserMessageReader")}constructor(e){super(),this._onData=new n.Emitter,this._messageListener=e=>{this._onData.fire(e.data)},e.addEventListener("error",e=>this.fireError(e)),e.onmessage=this._messageListener}listen(e){return this._onData.event(e)}},e.BrowserMessageWriter=class extends n.AbstractMessageWriter{static{tD(this,"BrowserMessageWriter")}constructor(e){super(),this.port=e,this.errorCount=0,e.addEventListener("error",e=>this.fireError(e))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}},tD(i,"createMessageConnection"),e.createMessageConnection=i}}),t9=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/browser.js"(e,t){t.exports=t5()}}),t6=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/messages.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ProtocolNotificationType=e.ProtocolNotificationType0=e.ProtocolRequestType=e.ProtocolRequestType0=e.RegistrationType=e.MessageDirection=void 0;var t,r,n=t5();(t=r||(e.MessageDirection=r={})).clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both",e.RegistrationType=class{static{tD(this,"RegistrationType")}constructor(e){this.method=e}},e.ProtocolRequestType0=class extends n.RequestType0{static{tD(this,"ProtocolRequestType0")}constructor(e){super(e)}},e.ProtocolRequestType=class extends n.RequestType{static{tD(this,"ProtocolRequestType")}constructor(e){super(e,n.ParameterStructures.byName)}},e.ProtocolNotificationType0=class extends n.NotificationType0{static{tD(this,"ProtocolNotificationType0")}constructor(e){super(e)}},e.ProtocolNotificationType=class extends n.NotificationType{static{tD(this,"ProtocolNotificationType")}constructor(e){super(e,n.ParameterStructures.byName)}}}}),t7=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js"(e){function t(e){return!0===e||!1===e}function r(e){return"string"==typeof e||e instanceof String}function n(e){return"number"==typeof e||e instanceof Number}function i(e){return e instanceof Error}function a(e){return"function"==typeof e}function s(e){return Array.isArray(e)}function o(e){return s(e)&&e.every(e=>r(e))}function l(e,t){return Array.isArray(e)&&e.every(t)}function u(e){return null!==e&&"object"==typeof e}Object.defineProperty(e,"__esModule",{value:!0}),e.objectLiteral=e.typedArray=e.stringArray=e.array=e.func=e.error=e.number=e.string=e.boolean=void 0,tD(t,"boolean"),e.boolean=t,tD(r,"string"),e.string=r,tD(n,"number"),e.number=n,tD(i,"error"),e.error=i,tD(a,"func"),e.func=a,tD(s,"array"),e.array=s,tD(o,"stringArray"),e.stringArray=o,tD(l,"typedArray"),e.typedArray=l,tD(u,"objectLiteral"),e.objectLiteral=u}}),t8=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ImplementationRequest=void 0;var t,r,n=t6();(t=r||(e.ImplementationRequest=r={})).method="textDocument/implementation",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),re=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.TypeDefinitionRequest=void 0;var t,r,n=t6();(t=r||(e.TypeDefinitionRequest=r={})).method="textDocument/typeDefinition",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),rt=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DidChangeWorkspaceFoldersNotification=e.WorkspaceFoldersRequest=void 0;var t,r,n,i,a=t6();(t=n||(e.WorkspaceFoldersRequest=n={})).method="workspace/workspaceFolders",t.messageDirection=a.MessageDirection.serverToClient,t.type=new a.ProtocolRequestType0(t.method),(r=i||(e.DidChangeWorkspaceFoldersNotification=i={})).method="workspace/didChangeWorkspaceFolders",r.messageDirection=a.MessageDirection.clientToServer,r.type=new a.ProtocolNotificationType(r.method)}}),rr=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ConfigurationRequest=void 0;var t,r,n=t6();(t=r||(e.ConfigurationRequest=r={})).method="workspace/configuration",t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)}}),rn=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPresentationRequest=e.DocumentColorRequest=void 0;var t,r,n,i,a=t6();(t=n||(e.DocumentColorRequest=n={})).method="textDocument/documentColor",t.messageDirection=a.MessageDirection.clientToServer,t.type=new a.ProtocolRequestType(t.method),(r=i||(e.ColorPresentationRequest=i={})).method="textDocument/colorPresentation",r.messageDirection=a.MessageDirection.clientToServer,r.type=new a.ProtocolRequestType(r.method)}}),ri=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.FoldingRangeRefreshRequest=e.FoldingRangeRequest=void 0;var t,r,n,i,a=t6();(t=n||(e.FoldingRangeRequest=n={})).method="textDocument/foldingRange",t.messageDirection=a.MessageDirection.clientToServer,t.type=new a.ProtocolRequestType(t.method),(r=i||(e.FoldingRangeRefreshRequest=i={})).method="workspace/foldingRange/refresh",r.messageDirection=a.MessageDirection.serverToClient,r.type=new a.ProtocolRequestType0(r.method)}}),ra=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DeclarationRequest=void 0;var t,r,n=t6();(t=r||(e.DeclarationRequest=r={})).method="textDocument/declaration",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),rs=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SelectionRangeRequest=void 0;var t,r,n=t6();(t=r||(e.SelectionRangeRequest=r={})).method="textDocument/selectionRange",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),ro=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.WorkDoneProgressCancelNotification=e.WorkDoneProgressCreateRequest=e.WorkDoneProgress=void 0;var t,r,n,i,a,s=t5(),o=t6(),l=n||(e.WorkDoneProgress=n={});function u(e){return e===l.type}l.type=new s.ProgressType,tD(u,"is"),l.is=u,(t=i||(e.WorkDoneProgressCreateRequest=i={})).method="window/workDoneProgress/create",t.messageDirection=o.MessageDirection.serverToClient,t.type=new o.ProtocolRequestType(t.method),(r=a||(e.WorkDoneProgressCancelNotification=a={})).method="window/workDoneProgress/cancel",r.messageDirection=o.MessageDirection.clientToServer,r.type=new o.ProtocolNotificationType(r.method)}}),rl=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CallHierarchyOutgoingCallsRequest=e.CallHierarchyIncomingCallsRequest=e.CallHierarchyPrepareRequest=void 0;var t,r,n,i,a,s,o=t6();(t=i||(e.CallHierarchyPrepareRequest=i={})).method="textDocument/prepareCallHierarchy",t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolRequestType(t.method),(r=a||(e.CallHierarchyIncomingCallsRequest=a={})).method="callHierarchy/incomingCalls",r.messageDirection=o.MessageDirection.clientToServer,r.type=new o.ProtocolRequestType(r.method),(n=s||(e.CallHierarchyOutgoingCallsRequest=s={})).method="callHierarchy/outgoingCalls",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)}}),ru=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SemanticTokensRefreshRequest=e.SemanticTokensRangeRequest=e.SemanticTokensDeltaRequest=e.SemanticTokensRequest=e.SemanticTokensRegistrationType=e.TokenFormat=void 0;var t,r,n,i,a,s,o,l,u,c,p,f=t6();(s||(e.TokenFormat=s={})).Relative="relative",(t=o||(e.SemanticTokensRegistrationType=o={})).method="textDocument/semanticTokens",t.type=new f.RegistrationType(t.method),(r=l||(e.SemanticTokensRequest=l={})).method="textDocument/semanticTokens/full",r.messageDirection=f.MessageDirection.clientToServer,r.type=new f.ProtocolRequestType(r.method),r.registrationMethod=o.method,(n=u||(e.SemanticTokensDeltaRequest=u={})).method="textDocument/semanticTokens/full/delta",n.messageDirection=f.MessageDirection.clientToServer,n.type=new f.ProtocolRequestType(n.method),n.registrationMethod=o.method,(i=c||(e.SemanticTokensRangeRequest=c={})).method="textDocument/semanticTokens/range",i.messageDirection=f.MessageDirection.clientToServer,i.type=new f.ProtocolRequestType(i.method),i.registrationMethod=o.method,(a=p||(e.SemanticTokensRefreshRequest=p={})).method="workspace/semanticTokens/refresh",a.messageDirection=f.MessageDirection.serverToClient,a.type=new f.ProtocolRequestType0(a.method)}}),rc=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ShowDocumentRequest=void 0;var t,r,n=t6();(t=r||(e.ShowDocumentRequest=r={})).method="window/showDocument",t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)}}),rp=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.LinkedEditingRangeRequest=void 0;var t,r,n=t6();(t=r||(e.LinkedEditingRangeRequest=r={})).method="textDocument/linkedEditingRange",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),rf=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.WillDeleteFilesRequest=e.DidDeleteFilesNotification=e.DidRenameFilesNotification=e.WillRenameFilesRequest=e.DidCreateFilesNotification=e.WillCreateFilesRequest=e.FileOperationPatternKind=void 0;var t,r,n,i,a,s,o,l,u,c,p,f,d,m,h=t6();(t=l||(e.FileOperationPatternKind=l={})).file="file",t.folder="folder",(r=u||(e.WillCreateFilesRequest=u={})).method="workspace/willCreateFiles",r.messageDirection=h.MessageDirection.clientToServer,r.type=new h.ProtocolRequestType(r.method),(n=c||(e.DidCreateFilesNotification=c={})).method="workspace/didCreateFiles",n.messageDirection=h.MessageDirection.clientToServer,n.type=new h.ProtocolNotificationType(n.method),(i=p||(e.WillRenameFilesRequest=p={})).method="workspace/willRenameFiles",i.messageDirection=h.MessageDirection.clientToServer,i.type=new h.ProtocolRequestType(i.method),(a=f||(e.DidRenameFilesNotification=f={})).method="workspace/didRenameFiles",a.messageDirection=h.MessageDirection.clientToServer,a.type=new h.ProtocolNotificationType(a.method),(s=d||(e.DidDeleteFilesNotification=d={})).method="workspace/didDeleteFiles",s.messageDirection=h.MessageDirection.clientToServer,s.type=new h.ProtocolNotificationType(s.method),(o=m||(e.WillDeleteFilesRequest=m={})).method="workspace/willDeleteFiles",o.messageDirection=h.MessageDirection.clientToServer,o.type=new h.ProtocolRequestType(o.method)}}),rd=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.MonikerRequest=e.MonikerKind=e.UniquenessLevel=void 0;var t,r,n,i,a,s,o=t6();(t=i||(e.UniquenessLevel=i={})).document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global",(r=a||(e.MonikerKind=a={})).$import="import",r.$export="export",r.local="local",(n=s||(e.MonikerRequest=s={})).method="textDocument/moniker",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)}}),rm=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.TypeHierarchySubtypesRequest=e.TypeHierarchySupertypesRequest=e.TypeHierarchyPrepareRequest=void 0;var t,r,n,i,a,s,o=t6();(t=i||(e.TypeHierarchyPrepareRequest=i={})).method="textDocument/prepareTypeHierarchy",t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolRequestType(t.method),(r=a||(e.TypeHierarchySupertypesRequest=a={})).method="typeHierarchy/supertypes",r.messageDirection=o.MessageDirection.clientToServer,r.type=new o.ProtocolRequestType(r.method),(n=s||(e.TypeHierarchySubtypesRequest=s={})).method="typeHierarchy/subtypes",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)}}),rh=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.InlineValueRefreshRequest=e.InlineValueRequest=void 0;var t,r,n,i,a=t6();(t=n||(e.InlineValueRequest=n={})).method="textDocument/inlineValue",t.messageDirection=a.MessageDirection.clientToServer,t.type=new a.ProtocolRequestType(t.method),(r=i||(e.InlineValueRefreshRequest=i={})).method="workspace/inlineValue/refresh",r.messageDirection=a.MessageDirection.serverToClient,r.type=new a.ProtocolRequestType0(r.method)}}),ry=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintRefreshRequest=e.InlayHintResolveRequest=e.InlayHintRequest=void 0;var t,r,n,i,a,s,o=t6();(t=i||(e.InlayHintRequest=i={})).method="textDocument/inlayHint",t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolRequestType(t.method),(r=a||(e.InlayHintResolveRequest=a={})).method="inlayHint/resolve",r.messageDirection=o.MessageDirection.clientToServer,r.type=new o.ProtocolRequestType(r.method),(n=s||(e.InlayHintRefreshRequest=s={})).method="workspace/inlayHint/refresh",n.messageDirection=o.MessageDirection.serverToClient,n.type=new o.ProtocolRequestType0(n.method)}}),rg=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DiagnosticRefreshRequest=e.WorkspaceDiagnosticRequest=e.DocumentDiagnosticRequest=e.DocumentDiagnosticReportKind=e.DiagnosticServerCancellationData=void 0;var t,r,n,i,a,s,o,l,u,c=t5(),p=t7(),f=t6(),d=a||(e.DiagnosticServerCancellationData=a={});function m(e){return e&&p.boolean(e.retriggerRequest)}tD(m,"is"),d.is=m,(t=s||(e.DocumentDiagnosticReportKind=s={})).Full="full",t.Unchanged="unchanged",(r=o||(e.DocumentDiagnosticRequest=o={})).method="textDocument/diagnostic",r.messageDirection=f.MessageDirection.clientToServer,r.type=new f.ProtocolRequestType(r.method),r.partialResult=new c.ProgressType,(n=l||(e.WorkspaceDiagnosticRequest=l={})).method="workspace/diagnostic",n.messageDirection=f.MessageDirection.clientToServer,n.type=new f.ProtocolRequestType(n.method),n.partialResult=new c.ProgressType,(i=u||(e.DiagnosticRefreshRequest=u={})).method="workspace/diagnostic/refresh",i.messageDirection=f.MessageDirection.serverToClient,i.type=new f.ProtocolRequestType0(i.method)}}),rT=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DidCloseNotebookDocumentNotification=e.DidSaveNotebookDocumentNotification=e.DidChangeNotebookDocumentNotification=e.NotebookCellArrayChange=e.DidOpenNotebookDocumentNotification=e.NotebookDocumentSyncRegistrationType=e.NotebookDocument=e.NotebookCell=e.ExecutionSummary=e.NotebookCellKind=void 0;var t,r,n,i,a,s,o,l,u,c,p,f,d,m,h,y=(tq(),tz(tK)),g=t7(),T=t6(),v=s||(e.NotebookCellKind=s={});function $(e){return 1===e||2===e}v.Markup=1,v.Code=2,tD($,"is"),v.is=$,function(e){function t(e,t){let r={executionOrder:e};return(!0===t||!1===t)&&(r.success=t),r}function r(e){return g.objectLiteral(e)&&y.uinteger.is(e.executionOrder)&&(void 0===e.success||g.boolean(e.success))}function n(e,t){return e===t||null!=e&&null!=t&&e.executionOrder===t.executionOrder&&e.success===t.success}tD(t,"create"),e.create=t,tD(r,"is"),e.is=r,tD(n,"equals"),e.equals=n}(o||(e.ExecutionSummary=o={})),function(e){function t(e,t){return{kind:e,document:t}}function r(e){return g.objectLiteral(e)&&s.is(e.kind)&&y.DocumentUri.is(e.document)&&(void 0===e.metadata||g.objectLiteral(e.metadata))}function n(e,t){let r=new Set;return e.document!==t.document&&r.add("document"),e.kind!==t.kind&&r.add("kind"),e.executionSummary!==t.executionSummary&&r.add("executionSummary"),void 0===e.metadata&&void 0===t.metadata||i(e.metadata,t.metadata)||r.add("metadata"),void 0===e.executionSummary&&void 0===t.executionSummary||o.equals(e.executionSummary,t.executionSummary)||r.add("executionSummary"),r}function i(e,t){if(e===t)return!0;if(null==e||null==t||typeof e!=typeof t||"object"!=typeof e)return!1;let r=Array.isArray(e),n=Array.isArray(t);if(r!==n)return!1;if(r&&n){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!i(e[r],t[r]))return!1}if(g.objectLiteral(e)&&g.objectLiteral(t)){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length||(r.sort(),n.sort(),!i(r,n)))return!1;for(let n=0;n<r.length;n++){let a=r[n];if(!i(e[a],t[a]))return!1}}return!0}tD(t,"create"),e.create=t,tD(r,"is"),e.is=r,tD(n,"diff"),e.diff=n,tD(i,"equalsMetadata")}(l||(e.NotebookCell=l={}));var R=u||(e.NotebookDocument=u={});function E(e,t,r,n){return{uri:e,notebookType:t,version:r,cells:n}}function b(e){return g.objectLiteral(e)&&g.string(e.uri)&&y.integer.is(e.version)&&g.typedArray(e.cells,l.is)}tD(E,"create"),R.create=E,tD(b,"is"),R.is=b,(t=c||(e.NotebookDocumentSyncRegistrationType=c={})).method="notebookDocument/sync",t.messageDirection=T.MessageDirection.clientToServer,t.type=new T.RegistrationType(t.method),(r=p||(e.DidOpenNotebookDocumentNotification=p={})).method="notebookDocument/didOpen",r.messageDirection=T.MessageDirection.clientToServer,r.type=new T.ProtocolNotificationType(r.method),r.registrationMethod=c.method;var A=f||(e.NotebookCellArrayChange=f={});function C(e){return g.objectLiteral(e)&&y.uinteger.is(e.start)&&y.uinteger.is(e.deleteCount)&&(void 0===e.cells||g.typedArray(e.cells,l.is))}function S(e,t,r){let n={start:e,deleteCount:t};return void 0!==r&&(n.cells=r),n}tD(C,"is"),A.is=C,tD(S,"create"),A.create=S,(n=d||(e.DidChangeNotebookDocumentNotification=d={})).method="notebookDocument/didChange",n.messageDirection=T.MessageDirection.clientToServer,n.type=new T.ProtocolNotificationType(n.method),n.registrationMethod=c.method,(i=m||(e.DidSaveNotebookDocumentNotification=m={})).method="notebookDocument/didSave",i.messageDirection=T.MessageDirection.clientToServer,i.type=new T.ProtocolNotificationType(i.method),i.registrationMethod=c.method,(a=h||(e.DidCloseNotebookDocumentNotification=h={})).method="notebookDocument/didClose",a.messageDirection=T.MessageDirection.clientToServer,a.type=new T.ProtocolNotificationType(a.method),a.registrationMethod=c.method}}),rv=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionRequest=void 0;var t,r,n=t6();(t=r||(e.InlineCompletionRequest=r={})).method="textDocument/inlineCompletion",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),r$=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.WorkspaceSymbolRequest=e.CodeActionResolveRequest=e.CodeActionRequest=e.DocumentSymbolRequest=e.DocumentHighlightRequest=e.ReferencesRequest=e.DefinitionRequest=e.SignatureHelpRequest=e.SignatureHelpTriggerKind=e.HoverRequest=e.CompletionResolveRequest=e.CompletionRequest=e.CompletionTriggerKind=e.PublishDiagnosticsNotification=e.WatchKind=e.RelativePattern=e.FileChangeType=e.DidChangeWatchedFilesNotification=e.WillSaveTextDocumentWaitUntilRequest=e.WillSaveTextDocumentNotification=e.TextDocumentSaveReason=e.DidSaveTextDocumentNotification=e.DidCloseTextDocumentNotification=e.DidChangeTextDocumentNotification=e.TextDocumentContentChangeEvent=e.DidOpenTextDocumentNotification=e.TextDocumentSyncKind=e.TelemetryEventNotification=e.LogMessageNotification=e.ShowMessageRequest=e.ShowMessageNotification=e.MessageType=e.DidChangeConfigurationNotification=e.ExitNotification=e.ShutdownRequest=e.InitializedNotification=e.InitializeErrorCodes=e.InitializeRequest=e.WorkDoneProgressOptions=e.TextDocumentRegistrationOptions=e.StaticRegistrationOptions=e.PositionEncodingKind=e.FailureHandlingKind=e.ResourceOperationKind=e.UnregistrationRequest=e.RegistrationRequest=e.DocumentSelector=e.NotebookCellTextDocumentFilter=e.NotebookDocumentFilter=e.TextDocumentFilter=void 0,e.MonikerRequest=e.MonikerKind=e.UniquenessLevel=e.WillDeleteFilesRequest=e.DidDeleteFilesNotification=e.WillRenameFilesRequest=e.DidRenameFilesNotification=e.WillCreateFilesRequest=e.DidCreateFilesNotification=e.FileOperationPatternKind=e.LinkedEditingRangeRequest=e.ShowDocumentRequest=e.SemanticTokensRegistrationType=e.SemanticTokensRefreshRequest=e.SemanticTokensRangeRequest=e.SemanticTokensDeltaRequest=e.SemanticTokensRequest=e.TokenFormat=e.CallHierarchyPrepareRequest=e.CallHierarchyOutgoingCallsRequest=e.CallHierarchyIncomingCallsRequest=e.WorkDoneProgressCancelNotification=e.WorkDoneProgressCreateRequest=e.WorkDoneProgress=e.SelectionRangeRequest=e.DeclarationRequest=e.FoldingRangeRefreshRequest=e.FoldingRangeRequest=e.ColorPresentationRequest=e.DocumentColorRequest=e.ConfigurationRequest=e.DidChangeWorkspaceFoldersNotification=e.WorkspaceFoldersRequest=e.TypeDefinitionRequest=e.ImplementationRequest=e.ApplyWorkspaceEditRequest=e.ExecuteCommandRequest=e.PrepareRenameRequest=e.RenameRequest=e.PrepareSupportDefaultBehavior=e.DocumentOnTypeFormattingRequest=e.DocumentRangesFormattingRequest=e.DocumentRangeFormattingRequest=e.DocumentFormattingRequest=e.DocumentLinkResolveRequest=e.DocumentLinkRequest=e.CodeLensRefreshRequest=e.CodeLensResolveRequest=e.CodeLensRequest=e.WorkspaceSymbolResolveRequest=void 0,e.InlineCompletionRequest=e.DidCloseNotebookDocumentNotification=e.DidSaveNotebookDocumentNotification=e.DidChangeNotebookDocumentNotification=e.NotebookCellArrayChange=e.DidOpenNotebookDocumentNotification=e.NotebookDocumentSyncRegistrationType=e.NotebookDocument=e.NotebookCell=e.ExecutionSummary=e.NotebookCellKind=e.DiagnosticRefreshRequest=e.WorkspaceDiagnosticRequest=e.DocumentDiagnosticRequest=e.DocumentDiagnosticReportKind=e.DiagnosticServerCancellationData=e.InlayHintRefreshRequest=e.InlayHintResolveRequest=e.InlayHintRequest=e.InlineValueRefreshRequest=e.InlineValueRequest=e.TypeHierarchySupertypesRequest=e.TypeHierarchySubtypesRequest=e.TypeHierarchyPrepareRequest=void 0;var t,r,n,i,a,s,o,l,u,c,p,f,d,m,h,y,g,T,v,$,R,E,b,A,C,S,k,x,N,w,I,_,P,O,D,L,M,j,F,G,z,K,q,U,B,W,V,H,Y,Q,Z,X,J,ee,et,er,en,ei,ea,es,eo,el,eu,ec,ep,ef,ed,em,eh,ey,eg,eT,ev,e$,eR,eE,eb,eA,eC,eS,ek,ex,eN,ew,eI,e_,eP,eO,eD,eL,eM,ej,eF,eG,ez,eK,eq,eU,eB,eW,eV,eH,eY,eQ,eZ,eX,eJ,e0,e1,e2,e3,e4,e5,e9,e6,e7,e8,te,tt,tr=t6(),tn=(tq(),tz(tK)),ti=t7(),ta=t8();Object.defineProperty(e,"ImplementationRequest",{enumerable:!0,get:tD(function(){return ta.ImplementationRequest},"get")});var ts=re();Object.defineProperty(e,"TypeDefinitionRequest",{enumerable:!0,get:tD(function(){return ts.TypeDefinitionRequest},"get")});var to=rt();Object.defineProperty(e,"WorkspaceFoldersRequest",{enumerable:!0,get:tD(function(){return to.WorkspaceFoldersRequest},"get")}),Object.defineProperty(e,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:tD(function(){return to.DidChangeWorkspaceFoldersNotification},"get")});var tl=rr();Object.defineProperty(e,"ConfigurationRequest",{enumerable:!0,get:tD(function(){return tl.ConfigurationRequest},"get")});var tu=rn();Object.defineProperty(e,"DocumentColorRequest",{enumerable:!0,get:tD(function(){return tu.DocumentColorRequest},"get")}),Object.defineProperty(e,"ColorPresentationRequest",{enumerable:!0,get:tD(function(){return tu.ColorPresentationRequest},"get")});var tc=ri();Object.defineProperty(e,"FoldingRangeRequest",{enumerable:!0,get:tD(function(){return tc.FoldingRangeRequest},"get")}),Object.defineProperty(e,"FoldingRangeRefreshRequest",{enumerable:!0,get:tD(function(){return tc.FoldingRangeRefreshRequest},"get")});var tp=ra();Object.defineProperty(e,"DeclarationRequest",{enumerable:!0,get:tD(function(){return tp.DeclarationRequest},"get")});var tf=rs();Object.defineProperty(e,"SelectionRangeRequest",{enumerable:!0,get:tD(function(){return tf.SelectionRangeRequest},"get")});var td=ro();Object.defineProperty(e,"WorkDoneProgress",{enumerable:!0,get:tD(function(){return td.WorkDoneProgress},"get")}),Object.defineProperty(e,"WorkDoneProgressCreateRequest",{enumerable:!0,get:tD(function(){return td.WorkDoneProgressCreateRequest},"get")}),Object.defineProperty(e,"WorkDoneProgressCancelNotification",{enumerable:!0,get:tD(function(){return td.WorkDoneProgressCancelNotification},"get")});var tm=rl();Object.defineProperty(e,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:tD(function(){return tm.CallHierarchyIncomingCallsRequest},"get")}),Object.defineProperty(e,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:tD(function(){return tm.CallHierarchyOutgoingCallsRequest},"get")}),Object.defineProperty(e,"CallHierarchyPrepareRequest",{enumerable:!0,get:tD(function(){return tm.CallHierarchyPrepareRequest},"get")});var th=ru();Object.defineProperty(e,"TokenFormat",{enumerable:!0,get:tD(function(){return th.TokenFormat},"get")}),Object.defineProperty(e,"SemanticTokensRequest",{enumerable:!0,get:tD(function(){return th.SemanticTokensRequest},"get")}),Object.defineProperty(e,"SemanticTokensDeltaRequest",{enumerable:!0,get:tD(function(){return th.SemanticTokensDeltaRequest},"get")}),Object.defineProperty(e,"SemanticTokensRangeRequest",{enumerable:!0,get:tD(function(){return th.SemanticTokensRangeRequest},"get")}),Object.defineProperty(e,"SemanticTokensRefreshRequest",{enumerable:!0,get:tD(function(){return th.SemanticTokensRefreshRequest},"get")}),Object.defineProperty(e,"SemanticTokensRegistrationType",{enumerable:!0,get:tD(function(){return th.SemanticTokensRegistrationType},"get")});var ty=rc();Object.defineProperty(e,"ShowDocumentRequest",{enumerable:!0,get:tD(function(){return ty.ShowDocumentRequest},"get")});var tg=rp();Object.defineProperty(e,"LinkedEditingRangeRequest",{enumerable:!0,get:tD(function(){return tg.LinkedEditingRangeRequest},"get")});var tT=rf();Object.defineProperty(e,"FileOperationPatternKind",{enumerable:!0,get:tD(function(){return tT.FileOperationPatternKind},"get")}),Object.defineProperty(e,"DidCreateFilesNotification",{enumerable:!0,get:tD(function(){return tT.DidCreateFilesNotification},"get")}),Object.defineProperty(e,"WillCreateFilesRequest",{enumerable:!0,get:tD(function(){return tT.WillCreateFilesRequest},"get")}),Object.defineProperty(e,"DidRenameFilesNotification",{enumerable:!0,get:tD(function(){return tT.DidRenameFilesNotification},"get")}),Object.defineProperty(e,"WillRenameFilesRequest",{enumerable:!0,get:tD(function(){return tT.WillRenameFilesRequest},"get")}),Object.defineProperty(e,"DidDeleteFilesNotification",{enumerable:!0,get:tD(function(){return tT.DidDeleteFilesNotification},"get")}),Object.defineProperty(e,"WillDeleteFilesRequest",{enumerable:!0,get:tD(function(){return tT.WillDeleteFilesRequest},"get")});var tv=rd();Object.defineProperty(e,"UniquenessLevel",{enumerable:!0,get:tD(function(){return tv.UniquenessLevel},"get")}),Object.defineProperty(e,"MonikerKind",{enumerable:!0,get:tD(function(){return tv.MonikerKind},"get")}),Object.defineProperty(e,"MonikerRequest",{enumerable:!0,get:tD(function(){return tv.MonikerRequest},"get")});var t$=rm();Object.defineProperty(e,"TypeHierarchyPrepareRequest",{enumerable:!0,get:tD(function(){return t$.TypeHierarchyPrepareRequest},"get")}),Object.defineProperty(e,"TypeHierarchySubtypesRequest",{enumerable:!0,get:tD(function(){return t$.TypeHierarchySubtypesRequest},"get")}),Object.defineProperty(e,"TypeHierarchySupertypesRequest",{enumerable:!0,get:tD(function(){return t$.TypeHierarchySupertypesRequest},"get")});var tR=rh();Object.defineProperty(e,"InlineValueRequest",{enumerable:!0,get:tD(function(){return tR.InlineValueRequest},"get")}),Object.defineProperty(e,"InlineValueRefreshRequest",{enumerable:!0,get:tD(function(){return tR.InlineValueRefreshRequest},"get")});var tE=ry();Object.defineProperty(e,"InlayHintRequest",{enumerable:!0,get:tD(function(){return tE.InlayHintRequest},"get")}),Object.defineProperty(e,"InlayHintResolveRequest",{enumerable:!0,get:tD(function(){return tE.InlayHintResolveRequest},"get")}),Object.defineProperty(e,"InlayHintRefreshRequest",{enumerable:!0,get:tD(function(){return tE.InlayHintRefreshRequest},"get")});var tb=rg();Object.defineProperty(e,"DiagnosticServerCancellationData",{enumerable:!0,get:tD(function(){return tb.DiagnosticServerCancellationData},"get")}),Object.defineProperty(e,"DocumentDiagnosticReportKind",{enumerable:!0,get:tD(function(){return tb.DocumentDiagnosticReportKind},"get")}),Object.defineProperty(e,"DocumentDiagnosticRequest",{enumerable:!0,get:tD(function(){return tb.DocumentDiagnosticRequest},"get")}),Object.defineProperty(e,"WorkspaceDiagnosticRequest",{enumerable:!0,get:tD(function(){return tb.WorkspaceDiagnosticRequest},"get")}),Object.defineProperty(e,"DiagnosticRefreshRequest",{enumerable:!0,get:tD(function(){return tb.DiagnosticRefreshRequest},"get")});var tA=rT();Object.defineProperty(e,"NotebookCellKind",{enumerable:!0,get:tD(function(){return tA.NotebookCellKind},"get")}),Object.defineProperty(e,"ExecutionSummary",{enumerable:!0,get:tD(function(){return tA.ExecutionSummary},"get")}),Object.defineProperty(e,"NotebookCell",{enumerable:!0,get:tD(function(){return tA.NotebookCell},"get")}),Object.defineProperty(e,"NotebookDocument",{enumerable:!0,get:tD(function(){return tA.NotebookDocument},"get")}),Object.defineProperty(e,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:tD(function(){return tA.NotebookDocumentSyncRegistrationType},"get")}),Object.defineProperty(e,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:tD(function(){return tA.DidOpenNotebookDocumentNotification},"get")}),Object.defineProperty(e,"NotebookCellArrayChange",{enumerable:!0,get:tD(function(){return tA.NotebookCellArrayChange},"get")}),Object.defineProperty(e,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:tD(function(){return tA.DidChangeNotebookDocumentNotification},"get")}),Object.defineProperty(e,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:tD(function(){return tA.DidSaveNotebookDocumentNotification},"get")}),Object.defineProperty(e,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:tD(function(){return tA.DidCloseNotebookDocumentNotification},"get")});var tC=rv();Object.defineProperty(e,"InlineCompletionRequest",{enumerable:!0,get:tD(function(){return tC.InlineCompletionRequest},"get")});var tS=et||(e.TextDocumentFilter=et={});function tk(e){return ti.string(e)||ti.string(e.language)||ti.string(e.scheme)||ti.string(e.pattern)}tD(tk,"is"),tS.is=tk;var tx=er||(e.NotebookDocumentFilter=er={});function tN(e){return ti.objectLiteral(e)&&(ti.string(e.notebookType)||ti.string(e.scheme)||ti.string(e.pattern))}tD(tN,"is"),tx.is=tN;var tw=en||(e.NotebookCellTextDocumentFilter=en={});function tI(e){return ti.objectLiteral(e)&&(ti.string(e.notebook)||er.is(e.notebook))&&(void 0===e.language||ti.string(e.language))}tD(tI,"is"),tw.is=tI;var t_=ei||(e.DocumentSelector=ei={});function tP(e){if(!Array.isArray(e))return!1;for(let t of e)if(!ti.string(t)&&!et.is(t)&&!en.is(t))return!1;return!0}tD(tP,"is"),t_.is=tP,(t=ea||(e.RegistrationRequest=ea={})).method="client/registerCapability",t.messageDirection=tr.MessageDirection.serverToClient,t.type=new tr.ProtocolRequestType(t.method),(r=es||(e.UnregistrationRequest=es={})).method="client/unregisterCapability",r.messageDirection=tr.MessageDirection.serverToClient,r.type=new tr.ProtocolRequestType(r.method),(n=eo||(e.ResourceOperationKind=eo={})).Create="create",n.Rename="rename",n.Delete="delete",(i=el||(e.FailureHandlingKind=el={})).Abort="abort",i.Transactional="transactional",i.TextOnlyTransactional="textOnlyTransactional",i.Undo="undo",(a=eu||(e.PositionEncodingKind=eu={})).UTF8="utf-8",a.UTF16="utf-16",a.UTF32="utf-32";var tO=ec||(e.StaticRegistrationOptions=ec={});function tL(e){return e&&ti.string(e.id)&&e.id.length>0}tD(tL,"hasId"),tO.hasId=tL;var tM=ep||(e.TextDocumentRegistrationOptions=ep={});function tj(e){return e&&(null===e.documentSelector||ei.is(e.documentSelector))}tD(tj,"is"),tM.is=tj;var tF=ef||(e.WorkDoneProgressOptions=ef={});function tG(e){return ti.objectLiteral(e)&&(void 0===e.workDoneProgress||ti.boolean(e.workDoneProgress))}function tU(e){return e&&ti.boolean(e.workDoneProgress)}tD(tG,"is"),tF.is=tG,tD(tU,"hasWorkDoneProgress"),tF.hasWorkDoneProgress=tU,(s=ed||(e.InitializeRequest=ed={})).method="initialize",s.messageDirection=tr.MessageDirection.clientToServer,s.type=new tr.ProtocolRequestType(s.method),(em||(e.InitializeErrorCodes=em={})).unknownProtocolVersion=1,(o=eh||(e.InitializedNotification=eh={})).method="initialized",o.messageDirection=tr.MessageDirection.clientToServer,o.type=new tr.ProtocolNotificationType(o.method),(l=ey||(e.ShutdownRequest=ey={})).method="shutdown",l.messageDirection=tr.MessageDirection.clientToServer,l.type=new tr.ProtocolRequestType0(l.method),(u=eg||(e.ExitNotification=eg={})).method="exit",u.messageDirection=tr.MessageDirection.clientToServer,u.type=new tr.ProtocolNotificationType0(u.method),(c=eT||(e.DidChangeConfigurationNotification=eT={})).method="workspace/didChangeConfiguration",c.messageDirection=tr.MessageDirection.clientToServer,c.type=new tr.ProtocolNotificationType(c.method),(p=ev||(e.MessageType=ev={})).Error=1,p.Warning=2,p.Info=3,p.Log=4,p.Debug=5,(f=e$||(e.ShowMessageNotification=e$={})).method="window/showMessage",f.messageDirection=tr.MessageDirection.serverToClient,f.type=new tr.ProtocolNotificationType(f.method),(d=eR||(e.ShowMessageRequest=eR={})).method="window/showMessageRequest",d.messageDirection=tr.MessageDirection.serverToClient,d.type=new tr.ProtocolRequestType(d.method),(m=eE||(e.LogMessageNotification=eE={})).method="window/logMessage",m.messageDirection=tr.MessageDirection.serverToClient,m.type=new tr.ProtocolNotificationType(m.method),(h=eb||(e.TelemetryEventNotification=eb={})).method="telemetry/event",h.messageDirection=tr.MessageDirection.serverToClient,h.type=new tr.ProtocolNotificationType(h.method),(y=eA||(e.TextDocumentSyncKind=eA={})).None=0,y.Full=1,y.Incremental=2,(g=eC||(e.DidOpenTextDocumentNotification=eC={})).method="textDocument/didOpen",g.messageDirection=tr.MessageDirection.clientToServer,g.type=new tr.ProtocolNotificationType(g.method);var tB=eS||(e.TextDocumentContentChangeEvent=eS={});function tW(e){return null!=e&&"string"==typeof e.text&&void 0!==e.range&&(void 0===e.rangeLength||"number"==typeof e.rangeLength)}function tV(e){return null!=e&&"string"==typeof e.text&&void 0===e.range&&void 0===e.rangeLength}tD(tW,"isIncremental"),tB.isIncremental=tW,tD(tV,"isFull"),tB.isFull=tV,(T=ek||(e.DidChangeTextDocumentNotification=ek={})).method="textDocument/didChange",T.messageDirection=tr.MessageDirection.clientToServer,T.type=new tr.ProtocolNotificationType(T.method),(v=ex||(e.DidCloseTextDocumentNotification=ex={})).method="textDocument/didClose",v.messageDirection=tr.MessageDirection.clientToServer,v.type=new tr.ProtocolNotificationType(v.method),($=eN||(e.DidSaveTextDocumentNotification=eN={})).method="textDocument/didSave",$.messageDirection=tr.MessageDirection.clientToServer,$.type=new tr.ProtocolNotificationType($.method),(R=ew||(e.TextDocumentSaveReason=ew={})).Manual=1,R.AfterDelay=2,R.FocusOut=3,(E=eI||(e.WillSaveTextDocumentNotification=eI={})).method="textDocument/willSave",E.messageDirection=tr.MessageDirection.clientToServer,E.type=new tr.ProtocolNotificationType(E.method),(b=e_||(e.WillSaveTextDocumentWaitUntilRequest=e_={})).method="textDocument/willSaveWaitUntil",b.messageDirection=tr.MessageDirection.clientToServer,b.type=new tr.ProtocolRequestType(b.method),(A=eP||(e.DidChangeWatchedFilesNotification=eP={})).method="workspace/didChangeWatchedFiles",A.messageDirection=tr.MessageDirection.clientToServer,A.type=new tr.ProtocolNotificationType(A.method),(C=eO||(e.FileChangeType=eO={})).Created=1,C.Changed=2,C.Deleted=3;var tH=eD||(e.RelativePattern=eD={});function tY(e){return ti.objectLiteral(e)&&(tn.URI.is(e.baseUri)||tn.WorkspaceFolder.is(e.baseUri))&&ti.string(e.pattern)}tD(tY,"is"),tH.is=tY,(S=eL||(e.WatchKind=eL={})).Create=1,S.Change=2,S.Delete=4,(k=eM||(e.PublishDiagnosticsNotification=eM={})).method="textDocument/publishDiagnostics",k.messageDirection=tr.MessageDirection.serverToClient,k.type=new tr.ProtocolNotificationType(k.method),(x=ej||(e.CompletionTriggerKind=ej={})).Invoked=1,x.TriggerCharacter=2,x.TriggerForIncompleteCompletions=3,(N=eF||(e.CompletionRequest=eF={})).method="textDocument/completion",N.messageDirection=tr.MessageDirection.clientToServer,N.type=new tr.ProtocolRequestType(N.method),(w=eG||(e.CompletionResolveRequest=eG={})).method="completionItem/resolve",w.messageDirection=tr.MessageDirection.clientToServer,w.type=new tr.ProtocolRequestType(w.method),(I=ez||(e.HoverRequest=ez={})).method="textDocument/hover",I.messageDirection=tr.MessageDirection.clientToServer,I.type=new tr.ProtocolRequestType(I.method),(_=eK||(e.SignatureHelpTriggerKind=eK={})).Invoked=1,_.TriggerCharacter=2,_.ContentChange=3,(P=eq||(e.SignatureHelpRequest=eq={})).method="textDocument/signatureHelp",P.messageDirection=tr.MessageDirection.clientToServer,P.type=new tr.ProtocolRequestType(P.method),(O=eU||(e.DefinitionRequest=eU={})).method="textDocument/definition",O.messageDirection=tr.MessageDirection.clientToServer,O.type=new tr.ProtocolRequestType(O.method),(D=eB||(e.ReferencesRequest=eB={})).method="textDocument/references",D.messageDirection=tr.MessageDirection.clientToServer,D.type=new tr.ProtocolRequestType(D.method),(L=eW||(e.DocumentHighlightRequest=eW={})).method="textDocument/documentHighlight",L.messageDirection=tr.MessageDirection.clientToServer,L.type=new tr.ProtocolRequestType(L.method),(M=eV||(e.DocumentSymbolRequest=eV={})).method="textDocument/documentSymbol",M.messageDirection=tr.MessageDirection.clientToServer,M.type=new tr.ProtocolRequestType(M.method),(j=eH||(e.CodeActionRequest=eH={})).method="textDocument/codeAction",j.messageDirection=tr.MessageDirection.clientToServer,j.type=new tr.ProtocolRequestType(j.method),(F=eY||(e.CodeActionResolveRequest=eY={})).method="codeAction/resolve",F.messageDirection=tr.MessageDirection.clientToServer,F.type=new tr.ProtocolRequestType(F.method),(G=eQ||(e.WorkspaceSymbolRequest=eQ={})).method="workspace/symbol",G.messageDirection=tr.MessageDirection.clientToServer,G.type=new tr.ProtocolRequestType(G.method),(z=eZ||(e.WorkspaceSymbolResolveRequest=eZ={})).method="workspaceSymbol/resolve",z.messageDirection=tr.MessageDirection.clientToServer,z.type=new tr.ProtocolRequestType(z.method),(K=eX||(e.CodeLensRequest=eX={})).method="textDocument/codeLens",K.messageDirection=tr.MessageDirection.clientToServer,K.type=new tr.ProtocolRequestType(K.method),(q=eJ||(e.CodeLensResolveRequest=eJ={})).method="codeLens/resolve",q.messageDirection=tr.MessageDirection.clientToServer,q.type=new tr.ProtocolRequestType(q.method),(U=e0||(e.CodeLensRefreshRequest=e0={})).method="workspace/codeLens/refresh",U.messageDirection=tr.MessageDirection.serverToClient,U.type=new tr.ProtocolRequestType0(U.method),(B=e1||(e.DocumentLinkRequest=e1={})).method="textDocument/documentLink",B.messageDirection=tr.MessageDirection.clientToServer,B.type=new tr.ProtocolRequestType(B.method),(W=e2||(e.DocumentLinkResolveRequest=e2={})).method="documentLink/resolve",W.messageDirection=tr.MessageDirection.clientToServer,W.type=new tr.ProtocolRequestType(W.method),(V=e3||(e.DocumentFormattingRequest=e3={})).method="textDocument/formatting",V.messageDirection=tr.MessageDirection.clientToServer,V.type=new tr.ProtocolRequestType(V.method),(H=e4||(e.DocumentRangeFormattingRequest=e4={})).method="textDocument/rangeFormatting",H.messageDirection=tr.MessageDirection.clientToServer,H.type=new tr.ProtocolRequestType(H.method),(Y=e5||(e.DocumentRangesFormattingRequest=e5={})).method="textDocument/rangesFormatting",Y.messageDirection=tr.MessageDirection.clientToServer,Y.type=new tr.ProtocolRequestType(Y.method),(Q=e9||(e.DocumentOnTypeFormattingRequest=e9={})).method="textDocument/onTypeFormatting",Q.messageDirection=tr.MessageDirection.clientToServer,Q.type=new tr.ProtocolRequestType(Q.method),(e6||(e.PrepareSupportDefaultBehavior=e6={})).Identifier=1,(Z=e7||(e.RenameRequest=e7={})).method="textDocument/rename",Z.messageDirection=tr.MessageDirection.clientToServer,Z.type=new tr.ProtocolRequestType(Z.method),(X=e8||(e.PrepareRenameRequest=e8={})).method="textDocument/prepareRename",X.messageDirection=tr.MessageDirection.clientToServer,X.type=new tr.ProtocolRequestType(X.method),(J=te||(e.ExecuteCommandRequest=te={})).method="workspace/executeCommand",J.messageDirection=tr.MessageDirection.clientToServer,J.type=new tr.ProtocolRequestType(J.method),(ee=tt||(e.ApplyWorkspaceEditRequest=tt={})).method="workspace/applyEdit",ee.messageDirection=tr.MessageDirection.serverToClient,ee.type=new tr.ProtocolRequestType("workspace/applyEdit")}}),rR=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/connection.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.createProtocolConnection=void 0;var t=t5();function r(e,r,n,i){return t.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,t.createMessageConnection)(e,r,n,i)}tD(r,"createProtocolConnection"),e.createProtocolConnection=r}}),rE=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/api.js"(e){var t,r,n=e&&e.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:tD(function(){return t[r]},"get")}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=e&&e.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.LSPErrorCodes=e.createProtocolConnection=void 0,i(t5(),e),i((tq(),tz(tK)),e),i(t6(),e),i(r$(),e);var a=rR();Object.defineProperty(e,"createProtocolConnection",{enumerable:!0,get:tD(function(){return a.createProtocolConnection},"get")}),(t=r||(e.LSPErrorCodes=r={})).lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800}}),rb=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/browser/main.js"(e){var t=e&&e.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:tD(function(){return t[r]},"get")}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),r=e&&e.__exportStar||function(e,r){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(r,n)||t(r,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),e.createProtocolConnection=void 0;var n=t9();function i(e,t,r,i){return(0,n.createMessageConnection)(e,t,r,i)}r(t9(),e),r(rE(),e),tD(i,"createProtocolConnection"),e.createProtocolConnection=i}}),rA={};tM(rA,{AbstractAstReflection:()=>rI,AbstractCstNode:()=>TZ,AbstractLangiumParser:()=>T5,AbstractParserErrorMessageProvider:()=>T6,AbstractThreadedAsyncParser:()=>$5,AstUtils:()=>rK,BiMap:()=>vJ,Cancellation:()=>vS,CompositeCstNodeImpl:()=>TJ,ContextCache:()=>v6,CstNodeBuilder:()=>TQ,CstUtils:()=>rC,DEFAULT_TOKENIZE_OPTIONS:()=>$A,DONE_RESULT:()=>rF,DatatypeSymbol:()=>T2,DefaultAstNodeDescriptionProvider:()=>$f,DefaultAstNodeLocator:()=>$m,DefaultAsyncParser:()=>$4,DefaultCommentProvider:()=>$3,DefaultConfigurationProvider:()=>$y,DefaultDocumentBuilder:()=>$$,DefaultDocumentValidator:()=>$l,DefaultHydrator:()=>$7,DefaultIndexManager:()=>$R,DefaultJsonSerializer:()=>$n,DefaultLangiumDocumentFactory:()=>vB,DefaultLangiumDocuments:()=>vW,DefaultLangiumProfiler:()=>RT,DefaultLexer:()=>$C,DefaultLexerErrorMessageProvider:()=>$b,DefaultLinker:()=>vH,DefaultNameProvider:()=>vQ,DefaultReferenceDescriptionProvider:()=>$d,DefaultReferences:()=>vZ,DefaultScopeComputation:()=>v0,DefaultScopeProvider:()=>$e,DefaultServiceRegistry:()=>$i,DefaultTokenBuilder:()=>vA,DefaultValueConverter:()=>vC,DefaultWorkspaceLock:()=>$6,DefaultWorkspaceManager:()=>$E,Deferred:()=>vD,Disposable:()=>e9,DisposableCache:()=>v5,DocumentCache:()=>v7,DocumentState:()=>e3,DocumentValidator:()=>e5,EMPTY_SCOPE:()=>v4,EMPTY_STREAM:()=>rj,EmptyFileSystem:()=>Rd,EmptyFileSystemProvider:()=>Rf,ErrorWithLocation:()=>i5,GrammarAST:()=>r3,GrammarUtils:()=>i4,IndentationAwareLexer:()=>Rc,IndentationAwareTokenBuilder:()=>Ru,JSDocDocumentationProvider:()=>$2,LangiumCompletionParser:()=>T8,LangiumParser:()=>T9,LangiumParserErrorMessageProvider:()=>T7,LeafCstNodeImpl:()=>TX,LexingMode:()=>e7,MapScope:()=>v2,Module:()=>e6,MultiMap:()=>vX,MultiMapScope:()=>v3,OperationCancelled:()=>v_,ParserWorker:()=>$9,ProfilingTask:()=>Rv,Reduction:()=>eV,RefResolving:()=>vV,RegExpUtils:()=>i7,RootCstNodeImpl:()=>T1,SimpleCache:()=>v9,StreamImpl:()=>rD,StreamScope:()=>v1,TextDocument:()=>e0,TreeStreamImpl:()=>rz,URI:()=>vK,UriTrie:()=>vU,UriUtils:()=>e2,VALIDATE_EACH_NODE:()=>$o,ValidationCategory:()=>e4,ValidationRegistry:()=>$s,ValueConverter:()=>eJ,WorkspaceCache:()=>v8,assertCondition:()=>i6,assertUnreachable:()=>i9,createCompletionParser:()=>vR,createDefaultCoreModule:()=>$8,createDefaultSharedCoreModule:()=>Re,createGrammarConfig:()=>a7,createLangiumParser:()=>vE,createParser:()=>vn,delayNextTick:()=>vk,diagnosticData:()=>$a,eagerLoad:()=>Rn,getDiagnosticRange:()=>$u,indentationBuilderDefaultOptions:()=>Rl,inject:()=>Rt,interruptAndCheck:()=>vO,isAstNode:()=>rS,isAstNodeDescription:()=>rN,isAstNodeWithComment:()=>$t,isCompositeCstNode:()=>r_,isIMultiModeLexerDefinition:()=>$k,isJSDoc:()=>$w,isLeafCstNode:()=>rP,isLinkingError:()=>rw,isMultiReference:()=>rx,isNamed:()=>vY,isOperationCancelled:()=>vP,isReference:()=>rk,isRootCstNode:()=>rO,isTokenTypeArray:()=>$S,isTokenTypeDictionary:()=>$x,loadGrammarFromJson:()=>Rg,parseJSDoc:()=>$N,prepareLangiumParser:()=>vb,setInterruptionPeriod:()=>vI,startCancelableOperation:()=>vw,stream:()=>rG,toDiagnosticData:()=>$p,toDiagnosticSeverity:()=>$c});var rC={};function rS(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$type}function rk(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText&&"ref"in e}function rx(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText&&"items"in e}function rN(e){return"object"==typeof e&&null!==e&&"string"==typeof e.name&&"string"==typeof e.type&&"string"==typeof e.path}function rw(e){return"object"==typeof e&&null!==e&&"object"==typeof e.info&&"string"==typeof e.message}tM(rC,{DefaultNameRegexp:()=>iB,RangeComparison:()=>eH,compareRange:()=>iq,findCommentNode:()=>iV,findDeclarationNodeAtOffset:()=>iW,findLeafNodeAtOffset:()=>iY,findLeafNodeBeforeOffset:()=>iQ,flattenCst:()=>iF,getDatatypeNode:()=>iM,getInteriorNodes:()=>i1,getNextNode:()=>iJ,getPreviousNode:()=>iX,getStartlineNode:()=>i0,inRange:()=>iU,isChildNode:()=>iG,isCommentNode:()=>iH,streamCst:()=>ij,toDocumentSegment:()=>iK,tokenToRange:()=>iz}),tD(rS,"isAstNode"),tD(rk,"isReference"),tD(rx,"isMultiReference"),tD(rN,"isAstNodeDescription"),tD(rw,"isLinkingError");var rI=class{static{tD(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(e){let t=this.types[e.container.$type];if(!t)throw Error(`Type ${e.container.$type||"undefined"} not found.`);let r=t.properties[e.property]?.referenceType;if(!r)throw Error(`Property ${e.property||"undefined"} of type ${e.container.$type} is not a reference.`);return r}getTypeMetaData(e){let t=this.types[e];return t||{name:e,properties:{},superTypes:[]}}isInstance(e,t){return rS(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});let n=r[t];if(void 0!==n)return n;{let n=this.types[e],i=!!n&&n.superTypes.some(e=>this.isSubtype(e,t));return r[t]=i,i}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let t=this.getAllTypes(),r=[];for(let n of t)this.isSubtype(n,e)&&r.push(n);return this.allSubtypes[e]=r,r}}};function r_(e){return"object"==typeof e&&null!==e&&Array.isArray(e.content)}function rP(e){return"object"==typeof e&&null!==e&&"object"==typeof e.tokenType}function rO(e){return r_(e)&&"string"==typeof e.fullText}tD(r_,"isCompositeCstNode"),tD(rP,"isLeafCstNode"),tD(rO,"isRootCstNode");var rD=class e{static{tD(this,"StreamImpl")}constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let e={state:this.startFn(),next:tD(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){let e,t=[],r=this.iterator();do void 0!==(e=r.next()).value&&t.push(e.value);while(!e.done)return t}toSet(){return new Set(this)}toMap(e,t){return new Map(this.map(r=>[e?e(r):r,t?t(r):r]))}toString(){return this.join()}concat(t){return new e(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),e=>{let t;if(!e.firstDone){do if(!(t=this.nextFn(e.first)).done)return t;while(!t.done)e.firstDone=!0}do if(!(t=e.iterator.next()).done)return t;while(!t.done)return rF})}join(e=","){let t,r=this.iterator(),n="",i=!1;do(t=r.next()).done||(i&&(n+=e),n+=rL(t.value)),i=!0;while(!t.done)return n}indexOf(e,t=0){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(n>=t&&i.value===e)return n;i=r.next(),n++}return -1}every(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;)e(n.value,r),n=t.next(),r++}map(t){return new e(this.startFn,e=>{let{done:r,value:n}=this.nextFn(e);return r?rF:{done:!1,value:t(n)}})}filter(t){return new e(this.startFn,e=>{let r;do if(!(r=this.nextFn(e)).done&&t(r.value))return r;while(!r.done)return rF})}nonNullable(){return this.filter(e=>null!=e)}reduce(e,t){let r=this.iterator(),n=t,i=r.next();for(;!i.done;)n=void 0===n?i.value:e(n,i.value),i=r.next();return n}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){let n=e.next();if(n.done)return r;let i=this.recursiveReduce(e,t,r);return void 0===i?n.value:t(i,n.value)}find(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;){if(e(n.value))return r;n=t.next(),r++}return -1}includes(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(t){return new e(()=>({this:this.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}let{done:r,value:n}=this.nextFn(e.this);if(!r){let r=t(n);if(!rM(r))return{done:!1,value:r};e.iterator=r[Symbol.iterator]()}}while(e.iterator)return rF})}flat(t){if(void 0===t&&(t=1),t<=0)return this;let r=t>1?this.flat(t-1):this;return new e(()=>({this:r.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}let{done:t,value:n}=r.nextFn(e.this);if(!t)if(!rM(n))return{done:!1,value:n};else e.iterator=n[Symbol.iterator]()}while(e.iterator)return rF})}head(){let e=this.iterator().next();if(!e.done)return e.value}tail(t=1){return new e(()=>{let e=this.startFn();for(let r=0;r<t&&!this.nextFn(e).done;r++);return e},this.nextFn)}limit(t){return new e(()=>({size:0,state:this.startFn()}),e=>(e.size++,e.size>t)?rF:this.nextFn(e.state))}distinct(t){return new e(()=>({set:new Set,internalState:this.startFn()}),e=>{let r;do if(!(r=this.nextFn(e.internalState)).done){let n=t?t(r.value):r.value;if(!e.set.has(n))return e.set.add(n),r}while(!r.done)return rF})}exclude(e,t){let r=new Set;for(let n of e){let e=t?t(n):n;r.add(e)}return this.filter(e=>{let n=t?t(e):e;return!r.has(n)})}};function rL(e){return"string"==typeof e?e:void 0===e?"undefined":"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}function rM(e){return!!e&&"function"==typeof e[Symbol.iterator]}tD(rL,"toString"),tD(rM,"isIterable");var rj=new rD(()=>void 0,()=>rF),rF=Object.freeze({done:!0,value:void 0});function rG(...e){if(1===e.length){let t=e[0];if(t instanceof rD)return t;if(rM(t))return new rD(()=>t[Symbol.iterator](),e=>e.next());if("number"==typeof t.length)return new rD(()=>({index:0}),e=>e.index<t.length?{done:!1,value:t[e.index++]}:rF)}return e.length>1?new rD(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){let r=e[t.collIndex++];rM(r)?t.iterator=r[Symbol.iterator]():r&&"number"==typeof r.length&&(t.array=r)}}while(t.iterator||t.array||t.collIndex<e.length)return rF}):rj}tD(rG,"stream");var rz=class extends rD{static{tD(this,"TreeStreamImpl")}constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&(e.iterators.pop(),e.pruned=!1);e.iterators.length>0;){let r=e.iterators[e.iterators.length-1].next();if(!r.done)return e.iterators.push(t(r.value)[Symbol.iterator]()),r;e.iterators.pop()}return rF})}iterator(){let e={state:this.startFn(),next:tD(()=>this.nextFn(e.state),"next"),prune:tD(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};!function(e){function t(e){return e.reduce((e,t)=>e+t,0)}function r(e){return e.reduce((e,t)=>e*t,0)}function n(e){return e.reduce((e,t)=>Math.min(e,t))}function i(e){return e.reduce((e,t)=>Math.max(e,t))}tD(t,"sum"),e.sum=t,tD(r,"product"),e.product=r,tD(n,"min"),e.min=n,tD(i,"max"),e.max=i}(eV||(eV={}));var rK={};function rq(e,t={}){for(let[r,n]of Object.entries(e))!r.startsWith("$")&&(Array.isArray(n)?n.forEach((n,i)=>{rS(n)&&(n.$container=e,n.$containerProperty=r,n.$containerIndex=i,t.deep&&rq(n,t))}):rS(n)&&(n.$container=e,n.$containerProperty=r,t.deep&&rq(n,t)))}function rU(e,t){let r=e;for(;r;){if(t(r))return r;r=r.$container}}function rB(e,t){let r=e;for(;r;){if(t(r))return!0;r=r.$container}return!1}function rW(e){let t=rV(e).$document;if(!t)throw Error("AST node has no document.");return t}function rV(e){for(;e.$container;)e=e.$container;return e}function rH(e){return rk(e)?e.ref?[e.ref]:[]:rx(e)?e.items.map(e=>e.ref):[]}function rY(e,t){if(!e)throw Error("Node must be an AstNode.");let r=t?.range;return new rD(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let n=t.keys[t.keyIndex];if(!n.startsWith("$")){let i=e[n];if(rS(i)){if(t.keyIndex++,rX(i,r))return{done:!1,value:i}}else if(Array.isArray(i)){for(;t.arrayIndex<i.length;){let e=i[t.arrayIndex++];if(rS(e)&&rX(e,r))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return rF})}function rQ(e,t){if(!e)throw Error("Root node must be an AstNode.");return new rz(e,e=>rY(e,t))}function rZ(e,t){if(e){if(t?.range&&!rX(e,t.range))return new rz(e,()=>[])}else throw Error("Root node must be an AstNode.");return new rz(e,e=>rY(e,t),{includeRoot:!0})}function rX(e,t){if(!t)return!0;let r=e.$cstNode?.range;return!!r&&iU(r,t)}function rJ(e){return new rD(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let r=t.keys[t.keyIndex];if(!r.startsWith("$")){let n=e[r];if(rk(n)||rx(n))return t.keyIndex++,{done:!1,value:{reference:n,container:e,property:r}};if(Array.isArray(n)){for(;t.arrayIndex<n.length;){let i=t.arrayIndex++,a=n[i];if(rk(a)||rx(n))return{done:!1,value:{reference:a,container:e,property:r,index:i}}}t.arrayIndex=0}}t.keyIndex++}return rF})}function r0(e,t){for(let r of Object.values(e.getTypeMetaData(t.$type).properties))void 0!==r.defaultValue&&void 0===t[r.name]&&(t[r.name]=r1(r.defaultValue))}function r1(e){return Array.isArray(e)?[...e.map(r1)]:e}function r2(e,t,r){let n={$type:e.$type};for(let[i,a]of(r&&(r.set(e,n),r.set(n,e)),Object.entries(e)))if(!i.startsWith("$"))if(rS(a))n[i]=r2(a,t,r);else if(rk(a))n[i]=t(n,i,a.$refNode,a.$refText,a);else if(Array.isArray(a)){let e=[];for(let s of a)rS(s)?e.push(r2(s,t,r)):rk(s)?e.push(t(n,i,s.$refNode,s.$refText,s)):e.push(s);n[i]=e}else n[i]=a;return rq(n,{deep:!0}),n}tM(rK,{assignMandatoryProperties:()=>r0,copyAstNode:()=>r2,findRootNode:()=>rV,getContainerOfType:()=>rU,getDocument:()=>rW,getReferenceNodes:()=>rH,hasContainerOfType:()=>rB,linkContentToContainer:()=>rq,streamAllContents:()=>rQ,streamAst:()=>rZ,streamContents:()=>rY,streamReferences:()=>rJ}),tD(rq,"linkContentToContainer"),tD(rU,"getContainerOfType"),tD(rB,"hasContainerOfType"),tD(rW,"getDocument"),tD(rV,"findRootNode"),tD(rH,"getReferenceNodes"),tD(rY,"streamContents"),tD(rQ,"streamAllContents"),tD(rZ,"streamAst"),tD(rX,"isAstNodeInRange"),tD(rJ,"streamReferences"),tD(r0,"assignMandatoryProperties"),tD(r1,"copyDefaultValue"),tD(r2,"copyAstNode");var r3={};tM(r3,{AbstractElement:()=>r5,AbstractParserRule:()=>r6,AbstractRule:()=>r8,AbstractType:()=>nt,Action:()=>nn,Alternatives:()=>na,ArrayLiteral:()=>no,ArrayType:()=>nu,Assignment:()=>np,BooleanLiteral:()=>nd,CharacterRange:()=>nh,Condition:()=>ng,Conjunction:()=>nv,CrossReference:()=>nR,Disjunction:()=>nb,EndOfFile:()=>nC,Grammar:()=>nk,GrammarImport:()=>nN,Group:()=>nI,InferredType:()=>nP,InfixRule:()=>nD,InfixRuleOperatorList:()=>nM,InfixRuleOperators:()=>nF,Interface:()=>nz,Keyword:()=>nq,LangiumGrammarAstReflection:()=>iD,LangiumGrammarTerminals:()=>r4,NamedArgument:()=>nB,NegatedToken:()=>nV,Negation:()=>nY,NumberLiteral:()=>nZ,Parameter:()=>nJ,ParameterReference:()=>n1,ParserRule:()=>n3,ReferenceType:()=>n5,RegexToken:()=>n6,ReturnType:()=>n8,RuleCall:()=>it,SimpleType:()=>ii,StringLiteral:()=>is,TerminalAlternatives:()=>il,TerminalElement:()=>ic,TerminalGroup:()=>id,TerminalRule:()=>ih,TerminalRuleCall:()=>ig,Type:()=>iv,TypeAttribute:()=>iR,TypeDefinition:()=>ib,UnionType:()=>iC,UnorderedGroup:()=>ik,UntilToken:()=>iN,ValueLiteral:()=>iI,Wildcard:()=>iP,isAbstractElement:()=>r9,isAbstractParserRule:()=>r7,isAbstractRule:()=>ne,isAbstractType:()=>nr,isAction:()=>ni,isAlternatives:()=>ns,isArrayLiteral:()=>nl,isArrayType:()=>nc,isAssignment:()=>nf,isBooleanLiteral:()=>nm,isCharacterRange:()=>ny,isCondition:()=>nT,isConjunction:()=>n$,isCrossReference:()=>nE,isDisjunction:()=>nA,isEndOfFile:()=>nS,isGrammar:()=>nx,isGrammarImport:()=>nw,isGroup:()=>n_,isInferredType:()=>nO,isInfixRule:()=>nL,isInfixRuleOperatorList:()=>nj,isInfixRuleOperators:()=>nG,isInterface:()=>nK,isKeyword:()=>nU,isNamedArgument:()=>nW,isNegatedToken:()=>nH,isNegation:()=>nQ,isNumberLiteral:()=>nX,isParameter:()=>n0,isParameterReference:()=>n2,isParserRule:()=>n4,isReferenceType:()=>n9,isRegexToken:()=>n7,isReturnType:()=>ie,isRuleCall:()=>ir,isSimpleType:()=>ia,isStringLiteral:()=>io,isTerminalAlternatives:()=>iu,isTerminalElement:()=>ip,isTerminalGroup:()=>im,isTerminalRule:()=>iy,isTerminalRuleCall:()=>iT,isType:()=>i$,isTypeAttribute:()=>iE,isTypeDefinition:()=>iA,isUnionType:()=>iS,isUnorderedGroup:()=>ix,isUntilToken:()=>iw,isValueLiteral:()=>i_,isWildcard:()=>iO,reflection:()=>iL});var r4={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},r5={$type:"AbstractElement",cardinality:"cardinality"};function r9(e){return iL.isInstance(e,r5.$type)}tD(r9,"isAbstractElement");var r6={$type:"AbstractParserRule"};function r7(e){return iL.isInstance(e,r6.$type)}tD(r7,"isAbstractParserRule");var r8={$type:"AbstractRule"};function ne(e){return iL.isInstance(e,r8.$type)}tD(ne,"isAbstractRule");var nt={$type:"AbstractType"};function nr(e){return iL.isInstance(e,nt.$type)}tD(nr,"isAbstractType");var nn={$type:"Action",cardinality:"cardinality",feature:"feature",inferredType:"inferredType",operator:"operator",type:"type"};function ni(e){return iL.isInstance(e,nn.$type)}tD(ni,"isAction");var na={$type:"Alternatives",cardinality:"cardinality",elements:"elements"};function ns(e){return iL.isInstance(e,na.$type)}tD(ns,"isAlternatives");var no={$type:"ArrayLiteral",elements:"elements"};function nl(e){return iL.isInstance(e,no.$type)}tD(nl,"isArrayLiteral");var nu={$type:"ArrayType",elementType:"elementType"};function nc(e){return iL.isInstance(e,nu.$type)}tD(nc,"isArrayType");var np={$type:"Assignment",cardinality:"cardinality",feature:"feature",operator:"operator",predicate:"predicate",terminal:"terminal"};function nf(e){return iL.isInstance(e,np.$type)}tD(nf,"isAssignment");var nd={$type:"BooleanLiteral",true:"true"};function nm(e){return iL.isInstance(e,nd.$type)}tD(nm,"isBooleanLiteral");var nh={$type:"CharacterRange",cardinality:"cardinality",left:"left",lookahead:"lookahead",parenthesized:"parenthesized",right:"right"};function ny(e){return iL.isInstance(e,nh.$type)}tD(ny,"isCharacterRange");var ng={$type:"Condition"};function nT(e){return iL.isInstance(e,ng.$type)}tD(nT,"isCondition");var nv={$type:"Conjunction",left:"left",right:"right"};function n$(e){return iL.isInstance(e,nv.$type)}tD(n$,"isConjunction");var nR={$type:"CrossReference",cardinality:"cardinality",deprecatedSyntax:"deprecatedSyntax",isMulti:"isMulti",terminal:"terminal",type:"type"};function nE(e){return iL.isInstance(e,nR.$type)}tD(nE,"isCrossReference");var nb={$type:"Disjunction",left:"left",right:"right"};function nA(e){return iL.isInstance(e,nb.$type)}tD(nA,"isDisjunction");var nC={$type:"EndOfFile",cardinality:"cardinality"};function nS(e){return iL.isInstance(e,nC.$type)}tD(nS,"isEndOfFile");var nk={$type:"Grammar",imports:"imports",interfaces:"interfaces",isDeclared:"isDeclared",name:"name",rules:"rules",types:"types"};function nx(e){return iL.isInstance(e,nk.$type)}tD(nx,"isGrammar");var nN={$type:"GrammarImport",path:"path"};function nw(e){return iL.isInstance(e,nN.$type)}tD(nw,"isGrammarImport");var nI={$type:"Group",cardinality:"cardinality",elements:"elements",guardCondition:"guardCondition",predicate:"predicate"};function n_(e){return iL.isInstance(e,nI.$type)}tD(n_,"isGroup");var nP={$type:"InferredType",name:"name"};function nO(e){return iL.isInstance(e,nP.$type)}tD(nO,"isInferredType");var nD={$type:"InfixRule",call:"call",dataType:"dataType",inferredType:"inferredType",name:"name",operators:"operators",parameters:"parameters",returnType:"returnType"};function nL(e){return iL.isInstance(e,nD.$type)}tD(nL,"isInfixRule");var nM={$type:"InfixRuleOperatorList",associativity:"associativity",operators:"operators"};function nj(e){return iL.isInstance(e,nM.$type)}tD(nj,"isInfixRuleOperatorList");var nF={$type:"InfixRuleOperators",precedences:"precedences"};function nG(e){return iL.isInstance(e,nF.$type)}tD(nG,"isInfixRuleOperators");var nz={$type:"Interface",attributes:"attributes",name:"name",superTypes:"superTypes"};function nK(e){return iL.isInstance(e,nz.$type)}tD(nK,"isInterface");var nq={$type:"Keyword",cardinality:"cardinality",predicate:"predicate",value:"value"};function nU(e){return iL.isInstance(e,nq.$type)}tD(nU,"isKeyword");var nB={$type:"NamedArgument",calledByName:"calledByName",parameter:"parameter",value:"value"};function nW(e){return iL.isInstance(e,nB.$type)}tD(nW,"isNamedArgument");var nV={$type:"NegatedToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function nH(e){return iL.isInstance(e,nV.$type)}tD(nH,"isNegatedToken");var nY={$type:"Negation",value:"value"};function nQ(e){return iL.isInstance(e,nY.$type)}tD(nQ,"isNegation");var nZ={$type:"NumberLiteral",value:"value"};function nX(e){return iL.isInstance(e,nZ.$type)}tD(nX,"isNumberLiteral");var nJ={$type:"Parameter",name:"name"};function n0(e){return iL.isInstance(e,nJ.$type)}tD(n0,"isParameter");var n1={$type:"ParameterReference",parameter:"parameter"};function n2(e){return iL.isInstance(e,n1.$type)}tD(n2,"isParameterReference");var n3={$type:"ParserRule",dataType:"dataType",definition:"definition",entry:"entry",fragment:"fragment",inferredType:"inferredType",name:"name",parameters:"parameters",returnType:"returnType"};function n4(e){return iL.isInstance(e,n3.$type)}tD(n4,"isParserRule");var n5={$type:"ReferenceType",isMulti:"isMulti",referenceType:"referenceType"};function n9(e){return iL.isInstance(e,n5.$type)}tD(n9,"isReferenceType");var n6={$type:"RegexToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",regex:"regex"};function n7(e){return iL.isInstance(e,n6.$type)}tD(n7,"isRegexToken");var n8={$type:"ReturnType",name:"name"};function ie(e){return iL.isInstance(e,n8.$type)}tD(ie,"isReturnType");var it={$type:"RuleCall",arguments:"arguments",cardinality:"cardinality",predicate:"predicate",rule:"rule"};function ir(e){return iL.isInstance(e,it.$type)}tD(ir,"isRuleCall");var ii={$type:"SimpleType",primitiveType:"primitiveType",stringType:"stringType",typeRef:"typeRef"};function ia(e){return iL.isInstance(e,ii.$type)}tD(ia,"isSimpleType");var is={$type:"StringLiteral",value:"value"};function io(e){return iL.isInstance(e,is.$type)}tD(io,"isStringLiteral");var il={$type:"TerminalAlternatives",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function iu(e){return iL.isInstance(e,il.$type)}tD(iu,"isTerminalAlternatives");var ic={$type:"TerminalElement",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};function ip(e){return iL.isInstance(e,ic.$type)}tD(ip,"isTerminalElement");var id={$type:"TerminalGroup",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function im(e){return iL.isInstance(e,id.$type)}tD(im,"isTerminalGroup");var ih={$type:"TerminalRule",definition:"definition",fragment:"fragment",hidden:"hidden",name:"name",type:"type"};function iy(e){return iL.isInstance(e,ih.$type)}tD(iy,"isTerminalRule");var ig={$type:"TerminalRuleCall",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",rule:"rule"};function iT(e){return iL.isInstance(e,ig.$type)}tD(iT,"isTerminalRuleCall");var iv={$type:"Type",name:"name",type:"type"};function i$(e){return iL.isInstance(e,iv.$type)}tD(i$,"isType");var iR={$type:"TypeAttribute",defaultValue:"defaultValue",isOptional:"isOptional",name:"name",type:"type"};function iE(e){return iL.isInstance(e,iR.$type)}tD(iE,"isTypeAttribute");var ib={$type:"TypeDefinition"};function iA(e){return iL.isInstance(e,ib.$type)}tD(iA,"isTypeDefinition");var iC={$type:"UnionType",types:"types"};function iS(e){return iL.isInstance(e,iC.$type)}tD(iS,"isUnionType");var ik={$type:"UnorderedGroup",cardinality:"cardinality",elements:"elements"};function ix(e){return iL.isInstance(e,ik.$type)}tD(ix,"isUnorderedGroup");var iN={$type:"UntilToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function iw(e){return iL.isInstance(e,iN.$type)}tD(iw,"isUntilToken");var iI={$type:"ValueLiteral"};function i_(e){return iL.isInstance(e,iI.$type)}tD(i_,"isValueLiteral");var iP={$type:"Wildcard",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};function iO(e){return iL.isInstance(e,iP.$type)}tD(iO,"isWildcard");var iD=class extends rI{static{tD(this,"LangiumGrammarAstReflection")}constructor(){super(...arguments),this.types={AbstractElement:{name:r5.$type,properties:{cardinality:{name:r5.cardinality}},superTypes:[]},AbstractParserRule:{name:r6.$type,properties:{},superTypes:[r8.$type,nt.$type]},AbstractRule:{name:r8.$type,properties:{},superTypes:[]},AbstractType:{name:nt.$type,properties:{},superTypes:[]},Action:{name:nn.$type,properties:{cardinality:{name:nn.cardinality},feature:{name:nn.feature},inferredType:{name:nn.inferredType},operator:{name:nn.operator},type:{name:nn.type,referenceType:nt.$type}},superTypes:[r5.$type]},Alternatives:{name:na.$type,properties:{cardinality:{name:na.cardinality},elements:{name:na.elements,defaultValue:[]}},superTypes:[r5.$type]},ArrayLiteral:{name:no.$type,properties:{elements:{name:no.elements,defaultValue:[]}},superTypes:[iI.$type]},ArrayType:{name:nu.$type,properties:{elementType:{name:nu.elementType}},superTypes:[ib.$type]},Assignment:{name:np.$type,properties:{cardinality:{name:np.cardinality},feature:{name:np.feature},operator:{name:np.operator},predicate:{name:np.predicate},terminal:{name:np.terminal}},superTypes:[r5.$type]},BooleanLiteral:{name:nd.$type,properties:{true:{name:nd.true,defaultValue:!1}},superTypes:[ng.$type,iI.$type]},CharacterRange:{name:nh.$type,properties:{cardinality:{name:nh.cardinality},left:{name:nh.left},lookahead:{name:nh.lookahead},parenthesized:{name:nh.parenthesized,defaultValue:!1},right:{name:nh.right}},superTypes:[ic.$type]},Condition:{name:ng.$type,properties:{},superTypes:[]},Conjunction:{name:nv.$type,properties:{left:{name:nv.left},right:{name:nv.right}},superTypes:[ng.$type]},CrossReference:{name:nR.$type,properties:{cardinality:{name:nR.cardinality},deprecatedSyntax:{name:nR.deprecatedSyntax,defaultValue:!1},isMulti:{name:nR.isMulti,defaultValue:!1},terminal:{name:nR.terminal},type:{name:nR.type,referenceType:nt.$type}},superTypes:[r5.$type]},Disjunction:{name:nb.$type,properties:{left:{name:nb.left},right:{name:nb.right}},superTypes:[ng.$type]},EndOfFile:{name:nC.$type,properties:{cardinality:{name:nC.cardinality}},superTypes:[r5.$type]},Grammar:{name:nk.$type,properties:{imports:{name:nk.imports,defaultValue:[]},interfaces:{name:nk.interfaces,defaultValue:[]},isDeclared:{name:nk.isDeclared,defaultValue:!1},name:{name:nk.name},rules:{name:nk.rules,defaultValue:[]},types:{name:nk.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:nN.$type,properties:{path:{name:nN.path}},superTypes:[]},Group:{name:nI.$type,properties:{cardinality:{name:nI.cardinality},elements:{name:nI.elements,defaultValue:[]},guardCondition:{name:nI.guardCondition},predicate:{name:nI.predicate}},superTypes:[r5.$type]},InferredType:{name:nP.$type,properties:{name:{name:nP.name}},superTypes:[nt.$type]},InfixRule:{name:nD.$type,properties:{call:{name:nD.call},dataType:{name:nD.dataType},inferredType:{name:nD.inferredType},name:{name:nD.name},operators:{name:nD.operators},parameters:{name:nD.parameters,defaultValue:[]},returnType:{name:nD.returnType,referenceType:nt.$type}},superTypes:[r6.$type]},InfixRuleOperatorList:{name:nM.$type,properties:{associativity:{name:nM.associativity},operators:{name:nM.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:nF.$type,properties:{precedences:{name:nF.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:nz.$type,properties:{attributes:{name:nz.attributes,defaultValue:[]},name:{name:nz.name},superTypes:{name:nz.superTypes,defaultValue:[],referenceType:nt.$type}},superTypes:[nt.$type]},Keyword:{name:nq.$type,properties:{cardinality:{name:nq.cardinality},predicate:{name:nq.predicate},value:{name:nq.value}},superTypes:[r5.$type]},NamedArgument:{name:nB.$type,properties:{calledByName:{name:nB.calledByName,defaultValue:!1},parameter:{name:nB.parameter,referenceType:nJ.$type},value:{name:nB.value}},superTypes:[]},NegatedToken:{name:nV.$type,properties:{cardinality:{name:nV.cardinality},lookahead:{name:nV.lookahead},parenthesized:{name:nV.parenthesized,defaultValue:!1},terminal:{name:nV.terminal}},superTypes:[ic.$type]},Negation:{name:nY.$type,properties:{value:{name:nY.value}},superTypes:[ng.$type]},NumberLiteral:{name:nZ.$type,properties:{value:{name:nZ.value}},superTypes:[iI.$type]},Parameter:{name:nJ.$type,properties:{name:{name:nJ.name}},superTypes:[]},ParameterReference:{name:n1.$type,properties:{parameter:{name:n1.parameter,referenceType:nJ.$type}},superTypes:[ng.$type]},ParserRule:{name:n3.$type,properties:{dataType:{name:n3.dataType},definition:{name:n3.definition},entry:{name:n3.entry,defaultValue:!1},fragment:{name:n3.fragment,defaultValue:!1},inferredType:{name:n3.inferredType},name:{name:n3.name},parameters:{name:n3.parameters,defaultValue:[]},returnType:{name:n3.returnType,referenceType:nt.$type}},superTypes:[r6.$type]},ReferenceType:{name:n5.$type,properties:{isMulti:{name:n5.isMulti,defaultValue:!1},referenceType:{name:n5.referenceType}},superTypes:[ib.$type]},RegexToken:{name:n6.$type,properties:{cardinality:{name:n6.cardinality},lookahead:{name:n6.lookahead},parenthesized:{name:n6.parenthesized,defaultValue:!1},regex:{name:n6.regex}},superTypes:[ic.$type]},ReturnType:{name:n8.$type,properties:{name:{name:n8.name}},superTypes:[]},RuleCall:{name:it.$type,properties:{arguments:{name:it.arguments,defaultValue:[]},cardinality:{name:it.cardinality},predicate:{name:it.predicate},rule:{name:it.rule,referenceType:r8.$type}},superTypes:[r5.$type]},SimpleType:{name:ii.$type,properties:{primitiveType:{name:ii.primitiveType},stringType:{name:ii.stringType},typeRef:{name:ii.typeRef,referenceType:nt.$type}},superTypes:[ib.$type]},StringLiteral:{name:is.$type,properties:{value:{name:is.value}},superTypes:[iI.$type]},TerminalAlternatives:{name:il.$type,properties:{cardinality:{name:il.cardinality},elements:{name:il.elements,defaultValue:[]},lookahead:{name:il.lookahead},parenthesized:{name:il.parenthesized,defaultValue:!1}},superTypes:[ic.$type]},TerminalElement:{name:ic.$type,properties:{cardinality:{name:ic.cardinality},lookahead:{name:ic.lookahead},parenthesized:{name:ic.parenthesized,defaultValue:!1}},superTypes:[r5.$type]},TerminalGroup:{name:id.$type,properties:{cardinality:{name:id.cardinality},elements:{name:id.elements,defaultValue:[]},lookahead:{name:id.lookahead},parenthesized:{name:id.parenthesized,defaultValue:!1}},superTypes:[ic.$type]},TerminalRule:{name:ih.$type,properties:{definition:{name:ih.definition},fragment:{name:ih.fragment,defaultValue:!1},hidden:{name:ih.hidden,defaultValue:!1},name:{name:ih.name},type:{name:ih.type}},superTypes:[r8.$type]},TerminalRuleCall:{name:ig.$type,properties:{cardinality:{name:ig.cardinality},lookahead:{name:ig.lookahead},parenthesized:{name:ig.parenthesized,defaultValue:!1},rule:{name:ig.rule,referenceType:ih.$type}},superTypes:[ic.$type]},Type:{name:iv.$type,properties:{name:{name:iv.name},type:{name:iv.type}},superTypes:[nt.$type]},TypeAttribute:{name:iR.$type,properties:{defaultValue:{name:iR.defaultValue},isOptional:{name:iR.isOptional,defaultValue:!1},name:{name:iR.name},type:{name:iR.type}},superTypes:[]},TypeDefinition:{name:ib.$type,properties:{},superTypes:[]},UnionType:{name:iC.$type,properties:{types:{name:iC.types,defaultValue:[]}},superTypes:[ib.$type]},UnorderedGroup:{name:ik.$type,properties:{cardinality:{name:ik.cardinality},elements:{name:ik.elements,defaultValue:[]}},superTypes:[r5.$type]},UntilToken:{name:iN.$type,properties:{cardinality:{name:iN.cardinality},lookahead:{name:iN.lookahead},parenthesized:{name:iN.parenthesized,defaultValue:!1},terminal:{name:iN.terminal}},superTypes:[ic.$type]},ValueLiteral:{name:iI.$type,properties:{},superTypes:[]},Wildcard:{name:iP.$type,properties:{cardinality:{name:iP.cardinality},lookahead:{name:iP.lookahead},parenthesized:{name:iP.parenthesized,defaultValue:!1}},superTypes:[ic.$type]}}}},iL=new iD;function iM(e){let t=e,r=!1;for(;t;){let e=rU(t.grammarSource,n4);if(e&&e.dataType)t=t.container,r=!0;else if(r)return t;else break}}function ij(e){return new rz(e,e=>r_(e)?e.content:[],{includeRoot:!0})}function iF(e){return ij(e).filter(rP)}function iG(e,t){for(;e.container;)if((e=e.container)===t)return!0;return!1}function iz(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function iK(e){if(!e)return;let{offset:t,end:r,range:n}=e;return{range:n,offset:t,end:r,length:r-t}}function iq(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return eH.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return eH.After;let r=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,n=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return r&&n?eH.Inside:r?eH.OverlapBack:n?eH.OverlapFront:eH.Outside}function iU(e,t){return iq(e,t)>eH.After}tD(iM,"getDatatypeNode"),tD(ij,"streamCst"),tD(iF,"flattenCst"),tD(iG,"isChildNode"),tD(iz,"tokenToRange"),tD(iK,"toDocumentSegment"),(a=eH||(eH={}))[a.Before=0]="Before",a[a.After=1]="After",a[a.OverlapFront=2]="OverlapFront",a[a.OverlapBack=3]="OverlapBack",a[a.Inside=4]="Inside",a[a.Outside=5]="Outside",tD(iq,"compareRange"),tD(iU,"inRange");var iB=/^[\w\p{L}]$/u;function iW(e,t,r=iB){if(e){if(t>0){let n=t-e.offset,i=e.text.charAt(n);!r.test(i)&&t--}return iY(e,t)}}function iV(e,t){if(e){let r=iX(e,!0);if(r&&iH(r,t))return r;if(rO(e)){let r=e.content.findIndex(e=>!e.hidden);for(let n=r-1;n>=0;n--){let r=e.content[n];if(iH(r,t))return r}}}}function iH(e,t){return rP(e)&&t.includes(e.tokenType.name)}function iY(e,t){if(rP(e))return e;if(r_(e)){let r=iZ(e,t,!1);if(r)return iY(r,t)}}function iQ(e,t){if(rP(e))return e;if(r_(e)){let r=iZ(e,t,!0);if(r)return iQ(r,t)}}function iZ(e,t,r){let n,i=0,a=e.content.length-1;for(;i<=a;){let s=Math.floor((i+a)/2),o=e.content[s];if(o.offset<=t&&o.end>t)return o;o.end<=t?(n=r?o:void 0,i=s+1):a=s-1}return n}function iX(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e);for(;n>0;){n--;let e=r.content[n];if(t||!e.hidden)return e}e=r}}function iJ(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e),i=r.content.length-1;for(;n<i;){n++;let e=r.content[n];if(t||!e.hidden)return e}e=r}}function i0(e){let t;if(0===e.range.start.character)return e;let r=e.range.start.line,n=e;for(;e.container;){let i=e.container,a=t??i.content.indexOf(e);if(0===a?(e=i,t=void 0):(t=a-1,e=i.content[t]),e.range.start.line!==r)break;n=e}return n}function i1(e,t){let r=i2(e,t);return r?r.parent.content.slice(r.a+1,r.b):[]}function i2(e,t){let r,n=i3(e),i=i3(t);for(let e=0;e<n.length&&e<i.length;e++){let t=n[e],a=i[e];if(t.parent===a.parent)r={parent:t.parent,a:t.index,b:a.index};else break}return r}function i3(e){let t=[];for(;e.container;){let r=e.container,n=r.content.indexOf(e);t.push({parent:r,index:n}),e=r}return t.reverse()}tD(iW,"findDeclarationNodeAtOffset"),tD(iV,"findCommentNode"),tD(iH,"isCommentNode"),tD(iY,"findLeafNodeAtOffset"),tD(iQ,"findLeafNodeBeforeOffset"),tD(iZ,"binarySearch"),tD(iX,"getPreviousNode"),tD(iJ,"getNextNode"),tD(i0,"getStartlineNode"),tD(i1,"getInteriorNodes"),tD(i2,"getCommonParent"),tD(i3,"getParentChain");var i4={};tM(i4,{findAssignment:()=>aL,findNameAssignment:()=>aM,findNodeForKeyword:()=>aO,findNodeForProperty:()=>aI,findNodesForKeyword:()=>aP,findNodesForKeywordInternal:()=>aD,findNodesForProperty:()=>aw,getActionAtElement:()=>aF,getActionType:()=>aY,getAllReachableRules:()=>aC,getAllRulesUsedForCrossReferences:()=>ak,getCrossReferenceTerminal:()=>ax,getEntryRule:()=>ab,getExplicitRuleType:()=>aV,getHiddenRules:()=>aA,getRuleType:()=>aZ,getRuleTypeName:()=>aQ,getTypeName:()=>aH,isArrayCardinality:()=>az,isArrayOperator:()=>aK,isCommentTerminal:()=>aN,isDataType:()=>aB,isDataTypeRule:()=>aq,isOptionalCardinality:()=>aG,terminalRegex:()=>aX});var i5=class extends Error{static{tD(this,"ErrorWithLocation")}constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};function i9(e,t="Error: Got unexpected value."){throw Error(t)}function i6(e,t="Error: Condition is violated."){if(!e)throw Error(t)}tD(i9,"assertUnreachable"),tD(i6,"assertCondition");var i7={};function i8(e){return e.charCodeAt(0)}function ae(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function at(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function ar(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function an(){throw Error("Internal Error - Should never get here!")}function ai(e){return"Character"===e.type}tM(i7,{NEWLINE_REGEXP:()=>ad,escapeRegExp:()=>a$,getTerminalParts:()=>ay,isMultilineComment:()=>ag,isWhitespace:()=>av,partialMatches:()=>aR,partialRegExp:()=>aE,whitespaceCharacters:()=>aT}),tD(i8,"cc"),tD(ae,"insertToSet"),tD(at,"addFlag"),tD(ar,"ASSERT_EXISTS"),tD(an,"ASSERT_NEVER_REACH_HERE"),tD(ai,"isCharacter");var aa=[];for(let e=i8("0");e<=i8("9");e++)aa.push(e);var as=[i8("_")].concat(aa);for(let e=i8("a");e<=i8("z");e++)as.push(e);for(let e=i8("A");e<=i8("Z");e++)as.push(e);var ao=[i8(" "),i8("\f"),i8("\n"),i8("\r"),i8(" "),i8("\v"),i8(" "),i8("\xa0"),i8("\u1680"),i8("\u2000"),i8("\u2001"),i8("\u2002"),i8("\u2003"),i8("\u2004"),i8("\u2005"),i8("\u2006"),i8("\u2007"),i8("\u2008"),i8("\u2009"),i8("\u200A"),i8("\u2028"),i8("\u2029"),i8("\u202F"),i8("\u205F"),i8("\u3000"),i8("\uFEFF")],al=/[0-9a-fA-F]/,au=/[0-9]/,ac=/[1-9]/,ap=class{static{tD(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let t=this.disjunction();this.consumeChar("/");let r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":at(r,"global");break;case"i":at(r,"ignoreCase");break;case"m":at(r,"multiLine");break;case"u":at(r,"unicode");break;case"y":at(r,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break;case"<":switch(this.popChar()){case"=":t="Lookbehind";break;case"!":t="NegativeLookbehind"}}ar(t);let r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return an()}quantifier(e=!1){let t,r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":let n=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:n,atMost:n};break;case",":t=this.isDigit()?{atLeast:n,atMost:this.integerIncludingZero()}:{atLeast:n,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;ar(t)}if((!0!==e||void 0!==t)&&ar(t))return"?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e,t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}return(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),ar(e))?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):an()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[i8("\n"),i8("\r"),i8("\u2028"),i8("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=aa;break;case"D":e=aa,t=!0;break;case"s":e=ao;break;case"S":e=ao,t=!0;break;case"w":e=as;break;case"W":e=as,t=!0}return ar(e)?{type:"Set",value:e,complement:t}:an()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=i8("\f");break;case"n":e=i8("\n");break;case"r":e=i8("\r");break;case"t":e=i8(" ");break;case"v":e=i8("\v")}return ar(e)?{type:"Character",value:e}:an()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:i8("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:i8(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:i8(this.popChar())}}}characterClass(){let e=[],t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){let t=this.classAtom();if(t.type,ai(t)&&this.isRangeDash()){this.consumeChar("-");let r=this.classAtom();if(r.type,ai(r)){if(r.value<t.value)throw Error("Range out of order in character class");e.push({from:t.value,to:r.value})}else ae(t.value,e),e.push(i8("-")),ae(r.value,e)}else ae(t.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case"\n":case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:i8("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;this.consumeChar("("),"?"===this.peekChar(0)?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;let t=this.disjunction();this.consumeChar(")");let r={type:"Group",capturing:e,value:t};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(!1===ac.test(e))throw Error("Expecting a positive integer");for(;au.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(!1===au.test(e))throw Error("Expecting an integer");for(;au.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){let e=this.popChar();switch(e){case"\n":case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:i8(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return"-"===this.peekChar()&&this.isClassAtom(1)}isDigit(){return au.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return"?"===this.peekChar(1)&&("="===this.peekChar(2)||"!"===this.peekChar(2)||"<"===this.peekChar(2)&&("="===this.peekChar(3)||"!"===this.peekChar(3)));default:return!1}}isQuantifier(){let e=this.saveState();try{return void 0!==this.quantifier(!0)}catch(e){return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let r=0;r<e;r++){let e=this.popChar();if(!1===al.test(e))throw Error("Expecting a HexDecimal digits");t+=e}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){let e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(void 0!==e&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}},af=class{static{tD(this,"BaseRegExpVisitor")}visitChildren(e){for(let t in e){let r=e[t];e.hasOwnProperty(t)&&(void 0!==r.type?this.visit(r):Array.isArray(r)&&r.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Lookbehind":this.visitLookbehind(e);break;case"NegativeLookbehind":this.visitNegativeLookbehind(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitLookbehind(e){}visitNegativeLookbehind(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}},ad=/\r?\n/gm,am=new ap,ah=new class extends af{static{tD(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let t=String.fromCharCode(e.value);if(this.multiline||"\n"!==t||(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let e=a$(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){let t=new RegExp(this.regex.substring(e.loc.begin,e.loc.end));this.multiline=!!"\n".match(t)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){"Group"===e.type&&e.quantifier||super.visitChildren(e)}};function ay(e){try{"string"!=typeof e&&(e=e.source),e=`/${e}/`;let t=am.pattern(e),r=[];for(let n of t.value.value)ah.reset(e),ah.visit(n),r.push({start:ah.startRegexp,end:ah.endRegex});return r}catch{return[]}}function ag(e){try{return"string"==typeof e&&(e=new RegExp(e)),e=e.toString(),ah.reset(e),ah.visit(am.pattern(e)),ah.multiline}catch{return!1}}tD(ay,"getTerminalParts"),tD(ag,"isMultilineComment");var aT="\f\n\r \v \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF".split("");function av(e){let t="string"==typeof e?new RegExp(e):e;return aT.some(e=>t.test(e))}function a$(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function aR(e,t){let r=aE(e),n=t.match(r);return!!n&&n[0].length>0}function aE(e){"string"==typeof e&&(e=new RegExp(e));let t=e,r=e.source,n=0;function i(){let e="",a;function s(t){e+=r.substr(n,t),n+=t}function o(t){e+="(?:"+r.substr(n,t)+"|$)",n+=t}for(tD(s,"appendRaw"),tD(o,"appendOptional");n<r.length;)switch(r[n]){case"\\":switch(r[n+1]){case"c":o(3);break;case"x":o(4);break;case"u":o(t.unicode?"{"===r[n+2]?r.indexOf("}",n)-n+1:6:2);break;case"p":case"P":o(t.unicode?r.indexOf("}",n)-n+1:2);break;case"k":o(r.indexOf(">",n)-n+1);break;default:o(2)}break;case"[":(a=/\[(?:\\.|.)*?\]/g).lastIndex=n,o((a=a.exec(r)||[])[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":s(1);break;case"{":(a=/\{\d+,?\d*\}/g).lastIndex=n,(a=a.exec(r))?s(a[0].length):o(1);break;case"(":if("?"===r[n+1])switch(r[n+2]){case":":e+="(?:",n+=3,e+=i()+"|$)";break;case"=":e+="(?=",n+=3,e+=i()+")";break;case"!":a=n,n+=3,i(),e+=r.substr(a,n-a);break;case"<":switch(r[n+3]){case"=":case"!":a=n,n+=4,i(),e+=r.substr(a,n-a);break;default:s(r.indexOf(">",n)-n+1),e+=i()+"|$)"}}else s(1),e+=i()+"|$)";break;case")":return++n,e;default:o(1)}return e}return tD(i,"process"),new RegExp(i(),e.flags)}function ab(e){return e.rules.find(e=>n4(e)&&e.entry)}function aA(e){return e.rules.filter(e=>iy(e)&&e.hidden)}function aC(e,t){let r=new Set,n=ab(e);if(!n)return new Set(e.rules);for(let i of[n].concat(aA(e)))aS(i,r,t);let i=new Set;for(let t of e.rules)(r.has(t.name)||iy(t)&&t.hidden)&&i.add(t);return i}function aS(e,t,r){t.add(e.name),rQ(e).forEach(e=>{if(ir(e)||r&&iT(e)){let n=e.rule.ref;n&&!t.has(n.name)&&aS(n,t,r)}})}function ak(e){let t=new Set;return rQ(e).forEach(e=>{nE(e)&&(n4(e.type.ref)&&t.add(e.type.ref),nO(e.type.ref)&&n4(e.type.ref.$container)&&t.add(e.type.ref.$container))}),t}function ax(e){if(e.terminal)return e.terminal;if(e.type.ref){let t=aM(e.type.ref);return t?.terminal}}function aN(e){return e.hidden&&!av(aX(e))}function aw(e,t){return e&&t?a_(e,t,e.astNode,!0):[]}function aI(e,t,r){if(!e||!t)return;let n=a_(e,t,e.astNode,!0);if(0!==n.length)return r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0,n[r]}function a_(e,t,r,n){if(!n){let r=rU(e.grammarSource,nf);if(r&&r.feature===t)return[e]}return r_(e)&&e.astNode===r?e.content.flatMap(e=>a_(e,t,r,!1)):[]}function aP(e,t){return e?aD(e,t,e?.astNode):[]}function aO(e,t,r){if(!e)return;let n=aD(e,t,e?.astNode);if(0!==n.length)return r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0,n[r]}function aD(e,t,r){let n;if(e.astNode!==r)return[];if(nU(e.grammarSource)&&e.grammarSource.value===t)return[e];let i=ij(e).iterator(),a=[];do if(!(n=i.next()).done){let e=n.value;e.astNode===r?nU(e.grammarSource)&&e.grammarSource.value===t&&a.push(e):i.prune()}while(!n.done)return a}function aL(e){let t=e.astNode;for(;t===e.container?.astNode;){let t=rU(e.grammarSource,nf);if(t)return t;e=e.container}}function aM(e){let t=e;return nO(t)&&(ni(t.$container)?t=t.$container.$container:r7(t.$container)?t=t.$container:i9(t.$container)),aj(e,t,new Map)}function aj(e,t,r){function n(t,n){let i;return rU(t,nf)||(i=aj(n,n,r)),r.set(e,i),i}if(tD(n,"go"),r.has(e))return r.get(e);for(let i of(r.set(e,void 0),rQ(t)))if(nf(i)&&"name"===i.feature.toLowerCase())return r.set(e,i),i;else if(ir(i)&&n4(i.rule.ref))return n(i,i.rule.ref);else if(ia(i)&&i.typeRef?.ref)return n(i,i.typeRef.ref)}function aF(e){let t=e.$container;if(n_(t)){let r=t.elements,n=r.indexOf(e);for(let e=n-1;e>=0;e--){let t=r[e];if(ni(t))return t;{let t=rQ(r[e]).find(ni);if(t)return t}}}return r9(t)?aF(t):void 0}function aG(e,t){return"?"===e||"*"===e||n_(t)&&!!t.guardCondition}function az(e){return"*"===e||"+"===e}function aK(e){return"+="===e}function aq(e){return aU(e,new Set)}function aU(e,t){if(t.has(e))return!0;for(let r of(t.add(e),rQ(e)))if(ir(r)){if(!r.rule.ref||n4(r.rule.ref)&&!aU(r.rule.ref,t)||nL(r.rule.ref))return!1}else if(nf(r))return!1;else if(ni(r))return!1;return!!e.definition}function aB(e){return aW(e.type,new Set)}function aW(e,t){if(t.has(e))return!0;if(t.add(e),nc(e)||n9(e))return!1;if(iS(e))return e.types.every(e=>aW(e,t));{if(!ia(e))return!1;if(void 0!==e.primitiveType||void 0!==e.stringType)return!0;if(void 0===e.typeRef)return!1;let r=e.typeRef.ref;return!!i$(r)&&aW(r.type,t)}}function aV(e){if(!iy(e)){if(e.inferredType)return e.inferredType.name;else if(e.dataType)return e.dataType;else if(e.returnType){let t=e.returnType.ref;if(t)return t.name}}}function aH(e){if(r7(e))return n4(e)&&aq(e)?e.name:aV(e)??e.name;if(nK(e)||i$(e)||ie(e))return e.name;if(ni(e)){let t=aY(e);if(t)return t}else if(nO(e))return e.name;throw Error("Cannot get name of Unknown Type")}function aY(e){return e.inferredType?e.inferredType.name:e.type?.ref?aH(e.type.ref):void 0}function aQ(e){return iy(e)?e.type?.name??"string":n4(e)&&aq(e)?e.name:aV(e)??e.name}function aZ(e){return iy(e)?e.type?.name??"string":aV(e)??e.name}function aX(e){let t={s:!1,i:!1,u:!1};return new RegExp(a0(e.definition,t),Object.entries(t).filter(([,e])=>e).map(([e])=>e).join(""))}tD(av,"isWhitespace"),tD(a$,"escapeRegExp"),tD(aR,"partialMatches"),tD(aE,"partialRegExp"),tD(ab,"getEntryRule"),tD(aA,"getHiddenRules"),tD(aC,"getAllReachableRules"),tD(aS,"ruleDfs"),tD(ak,"getAllRulesUsedForCrossReferences"),tD(ax,"getCrossReferenceTerminal"),tD(aN,"isCommentTerminal"),tD(aw,"findNodesForProperty"),tD(aI,"findNodeForProperty"),tD(a_,"findNodesForPropertyInternal"),tD(aP,"findNodesForKeyword"),tD(aO,"findNodeForKeyword"),tD(aD,"findNodesForKeywordInternal"),tD(aL,"findAssignment"),tD(aM,"findNameAssignment"),tD(aj,"findNameAssignmentInternal"),tD(aF,"getActionAtElement"),tD(aG,"isOptionalCardinality"),tD(az,"isArrayCardinality"),tD(aK,"isArrayOperator"),tD(aq,"isDataTypeRule"),tD(aU,"isDataTypeRuleInternal"),tD(aB,"isDataType"),tD(aW,"isDataTypeInternal"),tD(aV,"getExplicitRuleType"),tD(aH,"getTypeName"),tD(aY,"getActionType"),tD(aQ,"getRuleTypeName"),tD(aZ,"getRuleType"),tD(aX,"terminalRegex");var aJ=/[\s\S]/.source;function a0(e,t){if(iu(e))return a1(e);if(im(e))return a2(e);if(ny(e))return a5(e);if(iT(e)){let t=e.rule.ref;if(!t)throw Error("Missing rule reference.");return a6(a0(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}if(nH(e))return a4(e);else if(iw(e))return a3(e);else if(n7(e)){let r=e.regex.lastIndexOf("/"),n=e.regex.substring(1,r),i=e.regex.substring(r+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),a6(n,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}else if(iO(e))return a6(aJ,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized});else throw Error(`Invalid terminal element: ${e?.$type}, ${e?.$cstNode?.text}`)}function a1(e){return a6(e.elements.map(e=>a0(e)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function a2(e){return a6(e.elements.map(e=>a0(e)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function a3(e){return a6(`${aJ}*?${a0(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function a4(e){return a6(`(?!${a0(e.terminal)})${aJ}*?`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function a5(e){return e.right?a6(`[${a9(e.left)}-${a9(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1}):a6(a9(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function a9(e){return a$(e.value)}function a6(e,t){if(t.parenthesized||t.lookahead||!1!==t.wrap){let r=t.lookahead??(t.parenthesized?"":"?:");e=`(${r}${e})`}return t.cardinality?`${e}${t.cardinality}`:e}function a7(e){let t=[];for(let r of e.Grammar.rules)iy(r)&&aN(r)&&ag(aX(r))&&t.push(r.name);return{multilineCommentRules:t,nameRegexp:iB}}tD(a0,"abstractElementToRegex"),tD(a1,"terminalAlternativesToRegex"),tD(a2,"terminalGroupToRegex"),tD(a3,"untilTokenToRegex"),tD(a4,"negateTokenToRegex"),tD(a5,"characterRangeToRegex"),tD(a9,"keywordToRegex"),tD(a6,"withCardinality"),tD(a7,"createGrammarConfig");var a8="object"==typeof global&&global&&global.Object===Object&&global,se="object"==typeof self&&self&&self.Object===Object&&self,st=a8||se||Function("return this")(),sr=st.Symbol,sn=Object.prototype,si=sn.hasOwnProperty,sa=sn.toString,ss=sr?sr.toStringTag:void 0;function so(e){var t=si.call(e,ss),r=e[ss];try{e[ss]=void 0;var n=!0}catch(e){}var i=sa.call(e);return n&&(t?e[ss]=r:delete e[ss]),i}tD(so,"getRawTag");var sl=Object.prototype.toString;function su(e){return sl.call(e)}tD(su,"objectToString");var sc=sr?sr.toStringTag:void 0;function sp(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":sc&&sc in Object(e)?so(e):su(e)}function sf(e){return null!=e&&"object"==typeof e}function sd(e){return"symbol"==typeof e||sf(e)&&"[object Symbol]"==sp(e)}function sm(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}tD(sp,"baseGetTag"),tD(sf,"isObjectLike"),tD(sd,"isSymbol"),tD(sm,"arrayMap");var sh=Array.isArray,sy=1/0,sg=sr?sr.prototype:void 0,sT=sg?sg.toString:void 0;function sv(e){if("string"==typeof e)return e;if(sh(e))return sm(e,sv)+"";if(sd(e))return sT?sT.call(e):"";var t=e+"";return"0"==t&&1/e==-sy?"-0":t}tD(sv,"baseToString");var s$=/\s/;function sR(e){for(var t=e.length;t--&&s$.test(e.charAt(t)););return t}tD(sR,"trimmedEndIndex");var sE=/^\s+/;function sb(e){return e?e.slice(0,sR(e)+1).replace(sE,""):e}function sA(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}tD(sb,"baseTrim"),tD(sA,"isObject");var sC=0/0,sS=/^[-+]0x[0-9a-f]+$/i,sk=/^0b[01]+$/i,sx=/^0o[0-7]+$/i,sN=parseInt;function sw(e){if("number"==typeof e)return e;if(sd(e))return sC;if(sA(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=sA(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=sb(e);var r=sk.test(e);return r||sx.test(e)?sN(e.slice(2),r?2:8):sS.test(e)?sC:+e}tD(sw,"toNumber");var sI=1/0;function s_(e){return e?(e=sw(e))===sI||e===-sI?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}function sP(e){var t=s_(e),r=t%1;return t==t?r?t-r:t:0}function sO(e){return e}function sD(e){if(!sA(e))return!1;var t=sp(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}tD(s_,"toFinite"),tD(sP,"toInteger"),tD(sO,"identity"),tD(sD,"isFunction");var sL=st["__core-js_shared__"],sM=(s=/[^.]+$/.exec(sL&&sL.keys&&sL.keys.IE_PROTO||""))?"Symbol(src)_1."+s:"";function sj(e){return!!sM&&sM in e}tD(sj,"isMasked");var sF=Function.prototype.toString;function sG(e){if(null!=e){try{return sF.call(e)}catch(e){}try{return e+""}catch(e){}}return""}tD(sG,"toSource");var sz=/^\[object .+?Constructor\]$/,sK=Object.prototype,sq=Function.prototype.toString,sU=sK.hasOwnProperty,sB=RegExp("^"+sq.call(sU).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sW(e){return!(!sA(e)||sj(e))&&(sD(e)?sB:sz).test(sG(e))}function sV(e,t){return null==e?void 0:e[t]}function sH(e,t){var r=sV(e,t);return sW(r)?r:void 0}tD(sW,"baseIsNative"),tD(sV,"getValue"),tD(sH,"getNative");var sY=sH(st,"WeakMap"),sQ=Object.create,sZ=function(){function e(){}return tD(e,"object"),function(t){if(!sA(t))return{};if(sQ)return sQ(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();function sX(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function sJ(){}function s0(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}tD(sX,"apply"),tD(sJ,"noop"),tD(s0,"copyArray");var s1=Date.now;function s2(e){var t=0,r=0;return function(){var n=s1(),i=16-(n-r);if(r=n,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function s3(e){return function(){return e}}tD(s2,"shortOut"),tD(s3,"constant");var s4=function(){try{var e=sH(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),s5=s2(s4?function(e,t){return s4(e,"toString",{configurable:!0,enumerable:!1,value:s3(t),writable:!0})}:sO);function s9(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}function s6(e,t,r,n){for(var i=e.length,a=r+(n?1:-1);n?a--:++a<i;)if(t(e[a],a,e))return a;return -1}function s7(e){return e!=e}function s8(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return -1}function oe(e,t,r){return t==t?s8(e,t,r):s6(e,s7,r)}function ot(e,t){return!!(null==e?0:e.length)&&oe(e,t,0)>-1}tD(s9,"arrayEach"),tD(s6,"baseFindIndex"),tD(s7,"baseIsNaN"),tD(s8,"strictIndexOf"),tD(oe,"baseIndexOf"),tD(ot,"arrayIncludes");var or=/^(?:0|[1-9]\d*)$/;function on(e,t){var r=typeof e;return!!(t=null==t?0x1fffffffffffff:t)&&("number"==r||"symbol"!=r&&or.test(e))&&e>-1&&e%1==0&&e<t}function oi(e,t,r){"__proto__"==t&&s4?s4(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}function oa(e,t){return e===t||e!=e&&t!=t}tD(on,"isIndex"),tD(oi,"baseAssignValue"),tD(oa,"eq");var os=Object.prototype.hasOwnProperty;function oo(e,t,r){var n=e[t];os.call(e,t)&&oa(n,r)&&(void 0!==r||t in e)||oi(e,t,r)}function ol(e,t,r,n){var i=!r;r||(r={});for(var a=-1,s=t.length;++a<s;){var o=t[a],l=n?n(r[o],e[o],o,r,e):void 0;void 0===l&&(l=e[o]),i?oi(r,o,l):oo(r,o,l)}return r}tD(oo,"assignValue"),tD(ol,"copyObject");var ou=Math.max;function oc(e,t,r){return t=ou(void 0===t?e.length-1:t,0),function(){for(var n=arguments,i=-1,a=ou(n.length-t,0),s=Array(a);++i<a;)s[i]=n[t+i];i=-1;for(var o=Array(t+1);++i<t;)o[i]=n[i];return o[t]=r(s),sX(e,this,o)}}function op(e,t){return s5(oc(e,t,sO),e+"")}function of(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=0x1fffffffffffff}function od(e){return null!=e&&of(e.length)&&!sD(e)}function om(e,t,r){if(!sA(r))return!1;var n=typeof t;return("number"==n?!!(od(r)&&on(t,r.length)):"string"==n&&t in r)&&oa(r[t],e)}function oh(e){return op(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&om(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++n<i;){var o=r[n];o&&e(t,o,n,a)}return t})}tD(oc,"overRest"),tD(op,"baseRest"),tD(of,"isLength"),tD(od,"isArrayLike"),tD(om,"isIterateeCall"),tD(oh,"createAssigner");var oy=Object.prototype;function og(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||oy)}function oT(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function ov(e){return sf(e)&&"[object Arguments]"==sp(e)}tD(og,"isPrototype"),tD(oT,"baseTimes"),tD(ov,"baseIsArguments");var o$=Object.prototype,oR=o$.hasOwnProperty,oE=o$.propertyIsEnumerable,ob=ov(function(){return arguments}())?ov:function(e){return sf(e)&&oR.call(e,"callee")&&!oE.call(e,"callee")};function oA(){return!1}tD(oA,"stubFalse");var oC="object"==typeof exports&&exports&&!exports.nodeType&&exports,oS=oC&&"object"==typeof module&&module&&!module.nodeType&&module,ok=oS&&oS.exports===oC?st.Buffer:void 0,ox=(ok?ok.isBuffer:void 0)||oA,oN={};function ow(e){return sf(e)&&of(e.length)&&!!oN[sp(e)]}function oI(e){return function(t){return e(t)}}oN["[object Float32Array]"]=oN["[object Float64Array]"]=oN["[object Int8Array]"]=oN["[object Int16Array]"]=oN["[object Int32Array]"]=oN["[object Uint8Array]"]=oN["[object Uint8ClampedArray]"]=oN["[object Uint16Array]"]=oN["[object Uint32Array]"]=!0,oN["[object Arguments]"]=oN["[object Array]"]=oN["[object ArrayBuffer]"]=oN["[object Boolean]"]=oN["[object DataView]"]=oN["[object Date]"]=oN["[object Error]"]=oN["[object Function]"]=oN["[object Map]"]=oN["[object Number]"]=oN["[object Object]"]=oN["[object RegExp]"]=oN["[object Set]"]=oN["[object String]"]=oN["[object WeakMap]"]=!1,tD(ow,"baseIsTypedArray"),tD(oI,"baseUnary");var o_="object"==typeof exports&&exports&&!exports.nodeType&&exports,oP=o_&&"object"==typeof module&&module&&!module.nodeType&&module,oO=oP&&oP.exports===o_&&a8.process,oD=function(){try{var e=oP&&oP.require&&oP.require("util").types;if(e)return e;return oO&&oO.binding&&oO.binding("util")}catch(e){}}(),oL=oD&&oD.isTypedArray,oM=oL?oI(oL):ow,oj=Object.prototype.hasOwnProperty;function oF(e,t){var r=sh(e),n=!r&&ob(e),i=!r&&!n&&ox(e),a=!r&&!n&&!i&&oM(e),s=r||n||i||a,o=s?oT(e.length,String):[],l=o.length;for(var u in e)(t||oj.call(e,u))&&!(s&&("length"==u||i&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||on(u,l)))&&o.push(u);return o}function oG(e,t){return function(r){return e(t(r))}}tD(oF,"arrayLikeKeys"),tD(oG,"overArg");var oz=oG(Object.keys,Object),oK=Object.prototype.hasOwnProperty;function oq(e){if(!og(e))return oz(e);var t=[];for(var r in Object(e))oK.call(e,r)&&"constructor"!=r&&t.push(r);return t}function oU(e){return od(e)?oF(e):oq(e)}tD(oq,"baseKeys"),tD(oU,"keys");var oB=Object.prototype.hasOwnProperty,oW=oh(function(e,t){if(og(t)||od(t))return void ol(t,oU(t),e);for(var r in t)oB.call(t,r)&&oo(e,r,t[r])});function oV(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}tD(oV,"nativeKeysIn");var oH=Object.prototype.hasOwnProperty;function oY(e){if(!sA(e))return oV(e);var t=og(e),r=[];for(var n in e)"constructor"==n&&(t||!oH.call(e,n))||r.push(n);return r}function oQ(e){return od(e)?oF(e,!0):oY(e)}tD(oY,"baseKeysIn"),tD(oQ,"keysIn");var oZ=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,oX=/^\w*$/;function oJ(e,t){if(sh(e))return!1;var r=typeof e;return!!("number"==r||"symbol"==r||"boolean"==r||null==e||sd(e))||oX.test(e)||!oZ.test(e)||null!=t&&e in Object(t)}tD(oJ,"isKey");var o0=sH(Object,"create");function o1(){this.__data__=o0?o0(null):{},this.size=0}function o2(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=!!t,t}tD(o1,"hashClear"),tD(o2,"hashDelete");var o3=Object.prototype.hasOwnProperty;function o4(e){var t=this.__data__;if(o0){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return o3.call(t,e)?t[e]:void 0}tD(o4,"hashGet");var o5=Object.prototype.hasOwnProperty;function o9(e){var t=this.__data__;return o0?void 0!==t[e]:o5.call(t,e)}function o6(e,t){var r=this.__data__;return this.size+=+!this.has(e),r[e]=o0&&void 0===t?"__lodash_hash_undefined__":t,this}function o7(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function o8(){this.__data__=[],this.size=0}function le(e,t){for(var r=e.length;r--;)if(oa(e[r][0],t))return r;return -1}tD(o9,"hashHas"),tD(o6,"hashSet"),tD(o7,"Hash"),o7.prototype.clear=o1,o7.prototype.delete=o2,o7.prototype.get=o4,o7.prototype.has=o9,o7.prototype.set=o6,tD(o8,"listCacheClear"),tD(le,"assocIndexOf");var lt=Array.prototype.splice;function lr(e){var t=this.__data__,r=le(t,e);return!(r<0)&&(r==t.length-1?t.pop():lt.call(t,r,1),--this.size,!0)}function ln(e){var t=this.__data__,r=le(t,e);return r<0?void 0:t[r][1]}function li(e){return le(this.__data__,e)>-1}function la(e,t){var r=this.__data__,n=le(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function ls(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}tD(lr,"listCacheDelete"),tD(ln,"listCacheGet"),tD(li,"listCacheHas"),tD(la,"listCacheSet"),tD(ls,"ListCache"),ls.prototype.clear=o8,ls.prototype.delete=lr,ls.prototype.get=ln,ls.prototype.has=li,ls.prototype.set=la;var lo=sH(st,"Map");function ll(){this.size=0,this.__data__={hash:new o7,map:new(lo||ls),string:new o7}}function lu(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}function lc(e,t){var r=e.__data__;return lu(t)?r["string"==typeof t?"string":"hash"]:r.map}function lp(e){var t=lc(this,e).delete(e);return this.size-=!!t,t}function lf(e){return lc(this,e).get(e)}function ld(e){return lc(this,e).has(e)}function lm(e,t){var r=lc(this,e),n=r.size;return r.set(e,t),this.size+=+(r.size!=n),this}function lh(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ly(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError("Expected a function");var r=tD(function(){var n=arguments,i=t?t.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=e.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(ly.Cache||lh),r}function lg(e){var t=ly(e,function(e){return 500===r.size&&r.clear(),e}),r=t.cache;return t}tD(ll,"mapCacheClear"),tD(lu,"isKeyable"),tD(lc,"getMapData"),tD(lp,"mapCacheDelete"),tD(lf,"mapCacheGet"),tD(ld,"mapCacheHas"),tD(lm,"mapCacheSet"),tD(lh,"MapCache"),lh.prototype.clear=ll,lh.prototype.delete=lp,lh.prototype.get=lf,lh.prototype.has=ld,lh.prototype.set=lm,tD(ly,"memoize"),ly.Cache=lh,tD(lg,"memoizeCapped");var lT=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,lv=/\\(\\)?/g,l$=lg(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(lT,function(e,r,n,i){t.push(n?i.replace(lv,"$1"):r||e)}),t});function lR(e){return null==e?"":sv(e)}function lE(e,t){return sh(e)?e:oJ(e,t)?[e]:l$(lR(e))}tD(lR,"toString"),tD(lE,"castPath");var lb=1/0;function lA(e){if("string"==typeof e||sd(e))return e;var t=e+"";return"0"==t&&1/e==-lb?"-0":t}function lC(e,t){t=lE(t,e);for(var r=0,n=t.length;null!=e&&r<n;)e=e[lA(t[r++])];return r&&r==n?e:void 0}function lS(e,t,r){var n=null==e?void 0:lC(e,t);return void 0===n?r:n}function lk(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}tD(lA,"toKey"),tD(lC,"baseGet"),tD(lS,"get"),tD(lk,"arrayPush");var lx=sr?sr.isConcatSpreadable:void 0;function lN(e){return sh(e)||ob(e)||!!(lx&&e&&e[lx])}function lw(e,t,r,n,i){var a=-1,s=e.length;for(r||(r=lN),i||(i=[]);++a<s;){var o=e[a];t>0&&r(o)?t>1?lw(o,t-1,r,n,i):lk(i,o):n||(i[i.length]=o)}return i}function lI(e){return(null==e?0:e.length)?lw(e,1):[]}tD(lN,"isFlattenable"),tD(lw,"baseFlatten"),tD(lI,"flatten");var l_=oG(Object.getPrototypeOf,Object);function lP(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(i);++n<i;)a[n]=e[n+t];return a}function lO(e,t,r,n){var i=-1,a=null==e?0:e.length;for(n&&a&&(r=e[++i]);++i<a;)r=t(r,e[i],i,e);return r}function lD(){this.__data__=new ls,this.size=0}function lL(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function lM(e){return this.__data__.get(e)}function lj(e){return this.__data__.has(e)}function lF(e,t){var r=this.__data__;if(r instanceof ls){var n=r.__data__;if(!lo||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new lh(n)}return r.set(e,t),this.size=r.size,this}function lG(e){var t=this.__data__=new ls(e);this.size=t.size}function lz(e,t){return e&&ol(t,oU(t),e)}function lK(e,t){return e&&ol(t,oQ(t),e)}tD(lP,"baseSlice"),tD(lO,"arrayReduce"),tD(lD,"stackClear"),tD(lL,"stackDelete"),tD(lM,"stackGet"),tD(lj,"stackHas"),tD(lF,"stackSet"),tD(lG,"Stack"),lG.prototype.clear=lD,lG.prototype.delete=lL,lG.prototype.get=lM,lG.prototype.has=lj,lG.prototype.set=lF,tD(lz,"baseAssign"),tD(lK,"baseAssignIn");var lq="object"==typeof exports&&exports&&!exports.nodeType&&exports,lU=lq&&"object"==typeof module&&module&&!module.nodeType&&module,lB=lU&&lU.exports===lq?st.Buffer:void 0,lW=lB?lB.allocUnsafe:void 0;function lV(e,t){if(t)return e.slice();var r=e.length,n=lW?lW(r):new e.constructor(r);return e.copy(n),n}function lH(e,t){for(var r=-1,n=null==e?0:e.length,i=0,a=[];++r<n;){var s=e[r];t(s,r,e)&&(a[i++]=s)}return a}function lY(){return[]}tD(lV,"cloneBuffer"),tD(lH,"arrayFilter"),tD(lY,"stubArray");var lQ=Object.prototype.propertyIsEnumerable,lZ=Object.getOwnPropertySymbols,lX=lZ?function(e){return null==e?[]:lH(lZ(e=Object(e)),function(t){return lQ.call(e,t)})}:lY;function lJ(e,t){return ol(e,lX(e),t)}tD(lJ,"copySymbols");var l0=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)lk(t,lX(e)),e=l_(e);return t}:lY;function l1(e,t){return ol(e,l0(e),t)}function l2(e,t,r){var n=t(e);return sh(e)?n:lk(n,r(e))}function l3(e){return l2(e,oU,lX)}function l4(e){return l2(e,oQ,l0)}tD(l1,"copySymbolsIn"),tD(l2,"baseGetAllKeys"),tD(l3,"getAllKeys"),tD(l4,"getAllKeysIn");var l5=sH(st,"DataView"),l9=sH(st,"Promise"),l6=sH(st,"Set"),l7="[object Map]",l8="[object Promise]",ue="[object Set]",ut="[object WeakMap]",ur="[object DataView]",un=sG(l5),ui=sG(lo),ua=sG(l9),us=sG(l6),uo=sG(sY),ul=sp;(l5&&ul(new l5(new ArrayBuffer(1)))!=ur||lo&&ul(new lo)!=l7||l9&&ul(l9.resolve())!=l8||l6&&ul(new l6)!=ue||sY&&ul(new sY)!=ut)&&(ul=tD(function(e){var t=sp(e),r="[object Object]"==t?e.constructor:void 0,n=r?sG(r):"";if(n)switch(n){case un:return ur;case ui:return l7;case ua:return l8;case us:return ue;case uo:return ut}return t},"getTag"));var uu=ul,uc=Object.prototype.hasOwnProperty;function up(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&uc.call(e,"index")&&(r.index=e.index,r.input=e.input),r}tD(up,"initCloneArray");var uf=st.Uint8Array;function ud(e){var t=new e.constructor(e.byteLength);return new uf(t).set(new uf(e)),t}function um(e,t){var r=t?ud(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}tD(ud,"cloneArrayBuffer"),tD(um,"cloneDataView");var uh=/\w*$/;function uy(e){var t=new e.constructor(e.source,uh.exec(e));return t.lastIndex=e.lastIndex,t}tD(uy,"cloneRegExp");var ug=sr?sr.prototype:void 0,uT=ug?ug.valueOf:void 0;function uv(e){return uT?Object(uT.call(e)):{}}function u$(e,t){var r=t?ud(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function uR(e,t,r){var n=e.constructor;switch(t){case"[object ArrayBuffer]":return ud(e);case"[object Boolean]":case"[object Date]":return new n(+e);case"[object DataView]":return um(e,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return u$(e,r);case"[object Map]":case"[object Set]":return new n;case"[object Number]":case"[object String]":return new n(e);case"[object RegExp]":return uy(e);case"[object Symbol]":return uv(e)}}function uE(e){return"function"!=typeof e.constructor||og(e)?{}:sZ(l_(e))}function ub(e){return sf(e)&&"[object Map]"==uu(e)}tD(uv,"cloneSymbol"),tD(u$,"cloneTypedArray"),tD(uR,"initCloneByTag"),tD(uE,"initCloneObject"),tD(ub,"baseIsMap");var uA=oD&&oD.isMap,uC=uA?oI(uA):ub;function uS(e){return sf(e)&&"[object Set]"==uu(e)}tD(uS,"baseIsSet");var uk=oD&&oD.isSet,ux=uk?oI(uk):uS,uN="[object Arguments]",uw="[object Function]",uI="[object Object]",u_={};function uP(e,t,r,n,i,a){var s,o=1&t,l=2&t,u=4&t;if(r&&(s=i?r(e,n,i,a):r(e)),void 0!==s)return s;if(!sA(e))return e;var c=sh(e);if(c){if(s=up(e),!o)return s0(e,s)}else{var p=uu(e),f=p==uw||"[object GeneratorFunction]"==p;if(ox(e))return lV(e,o);if(p==uI||p==uN||f&&!i){if(s=l||f?{}:uE(e),!o)return l?l1(e,lK(s,e)):lJ(e,lz(s,e))}else{if(!u_[p])return i?e:{};s=uR(e,p,o)}}a||(a=new lG);var d=a.get(e);if(d)return d;a.set(e,s),ux(e)?e.forEach(function(n){s.add(uP(n,t,r,n,e,a))}):uC(e)&&e.forEach(function(n,i){s.set(i,uP(n,t,r,i,e,a))});var m=u?l?l4:l3:l?oQ:oU,h=c?void 0:m(e);return s9(h||e,function(n,i){h&&(n=e[i=n]),oo(s,i,uP(n,t,r,i,e,a))}),s}function uO(e){return uP(e,4)}function uD(e){for(var t=-1,r=null==e?0:e.length,n=0,i=[];++t<r;){var a=e[t];a&&(i[n++]=a)}return i}function uL(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}function uM(e){return this.__data__.has(e)}function uj(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new lh;++t<r;)this.add(e[t])}function uF(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}function uG(e,t){return e.has(t)}function uz(e,t,r,n,i,a){var s=1&r,o=e.length,l=t.length;if(o!=l&&!(s&&l>o))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var p=-1,f=!0,d=2&r?new uj:void 0;for(a.set(e,t),a.set(t,e);++p<o;){var m=e[p],h=t[p];if(n)var y=s?n(h,m,p,t,e,a):n(m,h,p,e,t,a);if(void 0!==y){if(y)continue;f=!1;break}if(d){if(!uF(t,function(e,t){if(!uG(d,t)&&(m===e||i(m,e,r,n,a)))return d.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,r,n,a))){f=!1;break}}return a.delete(e),a.delete(t),f}function uK(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}function uq(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}u_[uN]=u_["[object Array]"]=u_["[object ArrayBuffer]"]=u_["[object DataView]"]=u_["[object Boolean]"]=u_["[object Date]"]=u_["[object Float32Array]"]=u_["[object Float64Array]"]=u_["[object Int8Array]"]=u_["[object Int16Array]"]=u_["[object Int32Array]"]=u_["[object Map]"]=u_["[object Number]"]=u_[uI]=u_["[object RegExp]"]=u_["[object Set]"]=u_["[object String]"]=u_["[object Symbol]"]=u_["[object Uint8Array]"]=u_["[object Uint8ClampedArray]"]=u_["[object Uint16Array]"]=u_["[object Uint32Array]"]=!0,u_["[object Error]"]=u_[uw]=u_["[object WeakMap]"]=!1,tD(uP,"baseClone"),tD(uO,"clone"),tD(uD,"compact"),tD(uL,"setCacheAdd"),tD(uM,"setCacheHas"),tD(uj,"SetCache"),uj.prototype.add=uj.prototype.push=uL,uj.prototype.has=uM,tD(uF,"arraySome"),tD(uG,"cacheHas"),tD(uz,"equalArrays"),tD(uK,"mapToArray"),tD(uq,"setToArray");var uU=sr?sr.prototype:void 0,uB=uU?uU.valueOf:void 0;function uW(e,t,r,n,i,a,s){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)break;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":if(e.byteLength!=t.byteLength||!a(new uf(e),new uf(t)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return oa(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var o=uK;case"[object Set]":var l=1&n;if(o||(o=uq),e.size!=t.size&&!l)break;var u=s.get(e);if(u)return u==t;n|=2,s.set(e,t);var c=uz(o(e),o(t),n,i,a,s);return s.delete(e),c;case"[object Symbol]":if(uB)return uB.call(e)==uB.call(t)}return!1}tD(uW,"equalByTag");var uV=Object.prototype.hasOwnProperty;function uH(e,t,r,n,i,a){var s=1&r,o=l3(e),l=o.length;if(l!=l3(t).length&&!s)return!1;for(var u=l;u--;){var c=o[u];if(!(s?c in t:uV.call(t,c)))return!1}var p=a.get(e),f=a.get(t);if(p&&f)return p==t&&f==e;var d=!0;a.set(e,t),a.set(t,e);for(var m=s;++u<l;){var h=e[c=o[u]],y=t[c];if(n)var g=s?n(y,h,c,t,e,a):n(h,y,c,e,t,a);if(!(void 0===g?h===y||i(h,y,r,n,a):g)){d=!1;break}m||(m="constructor"==c)}if(d&&!m){var T=e.constructor,v=t.constructor;T!=v&&"constructor"in e&&"constructor"in t&&!("function"==typeof T&&T instanceof T&&"function"==typeof v&&v instanceof v)&&(d=!1)}return a.delete(e),a.delete(t),d}tD(uH,"equalObjects");var uY="[object Arguments]",uQ="[object Array]",uZ="[object Object]",uX=Object.prototype.hasOwnProperty;function uJ(e,t,r,n,i,a){var s=sh(e),o=sh(t),l=s?uQ:uu(e),u=o?uQ:uu(t);l=l==uY?uZ:l,u=u==uY?uZ:u;var c=l==uZ,p=u==uZ,f=l==u;if(f&&ox(e)){if(!ox(t))return!1;s=!0,c=!1}if(f&&!c)return a||(a=new lG),s||oM(e)?uz(e,t,r,n,i,a):uW(e,t,l,r,n,i,a);if(!(1&r)){var d=c&&uX.call(e,"__wrapped__"),m=p&&uX.call(t,"__wrapped__");if(d||m){var h=d?e.value():e,y=m?t.value():t;return a||(a=new lG),i(h,y,r,n,a)}}return!!f&&(a||(a=new lG),uH(e,t,r,n,i,a))}function u0(e,t,r,n,i){return e===t||(null!=e&&null!=t&&(sf(e)||sf(t))?uJ(e,t,r,n,u0,i):e!=e&&t!=t)}function u1(e,t,r,n){var i=r.length,a=i,s=!n;if(null==e)return!a;for(e=Object(e);i--;){var o=r[i];if(s&&o[2]?o[1]!==e[o[0]]:!(o[0]in e))return!1}for(;++i<a;){var l=(o=r[i])[0],u=e[l],c=o[1];if(s&&o[2]){if(void 0===u&&!(l in e))return!1}else{var p=new lG;if(n)var f=n(u,c,l,e,t,p);if(!(void 0===f?u0(c,u,3,n,p):f))return!1}}return!0}function u2(e){return e==e&&!sA(e)}function u3(e){for(var t=oU(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,u2(i)]}return t}function u4(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}}function u5(e){var t=u3(e);return 1==t.length&&t[0][2]?u4(t[0][0],t[0][1]):function(r){return r===e||u1(r,e,t)}}function u9(e,t){return null!=e&&t in Object(e)}function u6(e,t,r){t=lE(t,e);for(var n=-1,i=t.length,a=!1;++n<i;){var s=lA(t[n]);if(!(a=null!=e&&r(e,s)))break;e=e[s]}return a||++n!=i?a:!!(i=null==e?0:e.length)&&of(i)&&on(s,i)&&(sh(e)||ob(e))}function u7(e,t){return null!=e&&u6(e,t,u9)}function u8(e,t){return oJ(e)&&u2(t)?u4(lA(e),t):function(r){var n=lS(r,e);return void 0===n&&n===t?u7(r,e):u0(t,n,3)}}function ce(e){return function(t){return null==t?void 0:t[e]}}function ct(e){return function(t){return lC(t,e)}}function cr(e){return oJ(e)?ce(lA(e)):ct(e)}function cn(e){return"function"==typeof e?e:null==e?sO:"object"==typeof e?sh(e)?u8(e[0],e[1]):u5(e):cr(e)}function ci(e,t,r,n){for(var i=-1,a=null==e?0:e.length;++i<a;){var s=e[i];t(n,s,r(s),e)}return n}function ca(e){return function(t,r,n){for(var i=-1,a=Object(t),s=n(t),o=s.length;o--;){var l=s[e?o:++i];if(!1===r(a[l],l,a))break}return t}}tD(uJ,"baseIsEqualDeep"),tD(u0,"baseIsEqual"),tD(u1,"baseIsMatch"),tD(u2,"isStrictComparable"),tD(u3,"getMatchData"),tD(u4,"matchesStrictComparable"),tD(u5,"baseMatches"),tD(u9,"baseHasIn"),tD(u6,"hasPath"),tD(u7,"hasIn"),tD(u8,"baseMatchesProperty"),tD(ce,"baseProperty"),tD(ct,"basePropertyDeep"),tD(cr,"property"),tD(cn,"baseIteratee"),tD(ci,"arrayAggregator"),tD(ca,"createBaseFor");var cs=ca();function co(e,t){return e&&cs(e,t,oU)}function cl(e,t){return function(r,n){if(null==r)return r;if(!od(r))return e(r,n);for(var i=r.length,a=t?i:-1,s=Object(r);(t?a--:++a<i)&&!1!==n(s[a],a,s););return r}}tD(co,"baseForOwn"),tD(cl,"createBaseEach");var cu=cl(co);function cc(e,t,r,n){return cu(e,function(e,i,a){t(n,e,r(e),a)}),n}function cp(e,t){return function(r,n){var i=sh(r)?ci:cc,a=t?t():{};return i(r,e,cn(n,2),a)}}tD(cc,"baseAggregator"),tD(cp,"createAggregator");var cf=Object.prototype,cd=cf.hasOwnProperty,cm=op(function(e,t){e=Object(e);var r=-1,n=t.length,i=n>2?t[2]:void 0;for(i&&om(t[0],t[1],i)&&(n=1);++r<n;)for(var a=t[r],s=oQ(a),o=-1,l=s.length;++o<l;){var u=s[o],c=e[u];(void 0===c||oa(c,cf[u])&&!cd.call(e,u))&&(e[u]=a[u])}return e});function ch(e){return sf(e)&&od(e)}function cy(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}function cg(e,t,r,n){var i=-1,a=ot,s=!0,o=e.length,l=[],u=t.length;if(!o)return l;r&&(t=sm(t,oI(r))),n?(a=cy,s=!1):t.length>=200&&(a=uG,s=!1,t=new uj(t));t:for(;++i<o;){var c=e[i],p=null==r?c:r(c);if(c=n||0!==c?c:0,s&&p==p){for(var f=u;f--;)if(t[f]===p)continue t;l.push(c)}else a(t,p,n)||l.push(c)}return l}tD(ch,"isArrayLikeObject"),tD(cy,"arrayIncludesWith"),tD(cg,"baseDifference");var cT=op(function(e,t){return ch(e)?cg(e,lw(t,1,ch,!0)):[]});function cv(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}function c$(e,t,r){var n=null==e?0:e.length;return n?lP(e,(t=r||void 0===t?1:sP(t))<0?0:t,n):[]}function cR(e,t,r){var n=null==e?0:e.length;return n?lP(e,0,(t=n-(t=r||void 0===t?1:sP(t)))<0?0:t):[]}function cE(e){return"function"==typeof e?e:sO}function cb(e,t){return(sh(e)?s9:cu)(e,cE(t))}function cA(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(!t(e[r],r,e))return!1;return!0}function cC(e,t){var r=!0;return cu(e,function(e,n,i){return r=!!t(e,n,i)}),r}function cS(e,t,r){var n=sh(e)?cA:cC;return r&&om(e,t,r)&&(t=void 0),n(e,cn(t,3))}function ck(e,t){var r=[];return cu(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r}function cx(e,t){return(sh(e)?lH:ck)(e,cn(t,3))}function cN(e){return function(t,r,n){var i=Object(t);if(!od(t)){var a=cn(r,3);t=oU(t),r=tD(function(e){return a(i[e],e,i)},"predicate")}var s=e(t,r,n);return s>-1?i[a?t[s]:s]:void 0}}tD(cv,"last"),tD(c$,"drop"),tD(cR,"dropRight"),tD(cE,"castFunction"),tD(cb,"forEach"),tD(cA,"arrayEvery"),tD(cC,"baseEvery"),tD(cS,"every"),tD(ck,"baseFilter"),tD(cx,"filter"),tD(cN,"createFind");var cw=Math.max;function cI(e,t,r){var n=null==e?0:e.length;if(!n)return -1;var i=null==r?0:sP(r);return i<0&&(i=cw(n+i,0)),s6(e,cn(t,3),i)}tD(cI,"findIndex");var c_=cN(cI);function cP(e){return e&&e.length?e[0]:void 0}function cO(e,t){var r=-1,n=od(e)?Array(e.length):[];return cu(e,function(e,i,a){n[++r]=t(e,i,a)}),n}function cD(e,t){return(sh(e)?sm:cO)(e,cn(t,3))}function cL(e,t){return lw(cD(e,t),1)}tD(cP,"head"),tD(cO,"baseMap"),tD(cD,"map"),tD(cL,"flatMap");var cM=Object.prototype.hasOwnProperty,cj=cp(function(e,t,r){cM.call(e,r)?e[r].push(t):oi(e,r,[t])}),cF=Object.prototype.hasOwnProperty;function cG(e,t){return null!=e&&cF.call(e,t)}function cz(e,t){return null!=e&&u6(e,t,cG)}function cK(e){return"string"==typeof e||!sh(e)&&sf(e)&&"[object String]"==sp(e)}function cq(e,t){return sm(t,function(t){return e[t]})}function cU(e){return null==e?[]:cq(e,oU(e))}tD(cG,"baseHas"),tD(cz,"has"),tD(cK,"isString"),tD(cq,"baseValues"),tD(cU,"values");var cB=Math.max;function cW(e,t,r,n){e=od(e)?e:cU(e),r=r&&!n?sP(r):0;var i=e.length;return r<0&&(r=cB(i+r,0)),cK(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&oe(e,t,r)>-1}tD(cW,"includes");var cV=Math.max;function cH(e,t,r){var n=null==e?0:e.length;if(!n)return -1;var i=null==r?0:sP(r);return i<0&&(i=cV(n+i,0)),oe(e,t,i)}tD(cH,"indexOf");var cY=Object.prototype.hasOwnProperty;function cQ(e){if(null==e)return!0;if(od(e)&&(sh(e)||"string"==typeof e||"function"==typeof e.splice||ox(e)||oM(e)||ob(e)))return!e.length;var t=uu(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(og(e))return!oq(e).length;for(var r in e)if(cY.call(e,r))return!1;return!0}function cZ(e){return sf(e)&&"[object RegExp]"==sp(e)}tD(cQ,"isEmpty"),tD(cZ,"baseIsRegExp");var cX=oD&&oD.isRegExp,cJ=cX?oI(cX):cZ;function c0(e){return void 0===e}function c1(e){if("function"!=typeof e)throw TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function c2(e,t,r,n){if(!sA(e))return e;t=lE(t,e);for(var i=-1,a=t.length,s=a-1,o=e;null!=o&&++i<a;){var l=lA(t[i]),u=r;if("__proto__"===l||"constructor"===l||"prototype"===l)break;if(i!=s){var c=o[l];void 0===(u=n?n(c,l,o):void 0)&&(u=sA(c)?c:on(t[i+1])?[]:{})}oo(o,l,u),o=o[l]}return e}function c3(e,t,r){for(var n=-1,i=t.length,a={};++n<i;){var s=t[n],o=lC(e,s);r(o,s)&&c2(a,lE(s,e),o)}return a}function c4(e,t){if(null==e)return{};var r=sm(l4(e),function(e){return[e]});return t=cn(t),c3(e,r,function(e,r){return t(e,r[0])})}function c5(e,t,r,n,i){return i(e,function(e,i,a){r=n?(n=!1,e):t(r,e,i,a)}),r}function c9(e,t,r){var n=sh(e)?lO:c5,i=arguments.length<3;return n(e,cn(t,4),r,i,cu)}function c6(e,t){return(sh(e)?lH:ck)(e,c1(cn(t,3)))}function c7(e,t){var r;return cu(e,function(e,n,i){return!(r=t(e,n,i))}),!!r}function c8(e,t,r){var n=sh(e)?uF:c7;return r&&om(e,t,r)&&(t=void 0),n(e,cn(t,3))}tD(c0,"isUndefined"),tD(c1,"negate"),tD(c2,"baseSet"),tD(c3,"basePickBy"),tD(c4,"pickBy"),tD(c5,"baseReduce"),tD(c9,"reduce"),tD(c6,"reject"),tD(c7,"baseSome"),tD(c8,"some");var pe=l6&&1/uq(new l6([,-0]))[1]==1/0?function(e){return new l6(e)}:sJ;function pt(e,t,r){var n=-1,i=ot,a=e.length,s=!0,o=[],l=o;if(r)s=!1,i=cy;else if(a>=200){var u=t?null:pe(e);if(u)return uq(u);s=!1,i=uG,l=new uj}else l=t?[]:o;t:for(;++n<a;){var c=e[n],p=t?t(c):c;if(c=r||0!==c?c:0,s&&p==p){for(var f=l.length;f--;)if(l[f]===p)continue t;t&&l.push(p),o.push(c)}else i(l,p,r)||(l!==o&&l.push(p),o.push(c))}return o}function pr(e){return e&&e.length?pt(e):[]}function pn(e){console&&console.error&&console.error(`Error: ${e}`)}function pi(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function pa(e){let t=new Date().getTime(),r=e();return{time:new Date().getTime()-t,value:r}}function ps(e){function t(){}tD(t,"FakeConstructor"),t.prototype=e;let r=new t;function n(){return typeof r.bar}return tD(n,"fakeAccess"),n(),n(),e}function po(e){return pl(e)?e.LABEL:e.name}function pl(e){return cK(e.LABEL)&&""!==e.LABEL}tD(pt,"baseUniq"),tD(pr,"uniq"),tD(pn,"PRINT_ERROR"),tD(pi,"PRINT_WARNING"),tD(pa,"timer"),tD(ps,"toFastProperties"),tD(po,"tokenLabel"),tD(pl,"hasTokenLabel");var pu=class{static{tD(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),cb(this.definition,t=>{t.accept(e)})}},pc=class extends pu{static{tD(this,"NonTerminal")}constructor(e){super([]),this.idx=1,oW(this,c4(e,e=>void 0!==e))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}},pp=class extends pu{static{tD(this,"Rule")}constructor(e){super(e.definition),this.orgText="",oW(this,c4(e,e=>void 0!==e))}},pf=class extends pu{static{tD(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,oW(this,c4(e,e=>void 0!==e))}},pd=class extends pu{static{tD(this,"Option")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},pm=class extends pu{static{tD(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},ph=class extends pu{static{tD(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},py=class extends pu{static{tD(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},pg=class extends pu{static{tD(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},pT=class extends pu{static{tD(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,oW(this,c4(e,e=>void 0!==e))}},pv=class{static{tD(this,"Terminal")}constructor(e){this.idx=1,oW(this,c4(e,e=>void 0!==e))}accept(e){e.visit(this)}};function p$(e){return cD(e,pR)}function pR(e){function t(e){return cD(e,pR)}if(tD(t,"convertDefinition"),e instanceof pc){let t={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return cK(e.label)&&(t.label=e.label),t}if(e instanceof pf)return{type:"Alternative",definition:t(e.definition)};if(e instanceof pd)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof pm)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof ph)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:pR(new pv({terminalType:e.separator})),definition:t(e.definition)};else if(e instanceof pg)return{type:"RepetitionWithSeparator",idx:e.idx,separator:pR(new pv({terminalType:e.separator})),definition:t(e.definition)};else if(e instanceof py)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};else if(e instanceof pT)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};else if(e instanceof pv){let t={type:"Terminal",name:e.terminalType.name,label:po(e.terminalType),idx:e.idx};cK(e.label)&&(t.terminalLabel=e.label);let r=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=cJ(r)?r.source:r),t}else if(e instanceof pp)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};else throw Error("non exhaustive match")}tD(p$,"serializeGrammar"),tD(pR,"serializeProduction");var pE=class{static{tD(this,"GAstVisitor")}visit(e){switch(e.constructor){case pc:return this.visitNonTerminal(e);case pf:return this.visitAlternative(e);case pd:return this.visitOption(e);case pm:return this.visitRepetitionMandatory(e);case ph:return this.visitRepetitionMandatoryWithSeparator(e);case pg:return this.visitRepetitionWithSeparator(e);case py:return this.visitRepetition(e);case pT:return this.visitAlternation(e);case pv:return this.visitTerminal(e);case pp:return this.visitRule(e);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}};function pb(e){return e instanceof pf||e instanceof pd||e instanceof py||e instanceof pm||e instanceof ph||e instanceof pg||e instanceof pv||e instanceof pp}function pA(e,t=[]){return e instanceof pd||e instanceof py||e instanceof pg||(e instanceof pT?c8(e.definition,e=>pA(e,t)):!(e instanceof pc&&cW(t,e))&&e instanceof pu&&(e instanceof pc&&t.push(e),cS(e.definition,e=>pA(e,t))))}function pC(e){return e instanceof pT}function pS(e){if(e instanceof pc)return"SUBRULE";if(e instanceof pd)return"OPTION";if(e instanceof pT)return"OR";if(e instanceof pm)return"AT_LEAST_ONE";if(e instanceof ph)return"AT_LEAST_ONE_SEP";else if(e instanceof pg)return"MANY_SEP";else if(e instanceof py)return"MANY";else if(e instanceof pv)return"CONSUME";else throw Error("non exhaustive match")}tD(pb,"isSequenceProd"),tD(pA,"isOptionalProd"),tD(pC,"isBranchingProd"),tD(pS,"getProductionDslName");var pk=class{static{tD(this,"RestWalker")}walk(e,t=[]){cb(e.definition,(r,n)=>{let i=c$(e.definition,n+1);if(r instanceof pc)this.walkProdRef(r,i,t);else if(r instanceof pv)this.walkTerminal(r,i,t);else if(r instanceof pf)this.walkFlat(r,i,t);else if(r instanceof pd)this.walkOption(r,i,t);else if(r instanceof pm)this.walkAtLeastOne(r,i,t);else if(r instanceof ph)this.walkAtLeastOneSep(r,i,t);else if(r instanceof pg)this.walkManySep(r,i,t);else if(r instanceof py)this.walkMany(r,i,t);else if(r instanceof pT)this.walkOr(r,i,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){let n=t.concat(r);this.walk(e,n)}walkOption(e,t,r){let n=t.concat(r);this.walk(e,n)}walkAtLeastOne(e,t,r){let n=[new pd({definition:e.definition})].concat(t,r);this.walk(e,n)}walkAtLeastOneSep(e,t,r){let n=px(e,t,r);this.walk(e,n)}walkMany(e,t,r){let n=[new pd({definition:e.definition})].concat(t,r);this.walk(e,n)}walkManySep(e,t,r){let n=px(e,t,r);this.walk(e,n)}walkOr(e,t,r){let n=t.concat(r);cb(e.definition,e=>{let t=new pf({definition:[e]});this.walk(t,n)})}};function px(e,t,r){return[new pd({definition:[new pv({terminalType:e.separator})].concat(e.definition)})].concat(t,r)}function pN(e){if(e instanceof pc)return pN(e.referencedRule);if(e instanceof pv)return p_(e);if(pb(e))return pw(e);if(pC(e))return pI(e);throw Error("non exhaustive match")}function pw(e){let t,r=[],n=e.definition,i=0,a=n.length>i,s=!0;for(;a&&s;)s=pA(t=n[i]),r=r.concat(pN(t)),i+=1,a=n.length>i;return pr(r)}function pI(e){return pr(lI(cD(e.definition,e=>pN(e))))}function p_(e){return[e.terminalType]}tD(px,"restForRepetitionWithSeparator"),tD(pN,"first"),tD(pw,"firstForSequence"),tD(pI,"firstForBranching"),tD(p_,"firstForTerminal");var pP="_~IN~_",pO=class extends pk{static{tD(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){let n=pL(e.referencedRule,e.idx)+this.topProd.name,i=pN(new pf({definition:t.concat(r)}));this.follows[n]=i}};function pD(e){let t={};return cb(e,e=>{oW(t,new pO(e).startWalking())}),t}function pL(e,t){return e.name+t+pP}tD(pD,"computeAllProdsFollows"),tD(pL,"buildBetweenProdsFollowPrefix");var pM={},pj=new ap;function pF(e){let t=e.toString();if(pM.hasOwnProperty(t))return pM[t];{let e=pj.pattern(t);return pM[t]=e,e}}function pG(){pM={}}tD(pF,"getRegExpAst"),tD(pG,"clearRegExpParserCache");var pz="Complement Sets are not supported for first char optimization",pK='Unable to use "first char" lexer optimizations:\n';function pq(e,t=!1){try{let t=pF(e);return pU(t.value,{},t.flags.ignoreCase)}catch(r){if(r.message===pz)t&&pi(`${pK} Unable to optimize: < ${e.toString()} > +`:void 0===e.error&&(r="No result returned.\n\n")),t){let n=e.error?` Request failed: ${e.error.message} (${e.error.code}).`:"";p.log(`Received response '${t.method} - (${e.id})' in ${Date.now()-t.timerStart}ms.${n}`,r)}else p.log(`Received response ${e.id} without active response promise.`,r)}else eR("receive-response",e)}function eR(e,t){if(!p||F===c.Off)return;let r={isLSPMessage:!0,type:e,message:t,timestamp:Date.now()};p.log(r)}function eE(){if(et())throw new G(h.Closed,"Connection is closed.");if(er())throw new G(h.Disposed,"Connection is disposed.")}function eb(){if(ee())throw new G(h.AlreadyListening,"Connection is already listening")}function eA(){if(!ee())throw Error("Call listen() first.")}function eC(e){return void 0===e?null:e}function eS(e){if(null!==e)return e}function ek(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}function ex(e,t){switch(e){case k.ParameterStructures.auto:if(ek(t))return eS(t);return[eC(t)];case k.ParameterStructures.byName:if(!ek(t))throw Error("Received parameters by name but param is not an object literal.");return eS(t);case k.ParameterStructures.byPosition:return[eC(t)];default:throw Error(`Unknown parameter structure ${e.toString()}`)}}function eN(e,t){let r,n=e.numberOfParams;switch(n){case 0:r=void 0;break;case 1:r=ex(e.parameterStructures,t[0]);break;default:r=[];for(let e=0;e<t.length&&e<n;e++)r.push(eC(t[e]));if(t.length<n)for(let e=t.length;e<n;e++)r.push(null)}return r}tD(ec,"handleRequest"),tD(ep,"handleResponse"),tD(ef,"handleNotification"),tD(ed,"handleInvalidMessage"),tD(em,"stringifyTrace"),tD(eh,"traceSendingRequest"),tD(ey,"traceSendingNotification"),tD(eg,"traceSendingResponse"),tD(eT,"traceReceivedRequest"),tD(ev,"traceReceivedNotification"),tD(e$,"traceReceivedResponse"),tD(eR,"logLSPMessage"),tD(eE,"throwIfClosedOrDisposed"),tD(eb,"throwIfListening"),tD(eA,"throwIfNotListening"),tD(eC,"undefinedToNull"),tD(eS,"nullToUndefined"),tD(ek,"isNamedParam"),tD(ex,"computeSingleParam"),tD(eN,"computeMessageParams");let ew={sendNotification:tD((e,...t)=>{let n,i;if(eE(),S.string(e)){n=e;let r=t[0],a=0,s=k.ParameterStructures.auto;k.ParameterStructures.is(r)&&(a=1,s=r);let o=t.length,l=o-a;switch(l){case 0:i=void 0;break;case 1:i=ex(s,t[a]);break;default:if(s===k.ParameterStructures.byName)throw Error(`Received ${l} parameters for 'by Name' notification parameter structure.`);i=t.slice(a,o).map(e=>eC(e))}}else n=e.method,i=eN(e,t);let a={jsonrpc:"2.0",method:n,params:i};return ey(a),r.write(a).catch(e=>{throw v.error("Sending notification failed."),e})},"sendNotification"),onNotification:tD((e,t)=>{let r;return eE(),S.func(e)?T=e:t&&(S.string(e)?(r=e,P.set(e,{type:void 0,handler:t})):(r=e.method,P.set(e.method,{type:e,handler:t}))),{dispose:tD(()=>{void 0!==r?P.delete(r):T=void 0},"dispose")}},"onNotification"),onProgress:tD((e,t,r)=>{if(O.has(t))throw Error(`Progress handler for token ${t} already registered`);return O.set(t,r),{dispose:tD(()=>{O.delete(t)},"dispose")}},"onProgress"),sendProgress:tD((e,t,r)=>ew.sendNotification(l.type,{token:t,value:r}),"sendProgress"),onUnhandledProgress:W.event,sendRequest:tD((e,...t)=>{let n,i,a,s;if(eE(),eA(),S.string(e)){n=e;let r=t[0],a=t[t.length-1],o=0,l=k.ParameterStructures.auto;k.ParameterStructures.is(r)&&(o=1,l=r);let u=t.length;w.CancellationToken.is(a)&&(u-=1,s=a);let c=u-o;switch(c){case 0:i=void 0;break;case 1:i=ex(l,t[o]);break;default:if(l===k.ParameterStructures.byName)throw Error(`Received ${c} parameters for 'by Name' request parameter structure.`);i=t.slice(o,u).map(e=>eC(e))}}else{n=e.method,i=eN(e,t);let r=e.numberOfParams;s=w.CancellationToken.is(t[r])?t[r]:void 0}let o=$++;s&&(a=s.onCancellationRequested(()=>{let e=H.sender.sendCancellation(ew,o);return void 0===e?(v.log(`Received no promise from cancellation strategy when cancelling id ${o}`),Promise.resolve()):e.catch(()=>{v.log(`Sending cancellation messages for id ${o} failed`)})}));let l={jsonrpc:"2.0",id:o,method:n,params:i};return eh(l),"function"==typeof H.sender.enableCancellation&&H.sender.enableCancellation(l),new Promise(async(e,t)=>{let i=tD(t=>{e(t),H.sender.cleanup(o),a?.dispose()},"resolveWithCleanup"),s=tD(e=>{t(e),H.sender.cleanup(o),a?.dispose()},"rejectWithCleanup"),u={method:n,timerStart:Date.now(),resolve:i,reject:s};try{await r.write(l),L.set(o,u)}catch(e){throw v.error("Sending request failed."),u.reject(new k.ResponseError(k.ErrorCodes.MessageWriteError,e.message?e.message:"Unknown reason")),e}})},"sendRequest"),onRequest:tD((e,t)=>{eE();let r=null;return u.is(e)?(r=void 0,y=e):S.string(e)?(r=null,void 0!==t&&(r=e,_.set(e,{handler:t,type:void 0}))):void 0!==t&&(r=e.method,_.set(e.method,{type:e,handler:t})),{dispose:tD(()=>{null!==r&&(void 0!==r?_.delete(r):y=void 0)},"dispose")}},"onRequest"),hasPendingResponse:tD(()=>L.size>0,"hasPendingResponse"),trace:tD(async(e,t,r)=>{let n=!1,i=f.Text;void 0!==r&&(S.boolean(r)?n=r:(n=r.sendNotification||!1,i=r.traceFormat||f.Text)),F=e,z=i,p=F===c.Off?void 0:t,!n||et()||er()||await ew.sendNotification(d.type,{value:c.toString(e)})},"trace"),onError:q.event,onClose:U.event,onUnhandledNotification:B.event,onDispose:V.event,end:tD(()=>{r.end()},"end"),dispose:tD(()=>{if(er())return;K=A.Disposed,V.fire(void 0);let e=new k.ResponseError(k.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let t of L.values())t.reject(e);L=new Map,j=new Map,M=new Set,D=new x.LinkedMap,S.func(r.dispose)&&r.dispose(),S.func(t.dispose)&&t.dispose()},"dispose"),listen:tD(()=>{eE(),eb(),K=A.Listening,t.listen(eu)},"listen"),inspect:tD(()=>{(0,C.default)().console.log("inspect")},"inspect")};return ew.onNotification(m.type,e=>{if(F===c.Off||!p)return;let t=F===c.Verbose||F===c.Compact;p.log(e.message,t?e.verbose:void 0)}),ew.onNotification(l.type,e=>{let t=O.get(e.token);t?t(e.value):W.fire(e)}),ew}tD(er,"is"),et.is=er,(a=A||(A={}))[a.New=1]="New",a[a.Listening=2]="Listening",a[a.Closed=3]="Closed",a[a.Disposed=4]="Disposed",tD(en,"createMessageConnection"),e.createMessageConnection=en}}),t3=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/common/api.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ProgressType=e.ProgressToken=e.createMessageConnection=e.NullLogger=e.ConnectionOptions=e.ConnectionStrategy=e.AbstractMessageBuffer=e.WriteableStreamMessageWriter=e.AbstractMessageWriter=e.MessageWriter=e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=e.CancellationToken=e.CancellationTokenSource=e.Emitter=e.Event=e.Disposable=e.LRUCache=e.Touch=e.LinkedMap=e.ParameterStructures=e.NotificationType9=e.NotificationType8=e.NotificationType7=e.NotificationType6=e.NotificationType5=e.NotificationType4=e.NotificationType3=e.NotificationType2=e.NotificationType1=e.NotificationType0=e.NotificationType=e.ErrorCodes=e.ResponseError=e.RequestType9=e.RequestType8=e.RequestType7=e.RequestType6=e.RequestType5=e.RequestType4=e.RequestType3=e.RequestType2=e.RequestType1=e.RequestType0=e.RequestType=e.Message=e.RAL=void 0,e.MessageStrategy=e.CancellationStrategy=e.CancellationSenderStrategy=e.CancellationReceiverStrategy=e.ConnectionError=e.ConnectionErrors=e.LogTraceNotification=e.SetTraceNotification=e.TraceFormat=e.TraceValues=e.Trace=void 0;var t=tH();Object.defineProperty(e,"Message",{enumerable:!0,get:tD(function(){return t.Message},"get")}),Object.defineProperty(e,"RequestType",{enumerable:!0,get:tD(function(){return t.RequestType},"get")}),Object.defineProperty(e,"RequestType0",{enumerable:!0,get:tD(function(){return t.RequestType0},"get")}),Object.defineProperty(e,"RequestType1",{enumerable:!0,get:tD(function(){return t.RequestType1},"get")}),Object.defineProperty(e,"RequestType2",{enumerable:!0,get:tD(function(){return t.RequestType2},"get")}),Object.defineProperty(e,"RequestType3",{enumerable:!0,get:tD(function(){return t.RequestType3},"get")}),Object.defineProperty(e,"RequestType4",{enumerable:!0,get:tD(function(){return t.RequestType4},"get")}),Object.defineProperty(e,"RequestType5",{enumerable:!0,get:tD(function(){return t.RequestType5},"get")}),Object.defineProperty(e,"RequestType6",{enumerable:!0,get:tD(function(){return t.RequestType6},"get")}),Object.defineProperty(e,"RequestType7",{enumerable:!0,get:tD(function(){return t.RequestType7},"get")}),Object.defineProperty(e,"RequestType8",{enumerable:!0,get:tD(function(){return t.RequestType8},"get")}),Object.defineProperty(e,"RequestType9",{enumerable:!0,get:tD(function(){return t.RequestType9},"get")}),Object.defineProperty(e,"ResponseError",{enumerable:!0,get:tD(function(){return t.ResponseError},"get")}),Object.defineProperty(e,"ErrorCodes",{enumerable:!0,get:tD(function(){return t.ErrorCodes},"get")}),Object.defineProperty(e,"NotificationType",{enumerable:!0,get:tD(function(){return t.NotificationType},"get")}),Object.defineProperty(e,"NotificationType0",{enumerable:!0,get:tD(function(){return t.NotificationType0},"get")}),Object.defineProperty(e,"NotificationType1",{enumerable:!0,get:tD(function(){return t.NotificationType1},"get")}),Object.defineProperty(e,"NotificationType2",{enumerable:!0,get:tD(function(){return t.NotificationType2},"get")}),Object.defineProperty(e,"NotificationType3",{enumerable:!0,get:tD(function(){return t.NotificationType3},"get")}),Object.defineProperty(e,"NotificationType4",{enumerable:!0,get:tD(function(){return t.NotificationType4},"get")}),Object.defineProperty(e,"NotificationType5",{enumerable:!0,get:tD(function(){return t.NotificationType5},"get")}),Object.defineProperty(e,"NotificationType6",{enumerable:!0,get:tD(function(){return t.NotificationType6},"get")}),Object.defineProperty(e,"NotificationType7",{enumerable:!0,get:tD(function(){return t.NotificationType7},"get")}),Object.defineProperty(e,"NotificationType8",{enumerable:!0,get:tD(function(){return t.NotificationType8},"get")}),Object.defineProperty(e,"NotificationType9",{enumerable:!0,get:tD(function(){return t.NotificationType9},"get")}),Object.defineProperty(e,"ParameterStructures",{enumerable:!0,get:tD(function(){return t.ParameterStructures},"get")});var r=tY();Object.defineProperty(e,"LinkedMap",{enumerable:!0,get:tD(function(){return r.LinkedMap},"get")}),Object.defineProperty(e,"LRUCache",{enumerable:!0,get:tD(function(){return r.LRUCache},"get")}),Object.defineProperty(e,"Touch",{enumerable:!0,get:tD(function(){return r.Touch},"get")});var n=tQ();Object.defineProperty(e,"Disposable",{enumerable:!0,get:tD(function(){return n.Disposable},"get")});var i=tW();Object.defineProperty(e,"Event",{enumerable:!0,get:tD(function(){return i.Event},"get")}),Object.defineProperty(e,"Emitter",{enumerable:!0,get:tD(function(){return i.Emitter},"get")});var a=tV();Object.defineProperty(e,"CancellationTokenSource",{enumerable:!0,get:tD(function(){return a.CancellationTokenSource},"get")}),Object.defineProperty(e,"CancellationToken",{enumerable:!0,get:tD(function(){return a.CancellationToken},"get")});var s=tZ();Object.defineProperty(e,"SharedArraySenderStrategy",{enumerable:!0,get:tD(function(){return s.SharedArraySenderStrategy},"get")}),Object.defineProperty(e,"SharedArrayReceiverStrategy",{enumerable:!0,get:tD(function(){return s.SharedArrayReceiverStrategy},"get")});var o=tJ();Object.defineProperty(e,"MessageReader",{enumerable:!0,get:tD(function(){return o.MessageReader},"get")}),Object.defineProperty(e,"AbstractMessageReader",{enumerable:!0,get:tD(function(){return o.AbstractMessageReader},"get")}),Object.defineProperty(e,"ReadableStreamMessageReader",{enumerable:!0,get:tD(function(){return o.ReadableStreamMessageReader},"get")});var l=t0();Object.defineProperty(e,"MessageWriter",{enumerable:!0,get:tD(function(){return l.MessageWriter},"get")}),Object.defineProperty(e,"AbstractMessageWriter",{enumerable:!0,get:tD(function(){return l.AbstractMessageWriter},"get")}),Object.defineProperty(e,"WriteableStreamMessageWriter",{enumerable:!0,get:tD(function(){return l.WriteableStreamMessageWriter},"get")});var u=t1();Object.defineProperty(e,"AbstractMessageBuffer",{enumerable:!0,get:tD(function(){return u.AbstractMessageBuffer},"get")});var c=t2();Object.defineProperty(e,"ConnectionStrategy",{enumerable:!0,get:tD(function(){return c.ConnectionStrategy},"get")}),Object.defineProperty(e,"ConnectionOptions",{enumerable:!0,get:tD(function(){return c.ConnectionOptions},"get")}),Object.defineProperty(e,"NullLogger",{enumerable:!0,get:tD(function(){return c.NullLogger},"get")}),Object.defineProperty(e,"createMessageConnection",{enumerable:!0,get:tD(function(){return c.createMessageConnection},"get")}),Object.defineProperty(e,"ProgressToken",{enumerable:!0,get:tD(function(){return c.ProgressToken},"get")}),Object.defineProperty(e,"ProgressType",{enumerable:!0,get:tD(function(){return c.ProgressType},"get")}),Object.defineProperty(e,"Trace",{enumerable:!0,get:tD(function(){return c.Trace},"get")}),Object.defineProperty(e,"TraceValues",{enumerable:!0,get:tD(function(){return c.TraceValues},"get")}),Object.defineProperty(e,"TraceFormat",{enumerable:!0,get:tD(function(){return c.TraceFormat},"get")}),Object.defineProperty(e,"SetTraceNotification",{enumerable:!0,get:tD(function(){return c.SetTraceNotification},"get")}),Object.defineProperty(e,"LogTraceNotification",{enumerable:!0,get:tD(function(){return c.LogTraceNotification},"get")}),Object.defineProperty(e,"ConnectionErrors",{enumerable:!0,get:tD(function(){return c.ConnectionErrors},"get")}),Object.defineProperty(e,"ConnectionError",{enumerable:!0,get:tD(function(){return c.ConnectionError},"get")}),Object.defineProperty(e,"CancellationReceiverStrategy",{enumerable:!0,get:tD(function(){return c.CancellationReceiverStrategy},"get")}),Object.defineProperty(e,"CancellationSenderStrategy",{enumerable:!0,get:tD(function(){return c.CancellationSenderStrategy},"get")}),Object.defineProperty(e,"CancellationStrategy",{enumerable:!0,get:tD(function(){return c.CancellationStrategy},"get")}),Object.defineProperty(e,"MessageStrategy",{enumerable:!0,get:tD(function(){return c.MessageStrategy},"get")}),e.RAL=tU().default}}),t4=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/browser/ril.js"(e){Object.defineProperty(e,"__esModule",{value:!0});var t=t3(),r=class e extends t.AbstractMessageBuffer{static{tD(this,"MessageBuffer")}constructor(e="utf-8"){super(e),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return e.emptyBuffer}fromString(e,t){return new TextEncoder().encode(e)}toString(e,t){return"ascii"===t?this.asciiDecoder.decode(e):new TextDecoder(t).decode(e)}asNative(e,t){return void 0===t?e:e.slice(0,t)}allocNative(e){return new Uint8Array(e)}};r.emptyBuffer=new Uint8Array(0);var n=class{static{tD(this,"ReadableStreamWrapper")}constructor(e){this.socket=e,this._onData=new t.Emitter,this._messageListener=e=>{e.data.arrayBuffer().then(e=>{this._onData.fire(new Uint8Array(e))},()=>{(0,t.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(e){return this.socket.addEventListener("close",e),t.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),t.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),t.Disposable.create(()=>this.socket.removeEventListener("end",e))}onData(e){return this._onData.event(e)}},i=class{static{tD(this,"WritableStreamWrapper")}constructor(e){this.socket=e}onClose(e){return this.socket.addEventListener("close",e),t.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),t.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),t.Disposable.create(()=>this.socket.removeEventListener("end",e))}write(e,t){if("string"==typeof e){if(void 0!==t&&"utf-8"!==t)throw Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t}`);this.socket.send(e)}else this.socket.send(e);return Promise.resolve()}end(){this.socket.close()}},a=new TextEncoder,s=Object.freeze({messageBuffer:Object.freeze({create:tD(e=>new r(e),"create")}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:tD((e,t)=>{if("utf-8"!==t.charset)throw Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t.charset}`);return Promise.resolve(a.encode(JSON.stringify(e,void 0,0)))},"encode")}),decoder:Object.freeze({name:"application/json",decode:tD((e,t)=>{if(!(e instanceof Uint8Array))throw Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(t.charset).decode(e)))},"decode")})}),stream:Object.freeze({asReadableStream:tD(e=>new n(e),"asReadableStream"),asWritableStream:tD(e=>new i(e),"asWritableStream")}),console,timer:Object.freeze({setTimeout(e,t,...r){let n=setTimeout(e,t,...r);return{dispose:tD(()=>clearTimeout(n),"dispose")}},setImmediate(e,...t){let r=setTimeout(e,0,...t);return{dispose:tD(()=>clearTimeout(r),"dispose")}},setInterval(e,t,...r){let n=setInterval(e,t,...r);return{dispose:tD(()=>clearInterval(n),"dispose")}}})});function o(){return s}tD(o,"RIL");var l=o||(o={});function u(){t.RAL.install(s)}tD(u,"install"),l.install=u,e.default=o}}),t9=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/lib/browser/main.js"(e){var t=e&&e.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:tD(function(){return t[r]},"get")}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),r=e&&e.__exportStar||function(e,r){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(r,n)||t(r,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),e.createMessageConnection=e.BrowserMessageWriter=e.BrowserMessageReader=void 0,t4().default.install();var n=t3();function i(e,t,r,i){return void 0===r&&(r=n.NullLogger),n.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,n.createMessageConnection)(e,t,r,i)}r(t3(),e),e.BrowserMessageReader=class extends n.AbstractMessageReader{static{tD(this,"BrowserMessageReader")}constructor(e){super(),this._onData=new n.Emitter,this._messageListener=e=>{this._onData.fire(e.data)},e.addEventListener("error",e=>this.fireError(e)),e.onmessage=this._messageListener}listen(e){return this._onData.event(e)}},e.BrowserMessageWriter=class extends n.AbstractMessageWriter{static{tD(this,"BrowserMessageWriter")}constructor(e){super(),this.port=e,this.errorCount=0,e.addEventListener("error",e=>this.fireError(e))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}},tD(i,"createMessageConnection"),e.createMessageConnection=i}}),t5=tL({"../../node_modules/.pnpm/vscode-jsonrpc@8.2.0/node_modules/vscode-jsonrpc/browser.js"(e,t){t.exports=t9()}}),t6=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/messages.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ProtocolNotificationType=e.ProtocolNotificationType0=e.ProtocolRequestType=e.ProtocolRequestType0=e.RegistrationType=e.MessageDirection=void 0;var t,r,n=t9();(t=r||(e.MessageDirection=r={})).clientToServer="clientToServer",t.serverToClient="serverToClient",t.both="both",e.RegistrationType=class{static{tD(this,"RegistrationType")}constructor(e){this.method=e}},e.ProtocolRequestType0=class extends n.RequestType0{static{tD(this,"ProtocolRequestType0")}constructor(e){super(e)}},e.ProtocolRequestType=class extends n.RequestType{static{tD(this,"ProtocolRequestType")}constructor(e){super(e,n.ParameterStructures.byName)}},e.ProtocolNotificationType0=class extends n.NotificationType0{static{tD(this,"ProtocolNotificationType0")}constructor(e){super(e)}},e.ProtocolNotificationType=class extends n.NotificationType{static{tD(this,"ProtocolNotificationType")}constructor(e){super(e,n.ParameterStructures.byName)}}}}),t7=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js"(e){function t(e){return!0===e||!1===e}function r(e){return"string"==typeof e||e instanceof String}function n(e){return"number"==typeof e||e instanceof Number}function i(e){return e instanceof Error}function a(e){return"function"==typeof e}function s(e){return Array.isArray(e)}function o(e){return s(e)&&e.every(e=>r(e))}function l(e,t){return Array.isArray(e)&&e.every(t)}function u(e){return null!==e&&"object"==typeof e}Object.defineProperty(e,"__esModule",{value:!0}),e.objectLiteral=e.typedArray=e.stringArray=e.array=e.func=e.error=e.number=e.string=e.boolean=void 0,tD(t,"boolean"),e.boolean=t,tD(r,"string"),e.string=r,tD(n,"number"),e.number=n,tD(i,"error"),e.error=i,tD(a,"func"),e.func=a,tD(s,"array"),e.array=s,tD(o,"stringArray"),e.stringArray=o,tD(l,"typedArray"),e.typedArray=l,tD(u,"objectLiteral"),e.objectLiteral=u}}),t8=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ImplementationRequest=void 0;var t,r,n=t6();(t=r||(e.ImplementationRequest=r={})).method="textDocument/implementation",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),re=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.TypeDefinitionRequest=void 0;var t,r,n=t6();(t=r||(e.TypeDefinitionRequest=r={})).method="textDocument/typeDefinition",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),rt=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DidChangeWorkspaceFoldersNotification=e.WorkspaceFoldersRequest=void 0;var t,r,n,i,a=t6();(t=n||(e.WorkspaceFoldersRequest=n={})).method="workspace/workspaceFolders",t.messageDirection=a.MessageDirection.serverToClient,t.type=new a.ProtocolRequestType0(t.method),(r=i||(e.DidChangeWorkspaceFoldersNotification=i={})).method="workspace/didChangeWorkspaceFolders",r.messageDirection=a.MessageDirection.clientToServer,r.type=new a.ProtocolNotificationType(r.method)}}),rr=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ConfigurationRequest=void 0;var t,r,n=t6();(t=r||(e.ConfigurationRequest=r={})).method="workspace/configuration",t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)}}),rn=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPresentationRequest=e.DocumentColorRequest=void 0;var t,r,n,i,a=t6();(t=n||(e.DocumentColorRequest=n={})).method="textDocument/documentColor",t.messageDirection=a.MessageDirection.clientToServer,t.type=new a.ProtocolRequestType(t.method),(r=i||(e.ColorPresentationRequest=i={})).method="textDocument/colorPresentation",r.messageDirection=a.MessageDirection.clientToServer,r.type=new a.ProtocolRequestType(r.method)}}),ri=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.FoldingRangeRefreshRequest=e.FoldingRangeRequest=void 0;var t,r,n,i,a=t6();(t=n||(e.FoldingRangeRequest=n={})).method="textDocument/foldingRange",t.messageDirection=a.MessageDirection.clientToServer,t.type=new a.ProtocolRequestType(t.method),(r=i||(e.FoldingRangeRefreshRequest=i={})).method="workspace/foldingRange/refresh",r.messageDirection=a.MessageDirection.serverToClient,r.type=new a.ProtocolRequestType0(r.method)}}),ra=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DeclarationRequest=void 0;var t,r,n=t6();(t=r||(e.DeclarationRequest=r={})).method="textDocument/declaration",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),rs=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SelectionRangeRequest=void 0;var t,r,n=t6();(t=r||(e.SelectionRangeRequest=r={})).method="textDocument/selectionRange",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),ro=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.WorkDoneProgressCancelNotification=e.WorkDoneProgressCreateRequest=e.WorkDoneProgress=void 0;var t,r,n,i,a,s=t9(),o=t6(),l=n||(e.WorkDoneProgress=n={});function u(e){return e===l.type}l.type=new s.ProgressType,tD(u,"is"),l.is=u,(t=i||(e.WorkDoneProgressCreateRequest=i={})).method="window/workDoneProgress/create",t.messageDirection=o.MessageDirection.serverToClient,t.type=new o.ProtocolRequestType(t.method),(r=a||(e.WorkDoneProgressCancelNotification=a={})).method="window/workDoneProgress/cancel",r.messageDirection=o.MessageDirection.clientToServer,r.type=new o.ProtocolNotificationType(r.method)}}),rl=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CallHierarchyOutgoingCallsRequest=e.CallHierarchyIncomingCallsRequest=e.CallHierarchyPrepareRequest=void 0;var t,r,n,i,a,s,o=t6();(t=i||(e.CallHierarchyPrepareRequest=i={})).method="textDocument/prepareCallHierarchy",t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolRequestType(t.method),(r=a||(e.CallHierarchyIncomingCallsRequest=a={})).method="callHierarchy/incomingCalls",r.messageDirection=o.MessageDirection.clientToServer,r.type=new o.ProtocolRequestType(r.method),(n=s||(e.CallHierarchyOutgoingCallsRequest=s={})).method="callHierarchy/outgoingCalls",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)}}),ru=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SemanticTokensRefreshRequest=e.SemanticTokensRangeRequest=e.SemanticTokensDeltaRequest=e.SemanticTokensRequest=e.SemanticTokensRegistrationType=e.TokenFormat=void 0;var t,r,n,i,a,s,o,l,u,c,p,f=t6();(s||(e.TokenFormat=s={})).Relative="relative",(t=o||(e.SemanticTokensRegistrationType=o={})).method="textDocument/semanticTokens",t.type=new f.RegistrationType(t.method),(r=l||(e.SemanticTokensRequest=l={})).method="textDocument/semanticTokens/full",r.messageDirection=f.MessageDirection.clientToServer,r.type=new f.ProtocolRequestType(r.method),r.registrationMethod=o.method,(n=u||(e.SemanticTokensDeltaRequest=u={})).method="textDocument/semanticTokens/full/delta",n.messageDirection=f.MessageDirection.clientToServer,n.type=new f.ProtocolRequestType(n.method),n.registrationMethod=o.method,(i=c||(e.SemanticTokensRangeRequest=c={})).method="textDocument/semanticTokens/range",i.messageDirection=f.MessageDirection.clientToServer,i.type=new f.ProtocolRequestType(i.method),i.registrationMethod=o.method,(a=p||(e.SemanticTokensRefreshRequest=p={})).method="workspace/semanticTokens/refresh",a.messageDirection=f.MessageDirection.serverToClient,a.type=new f.ProtocolRequestType0(a.method)}}),rc=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ShowDocumentRequest=void 0;var t,r,n=t6();(t=r||(e.ShowDocumentRequest=r={})).method="window/showDocument",t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)}}),rp=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.LinkedEditingRangeRequest=void 0;var t,r,n=t6();(t=r||(e.LinkedEditingRangeRequest=r={})).method="textDocument/linkedEditingRange",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),rf=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.WillDeleteFilesRequest=e.DidDeleteFilesNotification=e.DidRenameFilesNotification=e.WillRenameFilesRequest=e.DidCreateFilesNotification=e.WillCreateFilesRequest=e.FileOperationPatternKind=void 0;var t,r,n,i,a,s,o,l,u,c,p,f,d,m,h=t6();(t=l||(e.FileOperationPatternKind=l={})).file="file",t.folder="folder",(r=u||(e.WillCreateFilesRequest=u={})).method="workspace/willCreateFiles",r.messageDirection=h.MessageDirection.clientToServer,r.type=new h.ProtocolRequestType(r.method),(n=c||(e.DidCreateFilesNotification=c={})).method="workspace/didCreateFiles",n.messageDirection=h.MessageDirection.clientToServer,n.type=new h.ProtocolNotificationType(n.method),(i=p||(e.WillRenameFilesRequest=p={})).method="workspace/willRenameFiles",i.messageDirection=h.MessageDirection.clientToServer,i.type=new h.ProtocolRequestType(i.method),(a=f||(e.DidRenameFilesNotification=f={})).method="workspace/didRenameFiles",a.messageDirection=h.MessageDirection.clientToServer,a.type=new h.ProtocolNotificationType(a.method),(s=d||(e.DidDeleteFilesNotification=d={})).method="workspace/didDeleteFiles",s.messageDirection=h.MessageDirection.clientToServer,s.type=new h.ProtocolNotificationType(s.method),(o=m||(e.WillDeleteFilesRequest=m={})).method="workspace/willDeleteFiles",o.messageDirection=h.MessageDirection.clientToServer,o.type=new h.ProtocolRequestType(o.method)}}),rd=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.MonikerRequest=e.MonikerKind=e.UniquenessLevel=void 0;var t,r,n,i,a,s,o=t6();(t=i||(e.UniquenessLevel=i={})).document="document",t.project="project",t.group="group",t.scheme="scheme",t.global="global",(r=a||(e.MonikerKind=a={})).$import="import",r.$export="export",r.local="local",(n=s||(e.MonikerRequest=s={})).method="textDocument/moniker",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)}}),rm=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.TypeHierarchySubtypesRequest=e.TypeHierarchySupertypesRequest=e.TypeHierarchyPrepareRequest=void 0;var t,r,n,i,a,s,o=t6();(t=i||(e.TypeHierarchyPrepareRequest=i={})).method="textDocument/prepareTypeHierarchy",t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolRequestType(t.method),(r=a||(e.TypeHierarchySupertypesRequest=a={})).method="typeHierarchy/supertypes",r.messageDirection=o.MessageDirection.clientToServer,r.type=new o.ProtocolRequestType(r.method),(n=s||(e.TypeHierarchySubtypesRequest=s={})).method="typeHierarchy/subtypes",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)}}),rh=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.InlineValueRefreshRequest=e.InlineValueRequest=void 0;var t,r,n,i,a=t6();(t=n||(e.InlineValueRequest=n={})).method="textDocument/inlineValue",t.messageDirection=a.MessageDirection.clientToServer,t.type=new a.ProtocolRequestType(t.method),(r=i||(e.InlineValueRefreshRequest=i={})).method="workspace/inlineValue/refresh",r.messageDirection=a.MessageDirection.serverToClient,r.type=new a.ProtocolRequestType0(r.method)}}),ry=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintRefreshRequest=e.InlayHintResolveRequest=e.InlayHintRequest=void 0;var t,r,n,i,a,s,o=t6();(t=i||(e.InlayHintRequest=i={})).method="textDocument/inlayHint",t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolRequestType(t.method),(r=a||(e.InlayHintResolveRequest=a={})).method="inlayHint/resolve",r.messageDirection=o.MessageDirection.clientToServer,r.type=new o.ProtocolRequestType(r.method),(n=s||(e.InlayHintRefreshRequest=s={})).method="workspace/inlayHint/refresh",n.messageDirection=o.MessageDirection.serverToClient,n.type=new o.ProtocolRequestType0(n.method)}}),rg=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DiagnosticRefreshRequest=e.WorkspaceDiagnosticRequest=e.DocumentDiagnosticRequest=e.DocumentDiagnosticReportKind=e.DiagnosticServerCancellationData=void 0;var t,r,n,i,a,s,o,l,u,c=t9(),p=t7(),f=t6(),d=a||(e.DiagnosticServerCancellationData=a={});function m(e){return e&&p.boolean(e.retriggerRequest)}tD(m,"is"),d.is=m,(t=s||(e.DocumentDiagnosticReportKind=s={})).Full="full",t.Unchanged="unchanged",(r=o||(e.DocumentDiagnosticRequest=o={})).method="textDocument/diagnostic",r.messageDirection=f.MessageDirection.clientToServer,r.type=new f.ProtocolRequestType(r.method),r.partialResult=new c.ProgressType,(n=l||(e.WorkspaceDiagnosticRequest=l={})).method="workspace/diagnostic",n.messageDirection=f.MessageDirection.clientToServer,n.type=new f.ProtocolRequestType(n.method),n.partialResult=new c.ProgressType,(i=u||(e.DiagnosticRefreshRequest=u={})).method="workspace/diagnostic/refresh",i.messageDirection=f.MessageDirection.serverToClient,i.type=new f.ProtocolRequestType0(i.method)}}),rT=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DidCloseNotebookDocumentNotification=e.DidSaveNotebookDocumentNotification=e.DidChangeNotebookDocumentNotification=e.NotebookCellArrayChange=e.DidOpenNotebookDocumentNotification=e.NotebookDocumentSyncRegistrationType=e.NotebookDocument=e.NotebookCell=e.ExecutionSummary=e.NotebookCellKind=void 0;var t,r,n,i,a,s,o,l,u,c,p,f,d,m,h,y=(tq(),tz(tK)),g=t7(),T=t6(),v=s||(e.NotebookCellKind=s={});function $(e){return 1===e||2===e}v.Markup=1,v.Code=2,tD($,"is"),v.is=$,function(e){function t(e,t){let r={executionOrder:e};return(!0===t||!1===t)&&(r.success=t),r}function r(e){return g.objectLiteral(e)&&y.uinteger.is(e.executionOrder)&&(void 0===e.success||g.boolean(e.success))}function n(e,t){return e===t||null!=e&&null!=t&&e.executionOrder===t.executionOrder&&e.success===t.success}tD(t,"create"),e.create=t,tD(r,"is"),e.is=r,tD(n,"equals"),e.equals=n}(o||(e.ExecutionSummary=o={})),function(e){function t(e,t){return{kind:e,document:t}}function r(e){return g.objectLiteral(e)&&s.is(e.kind)&&y.DocumentUri.is(e.document)&&(void 0===e.metadata||g.objectLiteral(e.metadata))}function n(e,t){let r=new Set;return e.document!==t.document&&r.add("document"),e.kind!==t.kind&&r.add("kind"),e.executionSummary!==t.executionSummary&&r.add("executionSummary"),void 0===e.metadata&&void 0===t.metadata||i(e.metadata,t.metadata)||r.add("metadata"),void 0===e.executionSummary&&void 0===t.executionSummary||o.equals(e.executionSummary,t.executionSummary)||r.add("executionSummary"),r}function i(e,t){if(e===t)return!0;if(null==e||null==t||typeof e!=typeof t||"object"!=typeof e)return!1;let r=Array.isArray(e),n=Array.isArray(t);if(r!==n)return!1;if(r&&n){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!i(e[r],t[r]))return!1}if(g.objectLiteral(e)&&g.objectLiteral(t)){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length||(r.sort(),n.sort(),!i(r,n)))return!1;for(let n=0;n<r.length;n++){let a=r[n];if(!i(e[a],t[a]))return!1}}return!0}tD(t,"create"),e.create=t,tD(r,"is"),e.is=r,tD(n,"diff"),e.diff=n,tD(i,"equalsMetadata")}(l||(e.NotebookCell=l={}));var R=u||(e.NotebookDocument=u={});function E(e,t,r,n){return{uri:e,notebookType:t,version:r,cells:n}}function b(e){return g.objectLiteral(e)&&g.string(e.uri)&&y.integer.is(e.version)&&g.typedArray(e.cells,l.is)}tD(E,"create"),R.create=E,tD(b,"is"),R.is=b,(t=c||(e.NotebookDocumentSyncRegistrationType=c={})).method="notebookDocument/sync",t.messageDirection=T.MessageDirection.clientToServer,t.type=new T.RegistrationType(t.method),(r=p||(e.DidOpenNotebookDocumentNotification=p={})).method="notebookDocument/didOpen",r.messageDirection=T.MessageDirection.clientToServer,r.type=new T.ProtocolNotificationType(r.method),r.registrationMethod=c.method;var A=f||(e.NotebookCellArrayChange=f={});function C(e){return g.objectLiteral(e)&&y.uinteger.is(e.start)&&y.uinteger.is(e.deleteCount)&&(void 0===e.cells||g.typedArray(e.cells,l.is))}function S(e,t,r){let n={start:e,deleteCount:t};return void 0!==r&&(n.cells=r),n}tD(C,"is"),A.is=C,tD(S,"create"),A.create=S,(n=d||(e.DidChangeNotebookDocumentNotification=d={})).method="notebookDocument/didChange",n.messageDirection=T.MessageDirection.clientToServer,n.type=new T.ProtocolNotificationType(n.method),n.registrationMethod=c.method,(i=m||(e.DidSaveNotebookDocumentNotification=m={})).method="notebookDocument/didSave",i.messageDirection=T.MessageDirection.clientToServer,i.type=new T.ProtocolNotificationType(i.method),i.registrationMethod=c.method,(a=h||(e.DidCloseNotebookDocumentNotification=h={})).method="notebookDocument/didClose",a.messageDirection=T.MessageDirection.clientToServer,a.type=new T.ProtocolNotificationType(a.method),a.registrationMethod=c.method}}),rv=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionRequest=void 0;var t,r,n=t6();(t=r||(e.InlineCompletionRequest=r={})).method="textDocument/inlineCompletion",t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)}}),r$=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/protocol.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.WorkspaceSymbolRequest=e.CodeActionResolveRequest=e.CodeActionRequest=e.DocumentSymbolRequest=e.DocumentHighlightRequest=e.ReferencesRequest=e.DefinitionRequest=e.SignatureHelpRequest=e.SignatureHelpTriggerKind=e.HoverRequest=e.CompletionResolveRequest=e.CompletionRequest=e.CompletionTriggerKind=e.PublishDiagnosticsNotification=e.WatchKind=e.RelativePattern=e.FileChangeType=e.DidChangeWatchedFilesNotification=e.WillSaveTextDocumentWaitUntilRequest=e.WillSaveTextDocumentNotification=e.TextDocumentSaveReason=e.DidSaveTextDocumentNotification=e.DidCloseTextDocumentNotification=e.DidChangeTextDocumentNotification=e.TextDocumentContentChangeEvent=e.DidOpenTextDocumentNotification=e.TextDocumentSyncKind=e.TelemetryEventNotification=e.LogMessageNotification=e.ShowMessageRequest=e.ShowMessageNotification=e.MessageType=e.DidChangeConfigurationNotification=e.ExitNotification=e.ShutdownRequest=e.InitializedNotification=e.InitializeErrorCodes=e.InitializeRequest=e.WorkDoneProgressOptions=e.TextDocumentRegistrationOptions=e.StaticRegistrationOptions=e.PositionEncodingKind=e.FailureHandlingKind=e.ResourceOperationKind=e.UnregistrationRequest=e.RegistrationRequest=e.DocumentSelector=e.NotebookCellTextDocumentFilter=e.NotebookDocumentFilter=e.TextDocumentFilter=void 0,e.MonikerRequest=e.MonikerKind=e.UniquenessLevel=e.WillDeleteFilesRequest=e.DidDeleteFilesNotification=e.WillRenameFilesRequest=e.DidRenameFilesNotification=e.WillCreateFilesRequest=e.DidCreateFilesNotification=e.FileOperationPatternKind=e.LinkedEditingRangeRequest=e.ShowDocumentRequest=e.SemanticTokensRegistrationType=e.SemanticTokensRefreshRequest=e.SemanticTokensRangeRequest=e.SemanticTokensDeltaRequest=e.SemanticTokensRequest=e.TokenFormat=e.CallHierarchyPrepareRequest=e.CallHierarchyOutgoingCallsRequest=e.CallHierarchyIncomingCallsRequest=e.WorkDoneProgressCancelNotification=e.WorkDoneProgressCreateRequest=e.WorkDoneProgress=e.SelectionRangeRequest=e.DeclarationRequest=e.FoldingRangeRefreshRequest=e.FoldingRangeRequest=e.ColorPresentationRequest=e.DocumentColorRequest=e.ConfigurationRequest=e.DidChangeWorkspaceFoldersNotification=e.WorkspaceFoldersRequest=e.TypeDefinitionRequest=e.ImplementationRequest=e.ApplyWorkspaceEditRequest=e.ExecuteCommandRequest=e.PrepareRenameRequest=e.RenameRequest=e.PrepareSupportDefaultBehavior=e.DocumentOnTypeFormattingRequest=e.DocumentRangesFormattingRequest=e.DocumentRangeFormattingRequest=e.DocumentFormattingRequest=e.DocumentLinkResolveRequest=e.DocumentLinkRequest=e.CodeLensRefreshRequest=e.CodeLensResolveRequest=e.CodeLensRequest=e.WorkspaceSymbolResolveRequest=void 0,e.InlineCompletionRequest=e.DidCloseNotebookDocumentNotification=e.DidSaveNotebookDocumentNotification=e.DidChangeNotebookDocumentNotification=e.NotebookCellArrayChange=e.DidOpenNotebookDocumentNotification=e.NotebookDocumentSyncRegistrationType=e.NotebookDocument=e.NotebookCell=e.ExecutionSummary=e.NotebookCellKind=e.DiagnosticRefreshRequest=e.WorkspaceDiagnosticRequest=e.DocumentDiagnosticRequest=e.DocumentDiagnosticReportKind=e.DiagnosticServerCancellationData=e.InlayHintRefreshRequest=e.InlayHintResolveRequest=e.InlayHintRequest=e.InlineValueRefreshRequest=e.InlineValueRequest=e.TypeHierarchySupertypesRequest=e.TypeHierarchySubtypesRequest=e.TypeHierarchyPrepareRequest=void 0;var t,r,n,i,a,s,o,l,u,c,p,f,d,m,h,y,g,T,v,$,R,E,b,A,C,S,k,x,N,w,I,_,P,O,D,L,M,j,F,G,z,K,q,U,B,W,V,H,Y,Q,Z,X,J,ee,et,er,en,ei,ea,es,eo,el,eu,ec,ep,ef,ed,em,eh,ey,eg,eT,ev,e$,eR,eE,eb,eA,eC,eS,ek,ex,eN,ew,eI,e_,eP,eO,eD,eL,eM,ej,eF,eG,ez,eK,eq,eU,eB,eW,eV,eH,eY,eQ,eZ,eX,eJ,e0,e1,e2,e3,e4,e9,e5,e6,e7,e8,te,tt,tr=t6(),tn=(tq(),tz(tK)),ti=t7(),ta=t8();Object.defineProperty(e,"ImplementationRequest",{enumerable:!0,get:tD(function(){return ta.ImplementationRequest},"get")});var ts=re();Object.defineProperty(e,"TypeDefinitionRequest",{enumerable:!0,get:tD(function(){return ts.TypeDefinitionRequest},"get")});var to=rt();Object.defineProperty(e,"WorkspaceFoldersRequest",{enumerable:!0,get:tD(function(){return to.WorkspaceFoldersRequest},"get")}),Object.defineProperty(e,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:tD(function(){return to.DidChangeWorkspaceFoldersNotification},"get")});var tl=rr();Object.defineProperty(e,"ConfigurationRequest",{enumerable:!0,get:tD(function(){return tl.ConfigurationRequest},"get")});var tu=rn();Object.defineProperty(e,"DocumentColorRequest",{enumerable:!0,get:tD(function(){return tu.DocumentColorRequest},"get")}),Object.defineProperty(e,"ColorPresentationRequest",{enumerable:!0,get:tD(function(){return tu.ColorPresentationRequest},"get")});var tc=ri();Object.defineProperty(e,"FoldingRangeRequest",{enumerable:!0,get:tD(function(){return tc.FoldingRangeRequest},"get")}),Object.defineProperty(e,"FoldingRangeRefreshRequest",{enumerable:!0,get:tD(function(){return tc.FoldingRangeRefreshRequest},"get")});var tp=ra();Object.defineProperty(e,"DeclarationRequest",{enumerable:!0,get:tD(function(){return tp.DeclarationRequest},"get")});var tf=rs();Object.defineProperty(e,"SelectionRangeRequest",{enumerable:!0,get:tD(function(){return tf.SelectionRangeRequest},"get")});var td=ro();Object.defineProperty(e,"WorkDoneProgress",{enumerable:!0,get:tD(function(){return td.WorkDoneProgress},"get")}),Object.defineProperty(e,"WorkDoneProgressCreateRequest",{enumerable:!0,get:tD(function(){return td.WorkDoneProgressCreateRequest},"get")}),Object.defineProperty(e,"WorkDoneProgressCancelNotification",{enumerable:!0,get:tD(function(){return td.WorkDoneProgressCancelNotification},"get")});var tm=rl();Object.defineProperty(e,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:tD(function(){return tm.CallHierarchyIncomingCallsRequest},"get")}),Object.defineProperty(e,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:tD(function(){return tm.CallHierarchyOutgoingCallsRequest},"get")}),Object.defineProperty(e,"CallHierarchyPrepareRequest",{enumerable:!0,get:tD(function(){return tm.CallHierarchyPrepareRequest},"get")});var th=ru();Object.defineProperty(e,"TokenFormat",{enumerable:!0,get:tD(function(){return th.TokenFormat},"get")}),Object.defineProperty(e,"SemanticTokensRequest",{enumerable:!0,get:tD(function(){return th.SemanticTokensRequest},"get")}),Object.defineProperty(e,"SemanticTokensDeltaRequest",{enumerable:!0,get:tD(function(){return th.SemanticTokensDeltaRequest},"get")}),Object.defineProperty(e,"SemanticTokensRangeRequest",{enumerable:!0,get:tD(function(){return th.SemanticTokensRangeRequest},"get")}),Object.defineProperty(e,"SemanticTokensRefreshRequest",{enumerable:!0,get:tD(function(){return th.SemanticTokensRefreshRequest},"get")}),Object.defineProperty(e,"SemanticTokensRegistrationType",{enumerable:!0,get:tD(function(){return th.SemanticTokensRegistrationType},"get")});var ty=rc();Object.defineProperty(e,"ShowDocumentRequest",{enumerable:!0,get:tD(function(){return ty.ShowDocumentRequest},"get")});var tg=rp();Object.defineProperty(e,"LinkedEditingRangeRequest",{enumerable:!0,get:tD(function(){return tg.LinkedEditingRangeRequest},"get")});var tT=rf();Object.defineProperty(e,"FileOperationPatternKind",{enumerable:!0,get:tD(function(){return tT.FileOperationPatternKind},"get")}),Object.defineProperty(e,"DidCreateFilesNotification",{enumerable:!0,get:tD(function(){return tT.DidCreateFilesNotification},"get")}),Object.defineProperty(e,"WillCreateFilesRequest",{enumerable:!0,get:tD(function(){return tT.WillCreateFilesRequest},"get")}),Object.defineProperty(e,"DidRenameFilesNotification",{enumerable:!0,get:tD(function(){return tT.DidRenameFilesNotification},"get")}),Object.defineProperty(e,"WillRenameFilesRequest",{enumerable:!0,get:tD(function(){return tT.WillRenameFilesRequest},"get")}),Object.defineProperty(e,"DidDeleteFilesNotification",{enumerable:!0,get:tD(function(){return tT.DidDeleteFilesNotification},"get")}),Object.defineProperty(e,"WillDeleteFilesRequest",{enumerable:!0,get:tD(function(){return tT.WillDeleteFilesRequest},"get")});var tv=rd();Object.defineProperty(e,"UniquenessLevel",{enumerable:!0,get:tD(function(){return tv.UniquenessLevel},"get")}),Object.defineProperty(e,"MonikerKind",{enumerable:!0,get:tD(function(){return tv.MonikerKind},"get")}),Object.defineProperty(e,"MonikerRequest",{enumerable:!0,get:tD(function(){return tv.MonikerRequest},"get")});var t$=rm();Object.defineProperty(e,"TypeHierarchyPrepareRequest",{enumerable:!0,get:tD(function(){return t$.TypeHierarchyPrepareRequest},"get")}),Object.defineProperty(e,"TypeHierarchySubtypesRequest",{enumerable:!0,get:tD(function(){return t$.TypeHierarchySubtypesRequest},"get")}),Object.defineProperty(e,"TypeHierarchySupertypesRequest",{enumerable:!0,get:tD(function(){return t$.TypeHierarchySupertypesRequest},"get")});var tR=rh();Object.defineProperty(e,"InlineValueRequest",{enumerable:!0,get:tD(function(){return tR.InlineValueRequest},"get")}),Object.defineProperty(e,"InlineValueRefreshRequest",{enumerable:!0,get:tD(function(){return tR.InlineValueRefreshRequest},"get")});var tE=ry();Object.defineProperty(e,"InlayHintRequest",{enumerable:!0,get:tD(function(){return tE.InlayHintRequest},"get")}),Object.defineProperty(e,"InlayHintResolveRequest",{enumerable:!0,get:tD(function(){return tE.InlayHintResolveRequest},"get")}),Object.defineProperty(e,"InlayHintRefreshRequest",{enumerable:!0,get:tD(function(){return tE.InlayHintRefreshRequest},"get")});var tb=rg();Object.defineProperty(e,"DiagnosticServerCancellationData",{enumerable:!0,get:tD(function(){return tb.DiagnosticServerCancellationData},"get")}),Object.defineProperty(e,"DocumentDiagnosticReportKind",{enumerable:!0,get:tD(function(){return tb.DocumentDiagnosticReportKind},"get")}),Object.defineProperty(e,"DocumentDiagnosticRequest",{enumerable:!0,get:tD(function(){return tb.DocumentDiagnosticRequest},"get")}),Object.defineProperty(e,"WorkspaceDiagnosticRequest",{enumerable:!0,get:tD(function(){return tb.WorkspaceDiagnosticRequest},"get")}),Object.defineProperty(e,"DiagnosticRefreshRequest",{enumerable:!0,get:tD(function(){return tb.DiagnosticRefreshRequest},"get")});var tA=rT();Object.defineProperty(e,"NotebookCellKind",{enumerable:!0,get:tD(function(){return tA.NotebookCellKind},"get")}),Object.defineProperty(e,"ExecutionSummary",{enumerable:!0,get:tD(function(){return tA.ExecutionSummary},"get")}),Object.defineProperty(e,"NotebookCell",{enumerable:!0,get:tD(function(){return tA.NotebookCell},"get")}),Object.defineProperty(e,"NotebookDocument",{enumerable:!0,get:tD(function(){return tA.NotebookDocument},"get")}),Object.defineProperty(e,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:tD(function(){return tA.NotebookDocumentSyncRegistrationType},"get")}),Object.defineProperty(e,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:tD(function(){return tA.DidOpenNotebookDocumentNotification},"get")}),Object.defineProperty(e,"NotebookCellArrayChange",{enumerable:!0,get:tD(function(){return tA.NotebookCellArrayChange},"get")}),Object.defineProperty(e,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:tD(function(){return tA.DidChangeNotebookDocumentNotification},"get")}),Object.defineProperty(e,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:tD(function(){return tA.DidSaveNotebookDocumentNotification},"get")}),Object.defineProperty(e,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:tD(function(){return tA.DidCloseNotebookDocumentNotification},"get")});var tC=rv();Object.defineProperty(e,"InlineCompletionRequest",{enumerable:!0,get:tD(function(){return tC.InlineCompletionRequest},"get")});var tS=et||(e.TextDocumentFilter=et={});function tk(e){return ti.string(e)||ti.string(e.language)||ti.string(e.scheme)||ti.string(e.pattern)}tD(tk,"is"),tS.is=tk;var tx=er||(e.NotebookDocumentFilter=er={});function tN(e){return ti.objectLiteral(e)&&(ti.string(e.notebookType)||ti.string(e.scheme)||ti.string(e.pattern))}tD(tN,"is"),tx.is=tN;var tw=en||(e.NotebookCellTextDocumentFilter=en={});function tI(e){return ti.objectLiteral(e)&&(ti.string(e.notebook)||er.is(e.notebook))&&(void 0===e.language||ti.string(e.language))}tD(tI,"is"),tw.is=tI;var t_=ei||(e.DocumentSelector=ei={});function tP(e){if(!Array.isArray(e))return!1;for(let t of e)if(!ti.string(t)&&!et.is(t)&&!en.is(t))return!1;return!0}tD(tP,"is"),t_.is=tP,(t=ea||(e.RegistrationRequest=ea={})).method="client/registerCapability",t.messageDirection=tr.MessageDirection.serverToClient,t.type=new tr.ProtocolRequestType(t.method),(r=es||(e.UnregistrationRequest=es={})).method="client/unregisterCapability",r.messageDirection=tr.MessageDirection.serverToClient,r.type=new tr.ProtocolRequestType(r.method),(n=eo||(e.ResourceOperationKind=eo={})).Create="create",n.Rename="rename",n.Delete="delete",(i=el||(e.FailureHandlingKind=el={})).Abort="abort",i.Transactional="transactional",i.TextOnlyTransactional="textOnlyTransactional",i.Undo="undo",(a=eu||(e.PositionEncodingKind=eu={})).UTF8="utf-8",a.UTF16="utf-16",a.UTF32="utf-32";var tO=ec||(e.StaticRegistrationOptions=ec={});function tL(e){return e&&ti.string(e.id)&&e.id.length>0}tD(tL,"hasId"),tO.hasId=tL;var tM=ep||(e.TextDocumentRegistrationOptions=ep={});function tj(e){return e&&(null===e.documentSelector||ei.is(e.documentSelector))}tD(tj,"is"),tM.is=tj;var tF=ef||(e.WorkDoneProgressOptions=ef={});function tG(e){return ti.objectLiteral(e)&&(void 0===e.workDoneProgress||ti.boolean(e.workDoneProgress))}function tU(e){return e&&ti.boolean(e.workDoneProgress)}tD(tG,"is"),tF.is=tG,tD(tU,"hasWorkDoneProgress"),tF.hasWorkDoneProgress=tU,(s=ed||(e.InitializeRequest=ed={})).method="initialize",s.messageDirection=tr.MessageDirection.clientToServer,s.type=new tr.ProtocolRequestType(s.method),(em||(e.InitializeErrorCodes=em={})).unknownProtocolVersion=1,(o=eh||(e.InitializedNotification=eh={})).method="initialized",o.messageDirection=tr.MessageDirection.clientToServer,o.type=new tr.ProtocolNotificationType(o.method),(l=ey||(e.ShutdownRequest=ey={})).method="shutdown",l.messageDirection=tr.MessageDirection.clientToServer,l.type=new tr.ProtocolRequestType0(l.method),(u=eg||(e.ExitNotification=eg={})).method="exit",u.messageDirection=tr.MessageDirection.clientToServer,u.type=new tr.ProtocolNotificationType0(u.method),(c=eT||(e.DidChangeConfigurationNotification=eT={})).method="workspace/didChangeConfiguration",c.messageDirection=tr.MessageDirection.clientToServer,c.type=new tr.ProtocolNotificationType(c.method),(p=ev||(e.MessageType=ev={})).Error=1,p.Warning=2,p.Info=3,p.Log=4,p.Debug=5,(f=e$||(e.ShowMessageNotification=e$={})).method="window/showMessage",f.messageDirection=tr.MessageDirection.serverToClient,f.type=new tr.ProtocolNotificationType(f.method),(d=eR||(e.ShowMessageRequest=eR={})).method="window/showMessageRequest",d.messageDirection=tr.MessageDirection.serverToClient,d.type=new tr.ProtocolRequestType(d.method),(m=eE||(e.LogMessageNotification=eE={})).method="window/logMessage",m.messageDirection=tr.MessageDirection.serverToClient,m.type=new tr.ProtocolNotificationType(m.method),(h=eb||(e.TelemetryEventNotification=eb={})).method="telemetry/event",h.messageDirection=tr.MessageDirection.serverToClient,h.type=new tr.ProtocolNotificationType(h.method),(y=eA||(e.TextDocumentSyncKind=eA={})).None=0,y.Full=1,y.Incremental=2,(g=eC||(e.DidOpenTextDocumentNotification=eC={})).method="textDocument/didOpen",g.messageDirection=tr.MessageDirection.clientToServer,g.type=new tr.ProtocolNotificationType(g.method);var tB=eS||(e.TextDocumentContentChangeEvent=eS={});function tW(e){return null!=e&&"string"==typeof e.text&&void 0!==e.range&&(void 0===e.rangeLength||"number"==typeof e.rangeLength)}function tV(e){return null!=e&&"string"==typeof e.text&&void 0===e.range&&void 0===e.rangeLength}tD(tW,"isIncremental"),tB.isIncremental=tW,tD(tV,"isFull"),tB.isFull=tV,(T=ek||(e.DidChangeTextDocumentNotification=ek={})).method="textDocument/didChange",T.messageDirection=tr.MessageDirection.clientToServer,T.type=new tr.ProtocolNotificationType(T.method),(v=ex||(e.DidCloseTextDocumentNotification=ex={})).method="textDocument/didClose",v.messageDirection=tr.MessageDirection.clientToServer,v.type=new tr.ProtocolNotificationType(v.method),($=eN||(e.DidSaveTextDocumentNotification=eN={})).method="textDocument/didSave",$.messageDirection=tr.MessageDirection.clientToServer,$.type=new tr.ProtocolNotificationType($.method),(R=ew||(e.TextDocumentSaveReason=ew={})).Manual=1,R.AfterDelay=2,R.FocusOut=3,(E=eI||(e.WillSaveTextDocumentNotification=eI={})).method="textDocument/willSave",E.messageDirection=tr.MessageDirection.clientToServer,E.type=new tr.ProtocolNotificationType(E.method),(b=e_||(e.WillSaveTextDocumentWaitUntilRequest=e_={})).method="textDocument/willSaveWaitUntil",b.messageDirection=tr.MessageDirection.clientToServer,b.type=new tr.ProtocolRequestType(b.method),(A=eP||(e.DidChangeWatchedFilesNotification=eP={})).method="workspace/didChangeWatchedFiles",A.messageDirection=tr.MessageDirection.clientToServer,A.type=new tr.ProtocolNotificationType(A.method),(C=eO||(e.FileChangeType=eO={})).Created=1,C.Changed=2,C.Deleted=3;var tH=eD||(e.RelativePattern=eD={});function tY(e){return ti.objectLiteral(e)&&(tn.URI.is(e.baseUri)||tn.WorkspaceFolder.is(e.baseUri))&&ti.string(e.pattern)}tD(tY,"is"),tH.is=tY,(S=eL||(e.WatchKind=eL={})).Create=1,S.Change=2,S.Delete=4,(k=eM||(e.PublishDiagnosticsNotification=eM={})).method="textDocument/publishDiagnostics",k.messageDirection=tr.MessageDirection.serverToClient,k.type=new tr.ProtocolNotificationType(k.method),(x=ej||(e.CompletionTriggerKind=ej={})).Invoked=1,x.TriggerCharacter=2,x.TriggerForIncompleteCompletions=3,(N=eF||(e.CompletionRequest=eF={})).method="textDocument/completion",N.messageDirection=tr.MessageDirection.clientToServer,N.type=new tr.ProtocolRequestType(N.method),(w=eG||(e.CompletionResolveRequest=eG={})).method="completionItem/resolve",w.messageDirection=tr.MessageDirection.clientToServer,w.type=new tr.ProtocolRequestType(w.method),(I=ez||(e.HoverRequest=ez={})).method="textDocument/hover",I.messageDirection=tr.MessageDirection.clientToServer,I.type=new tr.ProtocolRequestType(I.method),(_=eK||(e.SignatureHelpTriggerKind=eK={})).Invoked=1,_.TriggerCharacter=2,_.ContentChange=3,(P=eq||(e.SignatureHelpRequest=eq={})).method="textDocument/signatureHelp",P.messageDirection=tr.MessageDirection.clientToServer,P.type=new tr.ProtocolRequestType(P.method),(O=eU||(e.DefinitionRequest=eU={})).method="textDocument/definition",O.messageDirection=tr.MessageDirection.clientToServer,O.type=new tr.ProtocolRequestType(O.method),(D=eB||(e.ReferencesRequest=eB={})).method="textDocument/references",D.messageDirection=tr.MessageDirection.clientToServer,D.type=new tr.ProtocolRequestType(D.method),(L=eW||(e.DocumentHighlightRequest=eW={})).method="textDocument/documentHighlight",L.messageDirection=tr.MessageDirection.clientToServer,L.type=new tr.ProtocolRequestType(L.method),(M=eV||(e.DocumentSymbolRequest=eV={})).method="textDocument/documentSymbol",M.messageDirection=tr.MessageDirection.clientToServer,M.type=new tr.ProtocolRequestType(M.method),(j=eH||(e.CodeActionRequest=eH={})).method="textDocument/codeAction",j.messageDirection=tr.MessageDirection.clientToServer,j.type=new tr.ProtocolRequestType(j.method),(F=eY||(e.CodeActionResolveRequest=eY={})).method="codeAction/resolve",F.messageDirection=tr.MessageDirection.clientToServer,F.type=new tr.ProtocolRequestType(F.method),(G=eQ||(e.WorkspaceSymbolRequest=eQ={})).method="workspace/symbol",G.messageDirection=tr.MessageDirection.clientToServer,G.type=new tr.ProtocolRequestType(G.method),(z=eZ||(e.WorkspaceSymbolResolveRequest=eZ={})).method="workspaceSymbol/resolve",z.messageDirection=tr.MessageDirection.clientToServer,z.type=new tr.ProtocolRequestType(z.method),(K=eX||(e.CodeLensRequest=eX={})).method="textDocument/codeLens",K.messageDirection=tr.MessageDirection.clientToServer,K.type=new tr.ProtocolRequestType(K.method),(q=eJ||(e.CodeLensResolveRequest=eJ={})).method="codeLens/resolve",q.messageDirection=tr.MessageDirection.clientToServer,q.type=new tr.ProtocolRequestType(q.method),(U=e0||(e.CodeLensRefreshRequest=e0={})).method="workspace/codeLens/refresh",U.messageDirection=tr.MessageDirection.serverToClient,U.type=new tr.ProtocolRequestType0(U.method),(B=e1||(e.DocumentLinkRequest=e1={})).method="textDocument/documentLink",B.messageDirection=tr.MessageDirection.clientToServer,B.type=new tr.ProtocolRequestType(B.method),(W=e2||(e.DocumentLinkResolveRequest=e2={})).method="documentLink/resolve",W.messageDirection=tr.MessageDirection.clientToServer,W.type=new tr.ProtocolRequestType(W.method),(V=e3||(e.DocumentFormattingRequest=e3={})).method="textDocument/formatting",V.messageDirection=tr.MessageDirection.clientToServer,V.type=new tr.ProtocolRequestType(V.method),(H=e4||(e.DocumentRangeFormattingRequest=e4={})).method="textDocument/rangeFormatting",H.messageDirection=tr.MessageDirection.clientToServer,H.type=new tr.ProtocolRequestType(H.method),(Y=e9||(e.DocumentRangesFormattingRequest=e9={})).method="textDocument/rangesFormatting",Y.messageDirection=tr.MessageDirection.clientToServer,Y.type=new tr.ProtocolRequestType(Y.method),(Q=e5||(e.DocumentOnTypeFormattingRequest=e5={})).method="textDocument/onTypeFormatting",Q.messageDirection=tr.MessageDirection.clientToServer,Q.type=new tr.ProtocolRequestType(Q.method),(e6||(e.PrepareSupportDefaultBehavior=e6={})).Identifier=1,(Z=e7||(e.RenameRequest=e7={})).method="textDocument/rename",Z.messageDirection=tr.MessageDirection.clientToServer,Z.type=new tr.ProtocolRequestType(Z.method),(X=e8||(e.PrepareRenameRequest=e8={})).method="textDocument/prepareRename",X.messageDirection=tr.MessageDirection.clientToServer,X.type=new tr.ProtocolRequestType(X.method),(J=te||(e.ExecuteCommandRequest=te={})).method="workspace/executeCommand",J.messageDirection=tr.MessageDirection.clientToServer,J.type=new tr.ProtocolRequestType(J.method),(ee=tt||(e.ApplyWorkspaceEditRequest=tt={})).method="workspace/applyEdit",ee.messageDirection=tr.MessageDirection.serverToClient,ee.type=new tr.ProtocolRequestType("workspace/applyEdit")}}),rR=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/connection.js"(e){Object.defineProperty(e,"__esModule",{value:!0}),e.createProtocolConnection=void 0;var t=t9();function r(e,r,n,i){return t.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,t.createMessageConnection)(e,r,n,i)}tD(r,"createProtocolConnection"),e.createProtocolConnection=r}}),rE=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/common/api.js"(e){var t,r,n=e&&e.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:tD(function(){return t[r]},"get")}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=e&&e.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.LSPErrorCodes=e.createProtocolConnection=void 0,i(t9(),e),i((tq(),tz(tK)),e),i(t6(),e),i(r$(),e);var a=rR();Object.defineProperty(e,"createProtocolConnection",{enumerable:!0,get:tD(function(){return a.createProtocolConnection},"get")}),(t=r||(e.LSPErrorCodes=r={})).lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800}}),rb=tL({"../../node_modules/.pnpm/vscode-languageserver-protocol@3.17.5/node_modules/vscode-languageserver-protocol/lib/browser/main.js"(e){var t=e&&e.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:tD(function(){return t[r]},"get")}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),r=e&&e.__exportStar||function(e,r){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(r,n)||t(r,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),e.createProtocolConnection=void 0;var n=t5();function i(e,t,r,i){return(0,n.createMessageConnection)(e,t,r,i)}r(t5(),e),r(rE(),e),tD(i,"createProtocolConnection"),e.createProtocolConnection=i}}),rA={};tM(rA,{AbstractAstReflection:()=>rI,AbstractCstNode:()=>TZ,AbstractLangiumParser:()=>T9,AbstractParserErrorMessageProvider:()=>T6,AbstractThreadedAsyncParser:()=>$9,AstUtils:()=>rK,BiMap:()=>vJ,Cancellation:()=>vS,CompositeCstNodeImpl:()=>TJ,ContextCache:()=>v6,CstNodeBuilder:()=>TQ,CstUtils:()=>rC,DEFAULT_TOKENIZE_OPTIONS:()=>$A,DONE_RESULT:()=>rF,DatatypeSymbol:()=>T2,DefaultAstNodeDescriptionProvider:()=>$f,DefaultAstNodeLocator:()=>$m,DefaultAsyncParser:()=>$4,DefaultCommentProvider:()=>$3,DefaultConfigurationProvider:()=>$y,DefaultDocumentBuilder:()=>$$,DefaultDocumentValidator:()=>$l,DefaultHydrator:()=>$7,DefaultIndexManager:()=>$R,DefaultJsonSerializer:()=>$n,DefaultLangiumDocumentFactory:()=>vB,DefaultLangiumDocuments:()=>vW,DefaultLangiumProfiler:()=>RT,DefaultLexer:()=>$C,DefaultLexerErrorMessageProvider:()=>$b,DefaultLinker:()=>vH,DefaultNameProvider:()=>vQ,DefaultReferenceDescriptionProvider:()=>$d,DefaultReferences:()=>vZ,DefaultScopeComputation:()=>v0,DefaultScopeProvider:()=>$e,DefaultServiceRegistry:()=>$i,DefaultTokenBuilder:()=>vA,DefaultValueConverter:()=>vC,DefaultWorkspaceLock:()=>$6,DefaultWorkspaceManager:()=>$E,Deferred:()=>vD,Disposable:()=>e5,DisposableCache:()=>v9,DocumentCache:()=>v7,DocumentState:()=>e3,DocumentValidator:()=>e9,EMPTY_SCOPE:()=>v4,EMPTY_STREAM:()=>rj,EmptyFileSystem:()=>Rd,EmptyFileSystemProvider:()=>Rf,ErrorWithLocation:()=>i9,GrammarAST:()=>r3,GrammarUtils:()=>i4,IndentationAwareLexer:()=>Rc,IndentationAwareTokenBuilder:()=>Ru,JSDocDocumentationProvider:()=>$2,LangiumCompletionParser:()=>T8,LangiumParser:()=>T5,LangiumParserErrorMessageProvider:()=>T7,LeafCstNodeImpl:()=>TX,LexingMode:()=>e7,MapScope:()=>v2,Module:()=>e6,MultiMap:()=>vX,MultiMapScope:()=>v3,OperationCancelled:()=>v_,ParserWorker:()=>$5,ProfilingTask:()=>Rv,Reduction:()=>eV,RefResolving:()=>vV,RegExpUtils:()=>i7,RootCstNodeImpl:()=>T1,SimpleCache:()=>v5,StreamImpl:()=>rD,StreamScope:()=>v1,TextDocument:()=>e0,TreeStreamImpl:()=>rz,URI:()=>vK,UriTrie:()=>vU,UriUtils:()=>e2,VALIDATE_EACH_NODE:()=>$o,ValidationCategory:()=>e4,ValidationRegistry:()=>$s,ValueConverter:()=>eJ,WorkspaceCache:()=>v8,assertCondition:()=>i6,assertUnreachable:()=>i5,createCompletionParser:()=>vR,createDefaultCoreModule:()=>$8,createDefaultSharedCoreModule:()=>Re,createGrammarConfig:()=>a7,createLangiumParser:()=>vE,createParser:()=>vn,delayNextTick:()=>vk,diagnosticData:()=>$a,eagerLoad:()=>Rn,getDiagnosticRange:()=>$u,indentationBuilderDefaultOptions:()=>Rl,inject:()=>Rt,interruptAndCheck:()=>vO,isAstNode:()=>rS,isAstNodeDescription:()=>rN,isAstNodeWithComment:()=>$t,isCompositeCstNode:()=>r_,isIMultiModeLexerDefinition:()=>$k,isJSDoc:()=>$w,isLeafCstNode:()=>rP,isLinkingError:()=>rw,isMultiReference:()=>rx,isNamed:()=>vY,isOperationCancelled:()=>vP,isReference:()=>rk,isRootCstNode:()=>rO,isTokenTypeArray:()=>$S,isTokenTypeDictionary:()=>$x,loadGrammarFromJson:()=>Rg,parseJSDoc:()=>$N,prepareLangiumParser:()=>vb,setInterruptionPeriod:()=>vI,startCancelableOperation:()=>vw,stream:()=>rG,toDiagnosticData:()=>$p,toDiagnosticSeverity:()=>$c});var rC={};function rS(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$type}function rk(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText&&"ref"in e}function rx(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText&&"items"in e}function rN(e){return"object"==typeof e&&null!==e&&"string"==typeof e.name&&"string"==typeof e.type&&"string"==typeof e.path}function rw(e){return"object"==typeof e&&null!==e&&"object"==typeof e.info&&"string"==typeof e.message}tM(rC,{DefaultNameRegexp:()=>iB,RangeComparison:()=>eH,compareRange:()=>iq,findCommentNode:()=>iV,findDeclarationNodeAtOffset:()=>iW,findLeafNodeAtOffset:()=>iY,findLeafNodeBeforeOffset:()=>iQ,flattenCst:()=>iF,getDatatypeNode:()=>iM,getInteriorNodes:()=>i1,getNextNode:()=>iJ,getPreviousNode:()=>iX,getStartlineNode:()=>i0,inRange:()=>iU,isChildNode:()=>iG,isCommentNode:()=>iH,streamCst:()=>ij,toDocumentSegment:()=>iK,tokenToRange:()=>iz}),tD(rS,"isAstNode"),tD(rk,"isReference"),tD(rx,"isMultiReference"),tD(rN,"isAstNodeDescription"),tD(rw,"isLinkingError");var rI=class{static{tD(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(e){let t=this.types[e.container.$type];if(!t)throw Error(`Type ${e.container.$type||"undefined"} not found.`);let r=t.properties[e.property]?.referenceType;if(!r)throw Error(`Property ${e.property||"undefined"} of type ${e.container.$type} is not a reference.`);return r}getTypeMetaData(e){let t=this.types[e];return t||{name:e,properties:{},superTypes:[]}}isInstance(e,t){return rS(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});let n=r[t];if(void 0!==n)return n;{let n=this.types[e],i=!!n&&n.superTypes.some(e=>this.isSubtype(e,t));return r[t]=i,i}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let t=this.getAllTypes(),r=[];for(let n of t)this.isSubtype(n,e)&&r.push(n);return this.allSubtypes[e]=r,r}}};function r_(e){return"object"==typeof e&&null!==e&&Array.isArray(e.content)}function rP(e){return"object"==typeof e&&null!==e&&"object"==typeof e.tokenType}function rO(e){return r_(e)&&"string"==typeof e.fullText}tD(r_,"isCompositeCstNode"),tD(rP,"isLeafCstNode"),tD(rO,"isRootCstNode");var rD=class e{static{tD(this,"StreamImpl")}constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let e={state:this.startFn(),next:tD(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){let e,t=[],r=this.iterator();do void 0!==(e=r.next()).value&&t.push(e.value);while(!e.done)return t}toSet(){return new Set(this)}toMap(e,t){return new Map(this.map(r=>[e?e(r):r,t?t(r):r]))}toString(){return this.join()}concat(t){return new e(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),e=>{let t;if(!e.firstDone){do if(!(t=this.nextFn(e.first)).done)return t;while(!t.done)e.firstDone=!0}do if(!(t=e.iterator.next()).done)return t;while(!t.done)return rF})}join(e=","){let t,r=this.iterator(),n="",i=!1;do(t=r.next()).done||(i&&(n+=e),n+=rL(t.value)),i=!0;while(!t.done)return n}indexOf(e,t=0){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(n>=t&&i.value===e)return n;i=r.next(),n++}return -1}every(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;)e(n.value,r),n=t.next(),r++}map(t){return new e(this.startFn,e=>{let{done:r,value:n}=this.nextFn(e);return r?rF:{done:!1,value:t(n)}})}filter(t){return new e(this.startFn,e=>{let r;do if(!(r=this.nextFn(e)).done&&t(r.value))return r;while(!r.done)return rF})}nonNullable(){return this.filter(e=>null!=e)}reduce(e,t){let r=this.iterator(),n=t,i=r.next();for(;!i.done;)n=void 0===n?i.value:e(n,i.value),i=r.next();return n}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){let n=e.next();if(n.done)return r;let i=this.recursiveReduce(e,t,r);return void 0===i?n.value:t(i,n.value)}find(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;){if(e(n.value))return r;n=t.next(),r++}return -1}includes(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(t){return new e(()=>({this:this.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}let{done:r,value:n}=this.nextFn(e.this);if(!r){let r=t(n);if(!rM(r))return{done:!1,value:r};e.iterator=r[Symbol.iterator]()}}while(e.iterator)return rF})}flat(t){if(void 0===t&&(t=1),t<=0)return this;let r=t>1?this.flat(t-1):this;return new e(()=>({this:r.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}let{done:t,value:n}=r.nextFn(e.this);if(!t)if(!rM(n))return{done:!1,value:n};else e.iterator=n[Symbol.iterator]()}while(e.iterator)return rF})}head(){let e=this.iterator().next();if(!e.done)return e.value}tail(t=1){return new e(()=>{let e=this.startFn();for(let r=0;r<t&&!this.nextFn(e).done;r++);return e},this.nextFn)}limit(t){return new e(()=>({size:0,state:this.startFn()}),e=>(e.size++,e.size>t)?rF:this.nextFn(e.state))}distinct(t){return new e(()=>({set:new Set,internalState:this.startFn()}),e=>{let r;do if(!(r=this.nextFn(e.internalState)).done){let n=t?t(r.value):r.value;if(!e.set.has(n))return e.set.add(n),r}while(!r.done)return rF})}exclude(e,t){let r=new Set;for(let n of e){let e=t?t(n):n;r.add(e)}return this.filter(e=>{let n=t?t(e):e;return!r.has(n)})}};function rL(e){return"string"==typeof e?e:void 0===e?"undefined":"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}function rM(e){return!!e&&"function"==typeof e[Symbol.iterator]}tD(rL,"toString"),tD(rM,"isIterable");var rj=new rD(()=>void 0,()=>rF),rF=Object.freeze({done:!0,value:void 0});function rG(...e){if(1===e.length){let t=e[0];if(t instanceof rD)return t;if(rM(t))return new rD(()=>t[Symbol.iterator](),e=>e.next());if("number"==typeof t.length)return new rD(()=>({index:0}),e=>e.index<t.length?{done:!1,value:t[e.index++]}:rF)}return e.length>1?new rD(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){let r=e[t.collIndex++];rM(r)?t.iterator=r[Symbol.iterator]():r&&"number"==typeof r.length&&(t.array=r)}}while(t.iterator||t.array||t.collIndex<e.length)return rF}):rj}tD(rG,"stream");var rz=class extends rD{static{tD(this,"TreeStreamImpl")}constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&(e.iterators.pop(),e.pruned=!1);e.iterators.length>0;){let r=e.iterators[e.iterators.length-1].next();if(!r.done)return e.iterators.push(t(r.value)[Symbol.iterator]()),r;e.iterators.pop()}return rF})}iterator(){let e={state:this.startFn(),next:tD(()=>this.nextFn(e.state),"next"),prune:tD(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};!function(e){function t(e){return e.reduce((e,t)=>e+t,0)}function r(e){return e.reduce((e,t)=>e*t,0)}function n(e){return e.reduce((e,t)=>Math.min(e,t))}function i(e){return e.reduce((e,t)=>Math.max(e,t))}tD(t,"sum"),e.sum=t,tD(r,"product"),e.product=r,tD(n,"min"),e.min=n,tD(i,"max"),e.max=i}(eV||(eV={}));var rK={};function rq(e,t={}){for(let[r,n]of Object.entries(e))!r.startsWith("$")&&(Array.isArray(n)?n.forEach((n,i)=>{rS(n)&&(n.$container=e,n.$containerProperty=r,n.$containerIndex=i,t.deep&&rq(n,t))}):rS(n)&&(n.$container=e,n.$containerProperty=r,t.deep&&rq(n,t)))}function rU(e,t){let r=e;for(;r;){if(t(r))return r;r=r.$container}}function rB(e,t){let r=e;for(;r;){if(t(r))return!0;r=r.$container}return!1}function rW(e){let t=rV(e).$document;if(!t)throw Error("AST node has no document.");return t}function rV(e){for(;e.$container;)e=e.$container;return e}function rH(e){return rk(e)?e.ref?[e.ref]:[]:rx(e)?e.items.map(e=>e.ref):[]}function rY(e,t){if(!e)throw Error("Node must be an AstNode.");let r=t?.range;return new rD(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let n=t.keys[t.keyIndex];if(!n.startsWith("$")){let i=e[n];if(rS(i)){if(t.keyIndex++,rX(i,r))return{done:!1,value:i}}else if(Array.isArray(i)){for(;t.arrayIndex<i.length;){let e=i[t.arrayIndex++];if(rS(e)&&rX(e,r))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return rF})}function rQ(e,t){if(!e)throw Error("Root node must be an AstNode.");return new rz(e,e=>rY(e,t))}function rZ(e,t){if(e){if(t?.range&&!rX(e,t.range))return new rz(e,()=>[])}else throw Error("Root node must be an AstNode.");return new rz(e,e=>rY(e,t),{includeRoot:!0})}function rX(e,t){if(!t)return!0;let r=e.$cstNode?.range;return!!r&&iU(r,t)}function rJ(e){return new rD(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let r=t.keys[t.keyIndex];if(!r.startsWith("$")){let n=e[r];if(rk(n)||rx(n))return t.keyIndex++,{done:!1,value:{reference:n,container:e,property:r}};if(Array.isArray(n)){for(;t.arrayIndex<n.length;){let i=t.arrayIndex++,a=n[i];if(rk(a)||rx(n))return{done:!1,value:{reference:a,container:e,property:r,index:i}}}t.arrayIndex=0}}t.keyIndex++}return rF})}function r0(e,t){for(let r of Object.values(e.getTypeMetaData(t.$type).properties))void 0!==r.defaultValue&&void 0===t[r.name]&&(t[r.name]=r1(r.defaultValue))}function r1(e){return Array.isArray(e)?[...e.map(r1)]:e}function r2(e,t,r){let n={$type:e.$type};for(let[i,a]of(r&&(r.set(e,n),r.set(n,e)),Object.entries(e)))if(!i.startsWith("$"))if(rS(a))n[i]=r2(a,t,r);else if(rk(a))n[i]=t(n,i,a.$refNode,a.$refText,a);else if(Array.isArray(a)){let e=[];for(let s of a)rS(s)?e.push(r2(s,t,r)):rk(s)?e.push(t(n,i,s.$refNode,s.$refText,s)):e.push(s);n[i]=e}else n[i]=a;return rq(n,{deep:!0}),n}tM(rK,{assignMandatoryProperties:()=>r0,copyAstNode:()=>r2,findRootNode:()=>rV,getContainerOfType:()=>rU,getDocument:()=>rW,getReferenceNodes:()=>rH,hasContainerOfType:()=>rB,linkContentToContainer:()=>rq,streamAllContents:()=>rQ,streamAst:()=>rZ,streamContents:()=>rY,streamReferences:()=>rJ}),tD(rq,"linkContentToContainer"),tD(rU,"getContainerOfType"),tD(rB,"hasContainerOfType"),tD(rW,"getDocument"),tD(rV,"findRootNode"),tD(rH,"getReferenceNodes"),tD(rY,"streamContents"),tD(rQ,"streamAllContents"),tD(rZ,"streamAst"),tD(rX,"isAstNodeInRange"),tD(rJ,"streamReferences"),tD(r0,"assignMandatoryProperties"),tD(r1,"copyDefaultValue"),tD(r2,"copyAstNode");var r3={};tM(r3,{AbstractElement:()=>r9,AbstractParserRule:()=>r6,AbstractRule:()=>r8,AbstractType:()=>nt,Action:()=>nn,Alternatives:()=>na,ArrayLiteral:()=>no,ArrayType:()=>nu,Assignment:()=>np,BooleanLiteral:()=>nd,CharacterRange:()=>nh,Condition:()=>ng,Conjunction:()=>nv,CrossReference:()=>nR,Disjunction:()=>nb,EndOfFile:()=>nC,Grammar:()=>nk,GrammarImport:()=>nN,Group:()=>nI,InferredType:()=>nP,InfixRule:()=>nD,InfixRuleOperatorList:()=>nM,InfixRuleOperators:()=>nF,Interface:()=>nz,Keyword:()=>nq,LangiumGrammarAstReflection:()=>iD,LangiumGrammarTerminals:()=>r4,NamedArgument:()=>nB,NegatedToken:()=>nV,Negation:()=>nY,NumberLiteral:()=>nZ,Parameter:()=>nJ,ParameterReference:()=>n1,ParserRule:()=>n3,ReferenceType:()=>n9,RegexToken:()=>n6,ReturnType:()=>n8,RuleCall:()=>it,SimpleType:()=>ii,StringLiteral:()=>is,TerminalAlternatives:()=>il,TerminalElement:()=>ic,TerminalGroup:()=>id,TerminalRule:()=>ih,TerminalRuleCall:()=>ig,Type:()=>iv,TypeAttribute:()=>iR,TypeDefinition:()=>ib,UnionType:()=>iC,UnorderedGroup:()=>ik,UntilToken:()=>iN,ValueLiteral:()=>iI,Wildcard:()=>iP,isAbstractElement:()=>r5,isAbstractParserRule:()=>r7,isAbstractRule:()=>ne,isAbstractType:()=>nr,isAction:()=>ni,isAlternatives:()=>ns,isArrayLiteral:()=>nl,isArrayType:()=>nc,isAssignment:()=>nf,isBooleanLiteral:()=>nm,isCharacterRange:()=>ny,isCondition:()=>nT,isConjunction:()=>n$,isCrossReference:()=>nE,isDisjunction:()=>nA,isEndOfFile:()=>nS,isGrammar:()=>nx,isGrammarImport:()=>nw,isGroup:()=>n_,isInferredType:()=>nO,isInfixRule:()=>nL,isInfixRuleOperatorList:()=>nj,isInfixRuleOperators:()=>nG,isInterface:()=>nK,isKeyword:()=>nU,isNamedArgument:()=>nW,isNegatedToken:()=>nH,isNegation:()=>nQ,isNumberLiteral:()=>nX,isParameter:()=>n0,isParameterReference:()=>n2,isParserRule:()=>n4,isReferenceType:()=>n5,isRegexToken:()=>n7,isReturnType:()=>ie,isRuleCall:()=>ir,isSimpleType:()=>ia,isStringLiteral:()=>io,isTerminalAlternatives:()=>iu,isTerminalElement:()=>ip,isTerminalGroup:()=>im,isTerminalRule:()=>iy,isTerminalRuleCall:()=>iT,isType:()=>i$,isTypeAttribute:()=>iE,isTypeDefinition:()=>iA,isUnionType:()=>iS,isUnorderedGroup:()=>ix,isUntilToken:()=>iw,isValueLiteral:()=>i_,isWildcard:()=>iO,reflection:()=>iL});var r4={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},r9={$type:"AbstractElement",cardinality:"cardinality"};function r5(e){return iL.isInstance(e,r9.$type)}tD(r5,"isAbstractElement");var r6={$type:"AbstractParserRule"};function r7(e){return iL.isInstance(e,r6.$type)}tD(r7,"isAbstractParserRule");var r8={$type:"AbstractRule"};function ne(e){return iL.isInstance(e,r8.$type)}tD(ne,"isAbstractRule");var nt={$type:"AbstractType"};function nr(e){return iL.isInstance(e,nt.$type)}tD(nr,"isAbstractType");var nn={$type:"Action",cardinality:"cardinality",feature:"feature",inferredType:"inferredType",operator:"operator",type:"type"};function ni(e){return iL.isInstance(e,nn.$type)}tD(ni,"isAction");var na={$type:"Alternatives",cardinality:"cardinality",elements:"elements"};function ns(e){return iL.isInstance(e,na.$type)}tD(ns,"isAlternatives");var no={$type:"ArrayLiteral",elements:"elements"};function nl(e){return iL.isInstance(e,no.$type)}tD(nl,"isArrayLiteral");var nu={$type:"ArrayType",elementType:"elementType"};function nc(e){return iL.isInstance(e,nu.$type)}tD(nc,"isArrayType");var np={$type:"Assignment",cardinality:"cardinality",feature:"feature",operator:"operator",predicate:"predicate",terminal:"terminal"};function nf(e){return iL.isInstance(e,np.$type)}tD(nf,"isAssignment");var nd={$type:"BooleanLiteral",true:"true"};function nm(e){return iL.isInstance(e,nd.$type)}tD(nm,"isBooleanLiteral");var nh={$type:"CharacterRange",cardinality:"cardinality",left:"left",lookahead:"lookahead",parenthesized:"parenthesized",right:"right"};function ny(e){return iL.isInstance(e,nh.$type)}tD(ny,"isCharacterRange");var ng={$type:"Condition"};function nT(e){return iL.isInstance(e,ng.$type)}tD(nT,"isCondition");var nv={$type:"Conjunction",left:"left",right:"right"};function n$(e){return iL.isInstance(e,nv.$type)}tD(n$,"isConjunction");var nR={$type:"CrossReference",cardinality:"cardinality",deprecatedSyntax:"deprecatedSyntax",isMulti:"isMulti",terminal:"terminal",type:"type"};function nE(e){return iL.isInstance(e,nR.$type)}tD(nE,"isCrossReference");var nb={$type:"Disjunction",left:"left",right:"right"};function nA(e){return iL.isInstance(e,nb.$type)}tD(nA,"isDisjunction");var nC={$type:"EndOfFile",cardinality:"cardinality"};function nS(e){return iL.isInstance(e,nC.$type)}tD(nS,"isEndOfFile");var nk={$type:"Grammar",imports:"imports",interfaces:"interfaces",isDeclared:"isDeclared",name:"name",rules:"rules",types:"types"};function nx(e){return iL.isInstance(e,nk.$type)}tD(nx,"isGrammar");var nN={$type:"GrammarImport",path:"path"};function nw(e){return iL.isInstance(e,nN.$type)}tD(nw,"isGrammarImport");var nI={$type:"Group",cardinality:"cardinality",elements:"elements",guardCondition:"guardCondition",predicate:"predicate"};function n_(e){return iL.isInstance(e,nI.$type)}tD(n_,"isGroup");var nP={$type:"InferredType",name:"name"};function nO(e){return iL.isInstance(e,nP.$type)}tD(nO,"isInferredType");var nD={$type:"InfixRule",call:"call",dataType:"dataType",inferredType:"inferredType",name:"name",operators:"operators",parameters:"parameters",returnType:"returnType"};function nL(e){return iL.isInstance(e,nD.$type)}tD(nL,"isInfixRule");var nM={$type:"InfixRuleOperatorList",associativity:"associativity",operators:"operators"};function nj(e){return iL.isInstance(e,nM.$type)}tD(nj,"isInfixRuleOperatorList");var nF={$type:"InfixRuleOperators",precedences:"precedences"};function nG(e){return iL.isInstance(e,nF.$type)}tD(nG,"isInfixRuleOperators");var nz={$type:"Interface",attributes:"attributes",name:"name",superTypes:"superTypes"};function nK(e){return iL.isInstance(e,nz.$type)}tD(nK,"isInterface");var nq={$type:"Keyword",cardinality:"cardinality",predicate:"predicate",value:"value"};function nU(e){return iL.isInstance(e,nq.$type)}tD(nU,"isKeyword");var nB={$type:"NamedArgument",calledByName:"calledByName",parameter:"parameter",value:"value"};function nW(e){return iL.isInstance(e,nB.$type)}tD(nW,"isNamedArgument");var nV={$type:"NegatedToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function nH(e){return iL.isInstance(e,nV.$type)}tD(nH,"isNegatedToken");var nY={$type:"Negation",value:"value"};function nQ(e){return iL.isInstance(e,nY.$type)}tD(nQ,"isNegation");var nZ={$type:"NumberLiteral",value:"value"};function nX(e){return iL.isInstance(e,nZ.$type)}tD(nX,"isNumberLiteral");var nJ={$type:"Parameter",name:"name"};function n0(e){return iL.isInstance(e,nJ.$type)}tD(n0,"isParameter");var n1={$type:"ParameterReference",parameter:"parameter"};function n2(e){return iL.isInstance(e,n1.$type)}tD(n2,"isParameterReference");var n3={$type:"ParserRule",dataType:"dataType",definition:"definition",entry:"entry",fragment:"fragment",inferredType:"inferredType",name:"name",parameters:"parameters",returnType:"returnType"};function n4(e){return iL.isInstance(e,n3.$type)}tD(n4,"isParserRule");var n9={$type:"ReferenceType",isMulti:"isMulti",referenceType:"referenceType"};function n5(e){return iL.isInstance(e,n9.$type)}tD(n5,"isReferenceType");var n6={$type:"RegexToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",regex:"regex"};function n7(e){return iL.isInstance(e,n6.$type)}tD(n7,"isRegexToken");var n8={$type:"ReturnType",name:"name"};function ie(e){return iL.isInstance(e,n8.$type)}tD(ie,"isReturnType");var it={$type:"RuleCall",arguments:"arguments",cardinality:"cardinality",predicate:"predicate",rule:"rule"};function ir(e){return iL.isInstance(e,it.$type)}tD(ir,"isRuleCall");var ii={$type:"SimpleType",primitiveType:"primitiveType",stringType:"stringType",typeRef:"typeRef"};function ia(e){return iL.isInstance(e,ii.$type)}tD(ia,"isSimpleType");var is={$type:"StringLiteral",value:"value"};function io(e){return iL.isInstance(e,is.$type)}tD(io,"isStringLiteral");var il={$type:"TerminalAlternatives",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function iu(e){return iL.isInstance(e,il.$type)}tD(iu,"isTerminalAlternatives");var ic={$type:"TerminalElement",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};function ip(e){return iL.isInstance(e,ic.$type)}tD(ip,"isTerminalElement");var id={$type:"TerminalGroup",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function im(e){return iL.isInstance(e,id.$type)}tD(im,"isTerminalGroup");var ih={$type:"TerminalRule",definition:"definition",fragment:"fragment",hidden:"hidden",name:"name",type:"type"};function iy(e){return iL.isInstance(e,ih.$type)}tD(iy,"isTerminalRule");var ig={$type:"TerminalRuleCall",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",rule:"rule"};function iT(e){return iL.isInstance(e,ig.$type)}tD(iT,"isTerminalRuleCall");var iv={$type:"Type",name:"name",type:"type"};function i$(e){return iL.isInstance(e,iv.$type)}tD(i$,"isType");var iR={$type:"TypeAttribute",defaultValue:"defaultValue",isOptional:"isOptional",name:"name",type:"type"};function iE(e){return iL.isInstance(e,iR.$type)}tD(iE,"isTypeAttribute");var ib={$type:"TypeDefinition"};function iA(e){return iL.isInstance(e,ib.$type)}tD(iA,"isTypeDefinition");var iC={$type:"UnionType",types:"types"};function iS(e){return iL.isInstance(e,iC.$type)}tD(iS,"isUnionType");var ik={$type:"UnorderedGroup",cardinality:"cardinality",elements:"elements"};function ix(e){return iL.isInstance(e,ik.$type)}tD(ix,"isUnorderedGroup");var iN={$type:"UntilToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function iw(e){return iL.isInstance(e,iN.$type)}tD(iw,"isUntilToken");var iI={$type:"ValueLiteral"};function i_(e){return iL.isInstance(e,iI.$type)}tD(i_,"isValueLiteral");var iP={$type:"Wildcard",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};function iO(e){return iL.isInstance(e,iP.$type)}tD(iO,"isWildcard");var iD=class extends rI{static{tD(this,"LangiumGrammarAstReflection")}constructor(){super(...arguments),this.types={AbstractElement:{name:r9.$type,properties:{cardinality:{name:r9.cardinality}},superTypes:[]},AbstractParserRule:{name:r6.$type,properties:{},superTypes:[r8.$type,nt.$type]},AbstractRule:{name:r8.$type,properties:{},superTypes:[]},AbstractType:{name:nt.$type,properties:{},superTypes:[]},Action:{name:nn.$type,properties:{cardinality:{name:nn.cardinality},feature:{name:nn.feature},inferredType:{name:nn.inferredType},operator:{name:nn.operator},type:{name:nn.type,referenceType:nt.$type}},superTypes:[r9.$type]},Alternatives:{name:na.$type,properties:{cardinality:{name:na.cardinality},elements:{name:na.elements,defaultValue:[]}},superTypes:[r9.$type]},ArrayLiteral:{name:no.$type,properties:{elements:{name:no.elements,defaultValue:[]}},superTypes:[iI.$type]},ArrayType:{name:nu.$type,properties:{elementType:{name:nu.elementType}},superTypes:[ib.$type]},Assignment:{name:np.$type,properties:{cardinality:{name:np.cardinality},feature:{name:np.feature},operator:{name:np.operator},predicate:{name:np.predicate},terminal:{name:np.terminal}},superTypes:[r9.$type]},BooleanLiteral:{name:nd.$type,properties:{true:{name:nd.true,defaultValue:!1}},superTypes:[ng.$type,iI.$type]},CharacterRange:{name:nh.$type,properties:{cardinality:{name:nh.cardinality},left:{name:nh.left},lookahead:{name:nh.lookahead},parenthesized:{name:nh.parenthesized,defaultValue:!1},right:{name:nh.right}},superTypes:[ic.$type]},Condition:{name:ng.$type,properties:{},superTypes:[]},Conjunction:{name:nv.$type,properties:{left:{name:nv.left},right:{name:nv.right}},superTypes:[ng.$type]},CrossReference:{name:nR.$type,properties:{cardinality:{name:nR.cardinality},deprecatedSyntax:{name:nR.deprecatedSyntax,defaultValue:!1},isMulti:{name:nR.isMulti,defaultValue:!1},terminal:{name:nR.terminal},type:{name:nR.type,referenceType:nt.$type}},superTypes:[r9.$type]},Disjunction:{name:nb.$type,properties:{left:{name:nb.left},right:{name:nb.right}},superTypes:[ng.$type]},EndOfFile:{name:nC.$type,properties:{cardinality:{name:nC.cardinality}},superTypes:[r9.$type]},Grammar:{name:nk.$type,properties:{imports:{name:nk.imports,defaultValue:[]},interfaces:{name:nk.interfaces,defaultValue:[]},isDeclared:{name:nk.isDeclared,defaultValue:!1},name:{name:nk.name},rules:{name:nk.rules,defaultValue:[]},types:{name:nk.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:nN.$type,properties:{path:{name:nN.path}},superTypes:[]},Group:{name:nI.$type,properties:{cardinality:{name:nI.cardinality},elements:{name:nI.elements,defaultValue:[]},guardCondition:{name:nI.guardCondition},predicate:{name:nI.predicate}},superTypes:[r9.$type]},InferredType:{name:nP.$type,properties:{name:{name:nP.name}},superTypes:[nt.$type]},InfixRule:{name:nD.$type,properties:{call:{name:nD.call},dataType:{name:nD.dataType},inferredType:{name:nD.inferredType},name:{name:nD.name},operators:{name:nD.operators},parameters:{name:nD.parameters,defaultValue:[]},returnType:{name:nD.returnType,referenceType:nt.$type}},superTypes:[r6.$type]},InfixRuleOperatorList:{name:nM.$type,properties:{associativity:{name:nM.associativity},operators:{name:nM.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:nF.$type,properties:{precedences:{name:nF.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:nz.$type,properties:{attributes:{name:nz.attributes,defaultValue:[]},name:{name:nz.name},superTypes:{name:nz.superTypes,defaultValue:[],referenceType:nt.$type}},superTypes:[nt.$type]},Keyword:{name:nq.$type,properties:{cardinality:{name:nq.cardinality},predicate:{name:nq.predicate},value:{name:nq.value}},superTypes:[r9.$type]},NamedArgument:{name:nB.$type,properties:{calledByName:{name:nB.calledByName,defaultValue:!1},parameter:{name:nB.parameter,referenceType:nJ.$type},value:{name:nB.value}},superTypes:[]},NegatedToken:{name:nV.$type,properties:{cardinality:{name:nV.cardinality},lookahead:{name:nV.lookahead},parenthesized:{name:nV.parenthesized,defaultValue:!1},terminal:{name:nV.terminal}},superTypes:[ic.$type]},Negation:{name:nY.$type,properties:{value:{name:nY.value}},superTypes:[ng.$type]},NumberLiteral:{name:nZ.$type,properties:{value:{name:nZ.value}},superTypes:[iI.$type]},Parameter:{name:nJ.$type,properties:{name:{name:nJ.name}},superTypes:[]},ParameterReference:{name:n1.$type,properties:{parameter:{name:n1.parameter,referenceType:nJ.$type}},superTypes:[ng.$type]},ParserRule:{name:n3.$type,properties:{dataType:{name:n3.dataType},definition:{name:n3.definition},entry:{name:n3.entry,defaultValue:!1},fragment:{name:n3.fragment,defaultValue:!1},inferredType:{name:n3.inferredType},name:{name:n3.name},parameters:{name:n3.parameters,defaultValue:[]},returnType:{name:n3.returnType,referenceType:nt.$type}},superTypes:[r6.$type]},ReferenceType:{name:n9.$type,properties:{isMulti:{name:n9.isMulti,defaultValue:!1},referenceType:{name:n9.referenceType}},superTypes:[ib.$type]},RegexToken:{name:n6.$type,properties:{cardinality:{name:n6.cardinality},lookahead:{name:n6.lookahead},parenthesized:{name:n6.parenthesized,defaultValue:!1},regex:{name:n6.regex}},superTypes:[ic.$type]},ReturnType:{name:n8.$type,properties:{name:{name:n8.name}},superTypes:[]},RuleCall:{name:it.$type,properties:{arguments:{name:it.arguments,defaultValue:[]},cardinality:{name:it.cardinality},predicate:{name:it.predicate},rule:{name:it.rule,referenceType:r8.$type}},superTypes:[r9.$type]},SimpleType:{name:ii.$type,properties:{primitiveType:{name:ii.primitiveType},stringType:{name:ii.stringType},typeRef:{name:ii.typeRef,referenceType:nt.$type}},superTypes:[ib.$type]},StringLiteral:{name:is.$type,properties:{value:{name:is.value}},superTypes:[iI.$type]},TerminalAlternatives:{name:il.$type,properties:{cardinality:{name:il.cardinality},elements:{name:il.elements,defaultValue:[]},lookahead:{name:il.lookahead},parenthesized:{name:il.parenthesized,defaultValue:!1}},superTypes:[ic.$type]},TerminalElement:{name:ic.$type,properties:{cardinality:{name:ic.cardinality},lookahead:{name:ic.lookahead},parenthesized:{name:ic.parenthesized,defaultValue:!1}},superTypes:[r9.$type]},TerminalGroup:{name:id.$type,properties:{cardinality:{name:id.cardinality},elements:{name:id.elements,defaultValue:[]},lookahead:{name:id.lookahead},parenthesized:{name:id.parenthesized,defaultValue:!1}},superTypes:[ic.$type]},TerminalRule:{name:ih.$type,properties:{definition:{name:ih.definition},fragment:{name:ih.fragment,defaultValue:!1},hidden:{name:ih.hidden,defaultValue:!1},name:{name:ih.name},type:{name:ih.type}},superTypes:[r8.$type]},TerminalRuleCall:{name:ig.$type,properties:{cardinality:{name:ig.cardinality},lookahead:{name:ig.lookahead},parenthesized:{name:ig.parenthesized,defaultValue:!1},rule:{name:ig.rule,referenceType:ih.$type}},superTypes:[ic.$type]},Type:{name:iv.$type,properties:{name:{name:iv.name},type:{name:iv.type}},superTypes:[nt.$type]},TypeAttribute:{name:iR.$type,properties:{defaultValue:{name:iR.defaultValue},isOptional:{name:iR.isOptional,defaultValue:!1},name:{name:iR.name},type:{name:iR.type}},superTypes:[]},TypeDefinition:{name:ib.$type,properties:{},superTypes:[]},UnionType:{name:iC.$type,properties:{types:{name:iC.types,defaultValue:[]}},superTypes:[ib.$type]},UnorderedGroup:{name:ik.$type,properties:{cardinality:{name:ik.cardinality},elements:{name:ik.elements,defaultValue:[]}},superTypes:[r9.$type]},UntilToken:{name:iN.$type,properties:{cardinality:{name:iN.cardinality},lookahead:{name:iN.lookahead},parenthesized:{name:iN.parenthesized,defaultValue:!1},terminal:{name:iN.terminal}},superTypes:[ic.$type]},ValueLiteral:{name:iI.$type,properties:{},superTypes:[]},Wildcard:{name:iP.$type,properties:{cardinality:{name:iP.cardinality},lookahead:{name:iP.lookahead},parenthesized:{name:iP.parenthesized,defaultValue:!1}},superTypes:[ic.$type]}}}},iL=new iD;function iM(e){let t=e,r=!1;for(;t;){let e=rU(t.grammarSource,n4);if(e&&e.dataType)t=t.container,r=!0;else if(r)return t;else break}}function ij(e){return new rz(e,e=>r_(e)?e.content:[],{includeRoot:!0})}function iF(e){return ij(e).filter(rP)}function iG(e,t){for(;e.container;)if((e=e.container)===t)return!0;return!1}function iz(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function iK(e){if(!e)return;let{offset:t,end:r,range:n}=e;return{range:n,offset:t,end:r,length:r-t}}function iq(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return eH.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return eH.After;let r=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,n=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return r&&n?eH.Inside:r?eH.OverlapBack:n?eH.OverlapFront:eH.Outside}function iU(e,t){return iq(e,t)>eH.After}tD(iM,"getDatatypeNode"),tD(ij,"streamCst"),tD(iF,"flattenCst"),tD(iG,"isChildNode"),tD(iz,"tokenToRange"),tD(iK,"toDocumentSegment"),(a=eH||(eH={}))[a.Before=0]="Before",a[a.After=1]="After",a[a.OverlapFront=2]="OverlapFront",a[a.OverlapBack=3]="OverlapBack",a[a.Inside=4]="Inside",a[a.Outside=5]="Outside",tD(iq,"compareRange"),tD(iU,"inRange");var iB=/^[\w\p{L}]$/u;function iW(e,t,r=iB){if(e){if(t>0){let n=t-e.offset,i=e.text.charAt(n);!r.test(i)&&t--}return iY(e,t)}}function iV(e,t){if(e){let r=iX(e,!0);if(r&&iH(r,t))return r;if(rO(e)){let r=e.content.findIndex(e=>!e.hidden);for(let n=r-1;n>=0;n--){let r=e.content[n];if(iH(r,t))return r}}}}function iH(e,t){return rP(e)&&t.includes(e.tokenType.name)}function iY(e,t){if(rP(e))return e;if(r_(e)){let r=iZ(e,t,!1);if(r)return iY(r,t)}}function iQ(e,t){if(rP(e))return e;if(r_(e)){let r=iZ(e,t,!0);if(r)return iQ(r,t)}}function iZ(e,t,r){let n,i=0,a=e.content.length-1;for(;i<=a;){let s=Math.floor((i+a)/2),o=e.content[s];if(o.offset<=t&&o.end>t)return o;o.end<=t?(n=r?o:void 0,i=s+1):a=s-1}return n}function iX(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e);for(;n>0;){n--;let e=r.content[n];if(t||!e.hidden)return e}e=r}}function iJ(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e),i=r.content.length-1;for(;n<i;){n++;let e=r.content[n];if(t||!e.hidden)return e}e=r}}function i0(e){let t;if(0===e.range.start.character)return e;let r=e.range.start.line,n=e;for(;e.container;){let i=e.container,a=t??i.content.indexOf(e);if(0===a?(e=i,t=void 0):(t=a-1,e=i.content[t]),e.range.start.line!==r)break;n=e}return n}function i1(e,t){let r=i2(e,t);return r?r.parent.content.slice(r.a+1,r.b):[]}function i2(e,t){let r,n=i3(e),i=i3(t);for(let e=0;e<n.length&&e<i.length;e++){let t=n[e],a=i[e];if(t.parent===a.parent)r={parent:t.parent,a:t.index,b:a.index};else break}return r}function i3(e){let t=[];for(;e.container;){let r=e.container,n=r.content.indexOf(e);t.push({parent:r,index:n}),e=r}return t.reverse()}tD(iW,"findDeclarationNodeAtOffset"),tD(iV,"findCommentNode"),tD(iH,"isCommentNode"),tD(iY,"findLeafNodeAtOffset"),tD(iQ,"findLeafNodeBeforeOffset"),tD(iZ,"binarySearch"),tD(iX,"getPreviousNode"),tD(iJ,"getNextNode"),tD(i0,"getStartlineNode"),tD(i1,"getInteriorNodes"),tD(i2,"getCommonParent"),tD(i3,"getParentChain");var i4={};tM(i4,{findAssignment:()=>aL,findNameAssignment:()=>aM,findNodeForKeyword:()=>aO,findNodeForProperty:()=>aI,findNodesForKeyword:()=>aP,findNodesForKeywordInternal:()=>aD,findNodesForProperty:()=>aw,getActionAtElement:()=>aF,getActionType:()=>aY,getAllReachableRules:()=>aC,getAllRulesUsedForCrossReferences:()=>ak,getCrossReferenceTerminal:()=>ax,getEntryRule:()=>ab,getExplicitRuleType:()=>aV,getHiddenRules:()=>aA,getRuleType:()=>aZ,getRuleTypeName:()=>aQ,getTypeName:()=>aH,isArrayCardinality:()=>az,isArrayOperator:()=>aK,isCommentTerminal:()=>aN,isDataType:()=>aB,isDataTypeRule:()=>aq,isOptionalCardinality:()=>aG,terminalRegex:()=>aX});var i9=class extends Error{static{tD(this,"ErrorWithLocation")}constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};function i5(e,t="Error: Got unexpected value."){throw Error(t)}function i6(e,t="Error: Condition is violated."){if(!e)throw Error(t)}tD(i5,"assertUnreachable"),tD(i6,"assertCondition");var i7={};function i8(e){return e.charCodeAt(0)}function ae(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function at(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function ar(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function an(){throw Error("Internal Error - Should never get here!")}function ai(e){return"Character"===e.type}tM(i7,{NEWLINE_REGEXP:()=>ad,escapeRegExp:()=>a$,getTerminalParts:()=>ay,isMultilineComment:()=>ag,isWhitespace:()=>av,partialMatches:()=>aR,partialRegExp:()=>aE,whitespaceCharacters:()=>aT}),tD(i8,"cc"),tD(ae,"insertToSet"),tD(at,"addFlag"),tD(ar,"ASSERT_EXISTS"),tD(an,"ASSERT_NEVER_REACH_HERE"),tD(ai,"isCharacter");var aa=[];for(let e=i8("0");e<=i8("9");e++)aa.push(e);var as=[i8("_")].concat(aa);for(let e=i8("a");e<=i8("z");e++)as.push(e);for(let e=i8("A");e<=i8("Z");e++)as.push(e);var ao=[i8(" "),i8("\f"),i8("\n"),i8("\r"),i8(" "),i8("\v"),i8(" "),i8("\xa0"),i8("\u1680"),i8("\u2000"),i8("\u2001"),i8("\u2002"),i8("\u2003"),i8("\u2004"),i8("\u2005"),i8("\u2006"),i8("\u2007"),i8("\u2008"),i8("\u2009"),i8("\u200A"),i8("\u2028"),i8("\u2029"),i8("\u202F"),i8("\u205F"),i8("\u3000"),i8("\uFEFF")],al=/[0-9a-fA-F]/,au=/[0-9]/,ac=/[1-9]/,ap=class{static{tD(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let t=this.disjunction();this.consumeChar("/");let r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":at(r,"global");break;case"i":at(r,"ignoreCase");break;case"m":at(r,"multiLine");break;case"u":at(r,"unicode");break;case"y":at(r,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break;case"<":switch(this.popChar()){case"=":t="Lookbehind";break;case"!":t="NegativeLookbehind"}}ar(t);let r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return an()}quantifier(e=!1){let t,r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":let n=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:n,atMost:n};break;case",":t=this.isDigit()?{atLeast:n,atMost:this.integerIncludingZero()}:{atLeast:n,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;ar(t)}if((!0!==e||void 0!==t)&&ar(t))return"?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e,t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}return(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),ar(e))?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):an()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[i8("\n"),i8("\r"),i8("\u2028"),i8("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=aa;break;case"D":e=aa,t=!0;break;case"s":e=ao;break;case"S":e=ao,t=!0;break;case"w":e=as;break;case"W":e=as,t=!0}return ar(e)?{type:"Set",value:e,complement:t}:an()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=i8("\f");break;case"n":e=i8("\n");break;case"r":e=i8("\r");break;case"t":e=i8(" ");break;case"v":e=i8("\v")}return ar(e)?{type:"Character",value:e}:an()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:i8("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:i8(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:i8(this.popChar())}}}characterClass(){let e=[],t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){let t=this.classAtom();if(t.type,ai(t)&&this.isRangeDash()){this.consumeChar("-");let r=this.classAtom();if(r.type,ai(r)){if(r.value<t.value)throw Error("Range out of order in character class");e.push({from:t.value,to:r.value})}else ae(t.value,e),e.push(i8("-")),ae(r.value,e)}else ae(t.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case"\n":case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:i8("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;this.consumeChar("("),"?"===this.peekChar(0)?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;let t=this.disjunction();this.consumeChar(")");let r={type:"Group",capturing:e,value:t};return e&&(r.idx=this.groupIdx),r}positiveInteger(){let e=this.popChar();if(!1===ac.test(e))throw Error("Expecting a positive integer");for(;au.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(!1===au.test(e))throw Error("Expecting an integer");for(;au.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){let e=this.popChar();switch(e){case"\n":case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:i8(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return"-"===this.peekChar()&&this.isClassAtom(1)}isDigit(){return au.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return"?"===this.peekChar(1)&&("="===this.peekChar(2)||"!"===this.peekChar(2)||"<"===this.peekChar(2)&&("="===this.peekChar(3)||"!"===this.peekChar(3)));default:return!1}}isQuantifier(){let e=this.saveState();try{return void 0!==this.quantifier(!0)}catch(e){return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let r=0;r<e;r++){let e=this.popChar();if(!1===al.test(e))throw Error("Expecting a HexDecimal digits");t+=e}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){let e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(void 0!==e&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}},af=class{static{tD(this,"BaseRegExpVisitor")}visitChildren(e){for(let t in e){let r=e[t];e.hasOwnProperty(t)&&(void 0!==r.type?this.visit(r):Array.isArray(r)&&r.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Lookbehind":this.visitLookbehind(e);break;case"NegativeLookbehind":this.visitNegativeLookbehind(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitLookbehind(e){}visitNegativeLookbehind(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}},ad=/\r?\n/gm,am=new ap,ah=new class extends af{static{tD(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let t=String.fromCharCode(e.value);if(this.multiline||"\n"!==t||(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let e=a$(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){let t=new RegExp(this.regex.substring(e.loc.begin,e.loc.end));this.multiline=!!"\n".match(t)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){"Group"===e.type&&e.quantifier||super.visitChildren(e)}};function ay(e){try{"string"!=typeof e&&(e=e.source),e=`/${e}/`;let t=am.pattern(e),r=[];for(let n of t.value.value)ah.reset(e),ah.visit(n),r.push({start:ah.startRegexp,end:ah.endRegex});return r}catch{return[]}}function ag(e){try{return"string"==typeof e&&(e=new RegExp(e)),e=e.toString(),ah.reset(e),ah.visit(am.pattern(e)),ah.multiline}catch{return!1}}tD(ay,"getTerminalParts"),tD(ag,"isMultilineComment");var aT="\f\n\r \v \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF".split("");function av(e){let t="string"==typeof e?new RegExp(e):e;return aT.some(e=>t.test(e))}function a$(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function aR(e,t){let r=aE(e),n=t.match(r);return!!n&&n[0].length>0}function aE(e){"string"==typeof e&&(e=new RegExp(e));let t=e,r=e.source,n=0;function i(){let e="",a;function s(t){e+=r.substr(n,t),n+=t}function o(t){e+="(?:"+r.substr(n,t)+"|$)",n+=t}for(tD(s,"appendRaw"),tD(o,"appendOptional");n<r.length;)switch(r[n]){case"\\":switch(r[n+1]){case"c":o(3);break;case"x":o(4);break;case"u":o(t.unicode?"{"===r[n+2]?r.indexOf("}",n)-n+1:6:2);break;case"p":case"P":o(t.unicode?r.indexOf("}",n)-n+1:2);break;case"k":o(r.indexOf(">",n)-n+1);break;default:o(2)}break;case"[":(a=/\[(?:\\.|.)*?\]/g).lastIndex=n,o((a=a.exec(r)||[])[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":s(1);break;case"{":(a=/\{\d+,?\d*\}/g).lastIndex=n,(a=a.exec(r))?s(a[0].length):o(1);break;case"(":if("?"===r[n+1])switch(r[n+2]){case":":e+="(?:",n+=3,e+=i()+"|$)";break;case"=":e+="(?=",n+=3,e+=i()+")";break;case"!":a=n,n+=3,i(),e+=r.substr(a,n-a);break;case"<":switch(r[n+3]){case"=":case"!":a=n,n+=4,i(),e+=r.substr(a,n-a);break;default:s(r.indexOf(">",n)-n+1),e+=i()+"|$)"}}else s(1),e+=i()+"|$)";break;case")":return++n,e;default:o(1)}return e}return tD(i,"process"),new RegExp(i(),e.flags)}function ab(e){return e.rules.find(e=>n4(e)&&e.entry)}function aA(e){return e.rules.filter(e=>iy(e)&&e.hidden)}function aC(e,t){let r=new Set,n=ab(e);if(!n)return new Set(e.rules);for(let i of[n].concat(aA(e)))aS(i,r,t);let i=new Set;for(let t of e.rules)(r.has(t.name)||iy(t)&&t.hidden)&&i.add(t);return i}function aS(e,t,r){t.add(e.name),rQ(e).forEach(e=>{if(ir(e)||r&&iT(e)){let n=e.rule.ref;n&&!t.has(n.name)&&aS(n,t,r)}})}function ak(e){let t=new Set;return rQ(e).forEach(e=>{nE(e)&&(n4(e.type.ref)&&t.add(e.type.ref),nO(e.type.ref)&&n4(e.type.ref.$container)&&t.add(e.type.ref.$container))}),t}function ax(e){if(e.terminal)return e.terminal;if(e.type.ref){let t=aM(e.type.ref);return t?.terminal}}function aN(e){return e.hidden&&!av(aX(e))}function aw(e,t){return e&&t?a_(e,t,e.astNode,!0):[]}function aI(e,t,r){if(!e||!t)return;let n=a_(e,t,e.astNode,!0);if(0!==n.length)return r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0,n[r]}function a_(e,t,r,n){if(!n){let r=rU(e.grammarSource,nf);if(r&&r.feature===t)return[e]}return r_(e)&&e.astNode===r?e.content.flatMap(e=>a_(e,t,r,!1)):[]}function aP(e,t){return e?aD(e,t,e?.astNode):[]}function aO(e,t,r){if(!e)return;let n=aD(e,t,e?.astNode);if(0!==n.length)return r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0,n[r]}function aD(e,t,r){let n;if(e.astNode!==r)return[];if(nU(e.grammarSource)&&e.grammarSource.value===t)return[e];let i=ij(e).iterator(),a=[];do if(!(n=i.next()).done){let e=n.value;e.astNode===r?nU(e.grammarSource)&&e.grammarSource.value===t&&a.push(e):i.prune()}while(!n.done)return a}function aL(e){let t=e.astNode;for(;t===e.container?.astNode;){let t=rU(e.grammarSource,nf);if(t)return t;e=e.container}}function aM(e){let t=e;return nO(t)&&(ni(t.$container)?t=t.$container.$container:r7(t.$container)?t=t.$container:i5(t.$container)),aj(e,t,new Map)}function aj(e,t,r){function n(t,n){let i;return rU(t,nf)||(i=aj(n,n,r)),r.set(e,i),i}if(tD(n,"go"),r.has(e))return r.get(e);for(let i of(r.set(e,void 0),rQ(t)))if(nf(i)&&"name"===i.feature.toLowerCase())return r.set(e,i),i;else if(ir(i)&&n4(i.rule.ref))return n(i,i.rule.ref);else if(ia(i)&&i.typeRef?.ref)return n(i,i.typeRef.ref)}function aF(e){let t=e.$container;if(n_(t)){let r=t.elements,n=r.indexOf(e);for(let e=n-1;e>=0;e--){let t=r[e];if(ni(t))return t;{let t=rQ(r[e]).find(ni);if(t)return t}}}return r5(t)?aF(t):void 0}function aG(e,t){return"?"===e||"*"===e||n_(t)&&!!t.guardCondition}function az(e){return"*"===e||"+"===e}function aK(e){return"+="===e}function aq(e){return aU(e,new Set)}function aU(e,t){if(t.has(e))return!0;for(let r of(t.add(e),rQ(e)))if(ir(r)){if(!r.rule.ref||n4(r.rule.ref)&&!aU(r.rule.ref,t)||nL(r.rule.ref))return!1}else if(nf(r))return!1;else if(ni(r))return!1;return!!e.definition}function aB(e){return aW(e.type,new Set)}function aW(e,t){if(t.has(e))return!0;if(t.add(e),nc(e)||n5(e))return!1;if(iS(e))return e.types.every(e=>aW(e,t));{if(!ia(e))return!1;if(void 0!==e.primitiveType||void 0!==e.stringType)return!0;if(void 0===e.typeRef)return!1;let r=e.typeRef.ref;return!!i$(r)&&aW(r.type,t)}}function aV(e){if(!iy(e)){if(e.inferredType)return e.inferredType.name;else if(e.dataType)return e.dataType;else if(e.returnType){let t=e.returnType.ref;if(t)return t.name}}}function aH(e){if(r7(e))return n4(e)&&aq(e)?e.name:aV(e)??e.name;if(nK(e)||i$(e)||ie(e))return e.name;if(ni(e)){let t=aY(e);if(t)return t}else if(nO(e))return e.name;throw Error("Cannot get name of Unknown Type")}function aY(e){return e.inferredType?e.inferredType.name:e.type?.ref?aH(e.type.ref):void 0}function aQ(e){return iy(e)?e.type?.name??"string":n4(e)&&aq(e)?e.name:aV(e)??e.name}function aZ(e){return iy(e)?e.type?.name??"string":aV(e)??e.name}function aX(e){let t={s:!1,i:!1,u:!1};return new RegExp(a0(e.definition,t),Object.entries(t).filter(([,e])=>e).map(([e])=>e).join(""))}tD(av,"isWhitespace"),tD(a$,"escapeRegExp"),tD(aR,"partialMatches"),tD(aE,"partialRegExp"),tD(ab,"getEntryRule"),tD(aA,"getHiddenRules"),tD(aC,"getAllReachableRules"),tD(aS,"ruleDfs"),tD(ak,"getAllRulesUsedForCrossReferences"),tD(ax,"getCrossReferenceTerminal"),tD(aN,"isCommentTerminal"),tD(aw,"findNodesForProperty"),tD(aI,"findNodeForProperty"),tD(a_,"findNodesForPropertyInternal"),tD(aP,"findNodesForKeyword"),tD(aO,"findNodeForKeyword"),tD(aD,"findNodesForKeywordInternal"),tD(aL,"findAssignment"),tD(aM,"findNameAssignment"),tD(aj,"findNameAssignmentInternal"),tD(aF,"getActionAtElement"),tD(aG,"isOptionalCardinality"),tD(az,"isArrayCardinality"),tD(aK,"isArrayOperator"),tD(aq,"isDataTypeRule"),tD(aU,"isDataTypeRuleInternal"),tD(aB,"isDataType"),tD(aW,"isDataTypeInternal"),tD(aV,"getExplicitRuleType"),tD(aH,"getTypeName"),tD(aY,"getActionType"),tD(aQ,"getRuleTypeName"),tD(aZ,"getRuleType"),tD(aX,"terminalRegex");var aJ=/[\s\S]/.source;function a0(e,t){if(iu(e))return a1(e);if(im(e))return a2(e);if(ny(e))return a9(e);if(iT(e)){let t=e.rule.ref;if(!t)throw Error("Missing rule reference.");return a6(a0(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}if(nH(e))return a4(e);else if(iw(e))return a3(e);else if(n7(e)){let r=e.regex.lastIndexOf("/"),n=e.regex.substring(1,r),i=e.regex.substring(r+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),a6(n,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}else if(iO(e))return a6(aJ,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized});else throw Error(`Invalid terminal element: ${e?.$type}, ${e?.$cstNode?.text}`)}function a1(e){return a6(e.elements.map(e=>a0(e)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function a2(e){return a6(e.elements.map(e=>a0(e)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function a3(e){return a6(`${aJ}*?${a0(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function a4(e){return a6(`(?!${a0(e.terminal)})${aJ}*?`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function a9(e){return e.right?a6(`[${a5(e.left)}-${a5(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1}):a6(a5(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function a5(e){return a$(e.value)}function a6(e,t){if(t.parenthesized||t.lookahead||!1!==t.wrap){let r=t.lookahead??(t.parenthesized?"":"?:");e=`(${r}${e})`}return t.cardinality?`${e}${t.cardinality}`:e}function a7(e){let t=[];for(let r of e.Grammar.rules)iy(r)&&aN(r)&&ag(aX(r))&&t.push(r.name);return{multilineCommentRules:t,nameRegexp:iB}}tD(a0,"abstractElementToRegex"),tD(a1,"terminalAlternativesToRegex"),tD(a2,"terminalGroupToRegex"),tD(a3,"untilTokenToRegex"),tD(a4,"negateTokenToRegex"),tD(a9,"characterRangeToRegex"),tD(a5,"keywordToRegex"),tD(a6,"withCardinality"),tD(a7,"createGrammarConfig");var a8="object"==typeof global&&global&&global.Object===Object&&global,se="object"==typeof self&&self&&self.Object===Object&&self,st=a8||se||Function("return this")(),sr=st.Symbol,sn=Object.prototype,si=sn.hasOwnProperty,sa=sn.toString,ss=sr?sr.toStringTag:void 0;function so(e){var t=si.call(e,ss),r=e[ss];try{e[ss]=void 0;var n=!0}catch(e){}var i=sa.call(e);return n&&(t?e[ss]=r:delete e[ss]),i}tD(so,"getRawTag");var sl=Object.prototype.toString;function su(e){return sl.call(e)}tD(su,"objectToString");var sc=sr?sr.toStringTag:void 0;function sp(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":sc&&sc in Object(e)?so(e):su(e)}function sf(e){return null!=e&&"object"==typeof e}function sd(e){return"symbol"==typeof e||sf(e)&&"[object Symbol]"==sp(e)}function sm(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}tD(sp,"baseGetTag"),tD(sf,"isObjectLike"),tD(sd,"isSymbol"),tD(sm,"arrayMap");var sh=Array.isArray,sy=1/0,sg=sr?sr.prototype:void 0,sT=sg?sg.toString:void 0;function sv(e){if("string"==typeof e)return e;if(sh(e))return sm(e,sv)+"";if(sd(e))return sT?sT.call(e):"";var t=e+"";return"0"==t&&1/e==-sy?"-0":t}tD(sv,"baseToString");var s$=/\s/;function sR(e){for(var t=e.length;t--&&s$.test(e.charAt(t)););return t}tD(sR,"trimmedEndIndex");var sE=/^\s+/;function sb(e){return e?e.slice(0,sR(e)+1).replace(sE,""):e}function sA(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}tD(sb,"baseTrim"),tD(sA,"isObject");var sC=0/0,sS=/^[-+]0x[0-9a-f]+$/i,sk=/^0b[01]+$/i,sx=/^0o[0-7]+$/i,sN=parseInt;function sw(e){if("number"==typeof e)return e;if(sd(e))return sC;if(sA(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=sA(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=sb(e);var r=sk.test(e);return r||sx.test(e)?sN(e.slice(2),r?2:8):sS.test(e)?sC:+e}tD(sw,"toNumber");var sI=1/0;function s_(e){return e?(e=sw(e))===sI||e===-sI?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}function sP(e){var t=s_(e),r=t%1;return t==t?r?t-r:t:0}function sO(e){return e}function sD(e){if(!sA(e))return!1;var t=sp(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}tD(s_,"toFinite"),tD(sP,"toInteger"),tD(sO,"identity"),tD(sD,"isFunction");var sL=st["__core-js_shared__"],sM=(s=/[^.]+$/.exec(sL&&sL.keys&&sL.keys.IE_PROTO||""))?"Symbol(src)_1."+s:"";function sj(e){return!!sM&&sM in e}tD(sj,"isMasked");var sF=Function.prototype.toString;function sG(e){if(null!=e){try{return sF.call(e)}catch(e){}try{return e+""}catch(e){}}return""}tD(sG,"toSource");var sz=/^\[object .+?Constructor\]$/,sK=Object.prototype,sq=Function.prototype.toString,sU=sK.hasOwnProperty,sB=RegExp("^"+sq.call(sU).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sW(e){return!(!sA(e)||sj(e))&&(sD(e)?sB:sz).test(sG(e))}function sV(e,t){return null==e?void 0:e[t]}function sH(e,t){var r=sV(e,t);return sW(r)?r:void 0}tD(sW,"baseIsNative"),tD(sV,"getValue"),tD(sH,"getNative");var sY=sH(st,"WeakMap"),sQ=Object.create,sZ=function(){function e(){}return tD(e,"object"),function(t){if(!sA(t))return{};if(sQ)return sQ(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();function sX(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function sJ(){}function s0(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}tD(sX,"apply"),tD(sJ,"noop"),tD(s0,"copyArray");var s1=Date.now;function s2(e){var t=0,r=0;return function(){var n=s1(),i=16-(n-r);if(r=n,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function s3(e){return function(){return e}}tD(s2,"shortOut"),tD(s3,"constant");var s4=function(){try{var e=sH(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),s9=s2(s4?function(e,t){return s4(e,"toString",{configurable:!0,enumerable:!1,value:s3(t),writable:!0})}:sO);function s5(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}function s6(e,t,r,n){for(var i=e.length,a=r+(n?1:-1);n?a--:++a<i;)if(t(e[a],a,e))return a;return -1}function s7(e){return e!=e}function s8(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return -1}function oe(e,t,r){return t==t?s8(e,t,r):s6(e,s7,r)}function ot(e,t){return!!(null==e?0:e.length)&&oe(e,t,0)>-1}tD(s5,"arrayEach"),tD(s6,"baseFindIndex"),tD(s7,"baseIsNaN"),tD(s8,"strictIndexOf"),tD(oe,"baseIndexOf"),tD(ot,"arrayIncludes");var or=/^(?:0|[1-9]\d*)$/;function on(e,t){var r=typeof e;return!!(t=null==t?0x1fffffffffffff:t)&&("number"==r||"symbol"!=r&&or.test(e))&&e>-1&&e%1==0&&e<t}function oi(e,t,r){"__proto__"==t&&s4?s4(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}function oa(e,t){return e===t||e!=e&&t!=t}tD(on,"isIndex"),tD(oi,"baseAssignValue"),tD(oa,"eq");var os=Object.prototype.hasOwnProperty;function oo(e,t,r){var n=e[t];os.call(e,t)&&oa(n,r)&&(void 0!==r||t in e)||oi(e,t,r)}function ol(e,t,r,n){var i=!r;r||(r={});for(var a=-1,s=t.length;++a<s;){var o=t[a],l=n?n(r[o],e[o],o,r,e):void 0;void 0===l&&(l=e[o]),i?oi(r,o,l):oo(r,o,l)}return r}tD(oo,"assignValue"),tD(ol,"copyObject");var ou=Math.max;function oc(e,t,r){return t=ou(void 0===t?e.length-1:t,0),function(){for(var n=arguments,i=-1,a=ou(n.length-t,0),s=Array(a);++i<a;)s[i]=n[t+i];i=-1;for(var o=Array(t+1);++i<t;)o[i]=n[i];return o[t]=r(s),sX(e,this,o)}}function op(e,t){return s9(oc(e,t,sO),e+"")}function of(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=0x1fffffffffffff}function od(e){return null!=e&&of(e.length)&&!sD(e)}function om(e,t,r){if(!sA(r))return!1;var n=typeof t;return("number"==n?!!(od(r)&&on(t,r.length)):"string"==n&&t in r)&&oa(r[t],e)}function oh(e){return op(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&om(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++n<i;){var o=r[n];o&&e(t,o,n,a)}return t})}tD(oc,"overRest"),tD(op,"baseRest"),tD(of,"isLength"),tD(od,"isArrayLike"),tD(om,"isIterateeCall"),tD(oh,"createAssigner");var oy=Object.prototype;function og(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||oy)}function oT(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function ov(e){return sf(e)&&"[object Arguments]"==sp(e)}tD(og,"isPrototype"),tD(oT,"baseTimes"),tD(ov,"baseIsArguments");var o$=Object.prototype,oR=o$.hasOwnProperty,oE=o$.propertyIsEnumerable,ob=ov(function(){return arguments}())?ov:function(e){return sf(e)&&oR.call(e,"callee")&&!oE.call(e,"callee")};function oA(){return!1}tD(oA,"stubFalse");var oC="object"==typeof exports&&exports&&!exports.nodeType&&exports,oS=oC&&"object"==typeof module&&module&&!module.nodeType&&module,ok=oS&&oS.exports===oC?st.Buffer:void 0,ox=(ok?ok.isBuffer:void 0)||oA,oN={};function ow(e){return sf(e)&&of(e.length)&&!!oN[sp(e)]}function oI(e){return function(t){return e(t)}}oN["[object Float32Array]"]=oN["[object Float64Array]"]=oN["[object Int8Array]"]=oN["[object Int16Array]"]=oN["[object Int32Array]"]=oN["[object Uint8Array]"]=oN["[object Uint8ClampedArray]"]=oN["[object Uint16Array]"]=oN["[object Uint32Array]"]=!0,oN["[object Arguments]"]=oN["[object Array]"]=oN["[object ArrayBuffer]"]=oN["[object Boolean]"]=oN["[object DataView]"]=oN["[object Date]"]=oN["[object Error]"]=oN["[object Function]"]=oN["[object Map]"]=oN["[object Number]"]=oN["[object Object]"]=oN["[object RegExp]"]=oN["[object Set]"]=oN["[object String]"]=oN["[object WeakMap]"]=!1,tD(ow,"baseIsTypedArray"),tD(oI,"baseUnary");var o_="object"==typeof exports&&exports&&!exports.nodeType&&exports,oP=o_&&"object"==typeof module&&module&&!module.nodeType&&module,oO=oP&&oP.exports===o_&&a8.process,oD=function(){try{var e=oP&&oP.require&&oP.require("util").types;if(e)return e;return oO&&oO.binding&&oO.binding("util")}catch(e){}}(),oL=oD&&oD.isTypedArray,oM=oL?oI(oL):ow,oj=Object.prototype.hasOwnProperty;function oF(e,t){var r=sh(e),n=!r&&ob(e),i=!r&&!n&&ox(e),a=!r&&!n&&!i&&oM(e),s=r||n||i||a,o=s?oT(e.length,String):[],l=o.length;for(var u in e)(t||oj.call(e,u))&&!(s&&("length"==u||i&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||on(u,l)))&&o.push(u);return o}function oG(e,t){return function(r){return e(t(r))}}tD(oF,"arrayLikeKeys"),tD(oG,"overArg");var oz=oG(Object.keys,Object),oK=Object.prototype.hasOwnProperty;function oq(e){if(!og(e))return oz(e);var t=[];for(var r in Object(e))oK.call(e,r)&&"constructor"!=r&&t.push(r);return t}function oU(e){return od(e)?oF(e):oq(e)}tD(oq,"baseKeys"),tD(oU,"keys");var oB=Object.prototype.hasOwnProperty,oW=oh(function(e,t){if(og(t)||od(t))return void ol(t,oU(t),e);for(var r in t)oB.call(t,r)&&oo(e,r,t[r])});function oV(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}tD(oV,"nativeKeysIn");var oH=Object.prototype.hasOwnProperty;function oY(e){if(!sA(e))return oV(e);var t=og(e),r=[];for(var n in e)"constructor"==n&&(t||!oH.call(e,n))||r.push(n);return r}function oQ(e){return od(e)?oF(e,!0):oY(e)}tD(oY,"baseKeysIn"),tD(oQ,"keysIn");var oZ=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,oX=/^\w*$/;function oJ(e,t){if(sh(e))return!1;var r=typeof e;return!!("number"==r||"symbol"==r||"boolean"==r||null==e||sd(e))||oX.test(e)||!oZ.test(e)||null!=t&&e in Object(t)}tD(oJ,"isKey");var o0=sH(Object,"create");function o1(){this.__data__=o0?o0(null):{},this.size=0}function o2(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=!!t,t}tD(o1,"hashClear"),tD(o2,"hashDelete");var o3=Object.prototype.hasOwnProperty;function o4(e){var t=this.__data__;if(o0){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return o3.call(t,e)?t[e]:void 0}tD(o4,"hashGet");var o9=Object.prototype.hasOwnProperty;function o5(e){var t=this.__data__;return o0?void 0!==t[e]:o9.call(t,e)}function o6(e,t){var r=this.__data__;return this.size+=+!this.has(e),r[e]=o0&&void 0===t?"__lodash_hash_undefined__":t,this}function o7(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function o8(){this.__data__=[],this.size=0}function le(e,t){for(var r=e.length;r--;)if(oa(e[r][0],t))return r;return -1}tD(o5,"hashHas"),tD(o6,"hashSet"),tD(o7,"Hash"),o7.prototype.clear=o1,o7.prototype.delete=o2,o7.prototype.get=o4,o7.prototype.has=o5,o7.prototype.set=o6,tD(o8,"listCacheClear"),tD(le,"assocIndexOf");var lt=Array.prototype.splice;function lr(e){var t=this.__data__,r=le(t,e);return!(r<0)&&(r==t.length-1?t.pop():lt.call(t,r,1),--this.size,!0)}function ln(e){var t=this.__data__,r=le(t,e);return r<0?void 0:t[r][1]}function li(e){return le(this.__data__,e)>-1}function la(e,t){var r=this.__data__,n=le(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function ls(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}tD(lr,"listCacheDelete"),tD(ln,"listCacheGet"),tD(li,"listCacheHas"),tD(la,"listCacheSet"),tD(ls,"ListCache"),ls.prototype.clear=o8,ls.prototype.delete=lr,ls.prototype.get=ln,ls.prototype.has=li,ls.prototype.set=la;var lo=sH(st,"Map");function ll(){this.size=0,this.__data__={hash:new o7,map:new(lo||ls),string:new o7}}function lu(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}function lc(e,t){var r=e.__data__;return lu(t)?r["string"==typeof t?"string":"hash"]:r.map}function lp(e){var t=lc(this,e).delete(e);return this.size-=!!t,t}function lf(e){return lc(this,e).get(e)}function ld(e){return lc(this,e).has(e)}function lm(e,t){var r=lc(this,e),n=r.size;return r.set(e,t),this.size+=+(r.size!=n),this}function lh(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ly(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError("Expected a function");var r=tD(function(){var n=arguments,i=t?t.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=e.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(ly.Cache||lh),r}function lg(e){var t=ly(e,function(e){return 500===r.size&&r.clear(),e}),r=t.cache;return t}tD(ll,"mapCacheClear"),tD(lu,"isKeyable"),tD(lc,"getMapData"),tD(lp,"mapCacheDelete"),tD(lf,"mapCacheGet"),tD(ld,"mapCacheHas"),tD(lm,"mapCacheSet"),tD(lh,"MapCache"),lh.prototype.clear=ll,lh.prototype.delete=lp,lh.prototype.get=lf,lh.prototype.has=ld,lh.prototype.set=lm,tD(ly,"memoize"),ly.Cache=lh,tD(lg,"memoizeCapped");var lT=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,lv=/\\(\\)?/g,l$=lg(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(lT,function(e,r,n,i){t.push(n?i.replace(lv,"$1"):r||e)}),t});function lR(e){return null==e?"":sv(e)}function lE(e,t){return sh(e)?e:oJ(e,t)?[e]:l$(lR(e))}tD(lR,"toString"),tD(lE,"castPath");var lb=1/0;function lA(e){if("string"==typeof e||sd(e))return e;var t=e+"";return"0"==t&&1/e==-lb?"-0":t}function lC(e,t){t=lE(t,e);for(var r=0,n=t.length;null!=e&&r<n;)e=e[lA(t[r++])];return r&&r==n?e:void 0}function lS(e,t,r){var n=null==e?void 0:lC(e,t);return void 0===n?r:n}function lk(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}tD(lA,"toKey"),tD(lC,"baseGet"),tD(lS,"get"),tD(lk,"arrayPush");var lx=sr?sr.isConcatSpreadable:void 0;function lN(e){return sh(e)||ob(e)||!!(lx&&e&&e[lx])}function lw(e,t,r,n,i){var a=-1,s=e.length;for(r||(r=lN),i||(i=[]);++a<s;){var o=e[a];t>0&&r(o)?t>1?lw(o,t-1,r,n,i):lk(i,o):n||(i[i.length]=o)}return i}function lI(e){return(null==e?0:e.length)?lw(e,1):[]}tD(lN,"isFlattenable"),tD(lw,"baseFlatten"),tD(lI,"flatten");var l_=oG(Object.getPrototypeOf,Object);function lP(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(i);++n<i;)a[n]=e[n+t];return a}function lO(e,t,r,n){var i=-1,a=null==e?0:e.length;for(n&&a&&(r=e[++i]);++i<a;)r=t(r,e[i],i,e);return r}function lD(){this.__data__=new ls,this.size=0}function lL(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function lM(e){return this.__data__.get(e)}function lj(e){return this.__data__.has(e)}function lF(e,t){var r=this.__data__;if(r instanceof ls){var n=r.__data__;if(!lo||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new lh(n)}return r.set(e,t),this.size=r.size,this}function lG(e){var t=this.__data__=new ls(e);this.size=t.size}function lz(e,t){return e&&ol(t,oU(t),e)}function lK(e,t){return e&&ol(t,oQ(t),e)}tD(lP,"baseSlice"),tD(lO,"arrayReduce"),tD(lD,"stackClear"),tD(lL,"stackDelete"),tD(lM,"stackGet"),tD(lj,"stackHas"),tD(lF,"stackSet"),tD(lG,"Stack"),lG.prototype.clear=lD,lG.prototype.delete=lL,lG.prototype.get=lM,lG.prototype.has=lj,lG.prototype.set=lF,tD(lz,"baseAssign"),tD(lK,"baseAssignIn");var lq="object"==typeof exports&&exports&&!exports.nodeType&&exports,lU=lq&&"object"==typeof module&&module&&!module.nodeType&&module,lB=lU&&lU.exports===lq?st.Buffer:void 0,lW=lB?lB.allocUnsafe:void 0;function lV(e,t){if(t)return e.slice();var r=e.length,n=lW?lW(r):new e.constructor(r);return e.copy(n),n}function lH(e,t){for(var r=-1,n=null==e?0:e.length,i=0,a=[];++r<n;){var s=e[r];t(s,r,e)&&(a[i++]=s)}return a}function lY(){return[]}tD(lV,"cloneBuffer"),tD(lH,"arrayFilter"),tD(lY,"stubArray");var lQ=Object.prototype.propertyIsEnumerable,lZ=Object.getOwnPropertySymbols,lX=lZ?function(e){return null==e?[]:lH(lZ(e=Object(e)),function(t){return lQ.call(e,t)})}:lY;function lJ(e,t){return ol(e,lX(e),t)}tD(lJ,"copySymbols");var l0=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)lk(t,lX(e)),e=l_(e);return t}:lY;function l1(e,t){return ol(e,l0(e),t)}function l2(e,t,r){var n=t(e);return sh(e)?n:lk(n,r(e))}function l3(e){return l2(e,oU,lX)}function l4(e){return l2(e,oQ,l0)}tD(l1,"copySymbolsIn"),tD(l2,"baseGetAllKeys"),tD(l3,"getAllKeys"),tD(l4,"getAllKeysIn");var l9=sH(st,"DataView"),l5=sH(st,"Promise"),l6=sH(st,"Set"),l7="[object Map]",l8="[object Promise]",ue="[object Set]",ut="[object WeakMap]",ur="[object DataView]",un=sG(l9),ui=sG(lo),ua=sG(l5),us=sG(l6),uo=sG(sY),ul=sp;(l9&&ul(new l9(new ArrayBuffer(1)))!=ur||lo&&ul(new lo)!=l7||l5&&ul(l5.resolve())!=l8||l6&&ul(new l6)!=ue||sY&&ul(new sY)!=ut)&&(ul=tD(function(e){var t=sp(e),r="[object Object]"==t?e.constructor:void 0,n=r?sG(r):"";if(n)switch(n){case un:return ur;case ui:return l7;case ua:return l8;case us:return ue;case uo:return ut}return t},"getTag"));var uu=ul,uc=Object.prototype.hasOwnProperty;function up(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&uc.call(e,"index")&&(r.index=e.index,r.input=e.input),r}tD(up,"initCloneArray");var uf=st.Uint8Array;function ud(e){var t=new e.constructor(e.byteLength);return new uf(t).set(new uf(e)),t}function um(e,t){var r=t?ud(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}tD(ud,"cloneArrayBuffer"),tD(um,"cloneDataView");var uh=/\w*$/;function uy(e){var t=new e.constructor(e.source,uh.exec(e));return t.lastIndex=e.lastIndex,t}tD(uy,"cloneRegExp");var ug=sr?sr.prototype:void 0,uT=ug?ug.valueOf:void 0;function uv(e){return uT?Object(uT.call(e)):{}}function u$(e,t){var r=t?ud(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function uR(e,t,r){var n=e.constructor;switch(t){case"[object ArrayBuffer]":return ud(e);case"[object Boolean]":case"[object Date]":return new n(+e);case"[object DataView]":return um(e,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return u$(e,r);case"[object Map]":case"[object Set]":return new n;case"[object Number]":case"[object String]":return new n(e);case"[object RegExp]":return uy(e);case"[object Symbol]":return uv(e)}}function uE(e){return"function"!=typeof e.constructor||og(e)?{}:sZ(l_(e))}function ub(e){return sf(e)&&"[object Map]"==uu(e)}tD(uv,"cloneSymbol"),tD(u$,"cloneTypedArray"),tD(uR,"initCloneByTag"),tD(uE,"initCloneObject"),tD(ub,"baseIsMap");var uA=oD&&oD.isMap,uC=uA?oI(uA):ub;function uS(e){return sf(e)&&"[object Set]"==uu(e)}tD(uS,"baseIsSet");var uk=oD&&oD.isSet,ux=uk?oI(uk):uS,uN="[object Arguments]",uw="[object Function]",uI="[object Object]",u_={};function uP(e,t,r,n,i,a){var s,o=1&t,l=2&t,u=4&t;if(r&&(s=i?r(e,n,i,a):r(e)),void 0!==s)return s;if(!sA(e))return e;var c=sh(e);if(c){if(s=up(e),!o)return s0(e,s)}else{var p=uu(e),f=p==uw||"[object GeneratorFunction]"==p;if(ox(e))return lV(e,o);if(p==uI||p==uN||f&&!i){if(s=l||f?{}:uE(e),!o)return l?l1(e,lK(s,e)):lJ(e,lz(s,e))}else{if(!u_[p])return i?e:{};s=uR(e,p,o)}}a||(a=new lG);var d=a.get(e);if(d)return d;a.set(e,s),ux(e)?e.forEach(function(n){s.add(uP(n,t,r,n,e,a))}):uC(e)&&e.forEach(function(n,i){s.set(i,uP(n,t,r,i,e,a))});var m=u?l?l4:l3:l?oQ:oU,h=c?void 0:m(e);return s5(h||e,function(n,i){h&&(n=e[i=n]),oo(s,i,uP(n,t,r,i,e,a))}),s}function uO(e){return uP(e,4)}function uD(e){for(var t=-1,r=null==e?0:e.length,n=0,i=[];++t<r;){var a=e[t];a&&(i[n++]=a)}return i}function uL(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}function uM(e){return this.__data__.has(e)}function uj(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new lh;++t<r;)this.add(e[t])}function uF(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}function uG(e,t){return e.has(t)}function uz(e,t,r,n,i,a){var s=1&r,o=e.length,l=t.length;if(o!=l&&!(s&&l>o))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var p=-1,f=!0,d=2&r?new uj:void 0;for(a.set(e,t),a.set(t,e);++p<o;){var m=e[p],h=t[p];if(n)var y=s?n(h,m,p,t,e,a):n(m,h,p,e,t,a);if(void 0!==y){if(y)continue;f=!1;break}if(d){if(!uF(t,function(e,t){if(!uG(d,t)&&(m===e||i(m,e,r,n,a)))return d.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,r,n,a))){f=!1;break}}return a.delete(e),a.delete(t),f}function uK(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}function uq(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}u_[uN]=u_["[object Array]"]=u_["[object ArrayBuffer]"]=u_["[object DataView]"]=u_["[object Boolean]"]=u_["[object Date]"]=u_["[object Float32Array]"]=u_["[object Float64Array]"]=u_["[object Int8Array]"]=u_["[object Int16Array]"]=u_["[object Int32Array]"]=u_["[object Map]"]=u_["[object Number]"]=u_[uI]=u_["[object RegExp]"]=u_["[object Set]"]=u_["[object String]"]=u_["[object Symbol]"]=u_["[object Uint8Array]"]=u_["[object Uint8ClampedArray]"]=u_["[object Uint16Array]"]=u_["[object Uint32Array]"]=!0,u_["[object Error]"]=u_[uw]=u_["[object WeakMap]"]=!1,tD(uP,"baseClone"),tD(uO,"clone"),tD(uD,"compact"),tD(uL,"setCacheAdd"),tD(uM,"setCacheHas"),tD(uj,"SetCache"),uj.prototype.add=uj.prototype.push=uL,uj.prototype.has=uM,tD(uF,"arraySome"),tD(uG,"cacheHas"),tD(uz,"equalArrays"),tD(uK,"mapToArray"),tD(uq,"setToArray");var uU=sr?sr.prototype:void 0,uB=uU?uU.valueOf:void 0;function uW(e,t,r,n,i,a,s){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)break;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":if(e.byteLength!=t.byteLength||!a(new uf(e),new uf(t)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return oa(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var o=uK;case"[object Set]":var l=1&n;if(o||(o=uq),e.size!=t.size&&!l)break;var u=s.get(e);if(u)return u==t;n|=2,s.set(e,t);var c=uz(o(e),o(t),n,i,a,s);return s.delete(e),c;case"[object Symbol]":if(uB)return uB.call(e)==uB.call(t)}return!1}tD(uW,"equalByTag");var uV=Object.prototype.hasOwnProperty;function uH(e,t,r,n,i,a){var s=1&r,o=l3(e),l=o.length;if(l!=l3(t).length&&!s)return!1;for(var u=l;u--;){var c=o[u];if(!(s?c in t:uV.call(t,c)))return!1}var p=a.get(e),f=a.get(t);if(p&&f)return p==t&&f==e;var d=!0;a.set(e,t),a.set(t,e);for(var m=s;++u<l;){var h=e[c=o[u]],y=t[c];if(n)var g=s?n(y,h,c,t,e,a):n(h,y,c,e,t,a);if(!(void 0===g?h===y||i(h,y,r,n,a):g)){d=!1;break}m||(m="constructor"==c)}if(d&&!m){var T=e.constructor,v=t.constructor;T!=v&&"constructor"in e&&"constructor"in t&&!("function"==typeof T&&T instanceof T&&"function"==typeof v&&v instanceof v)&&(d=!1)}return a.delete(e),a.delete(t),d}tD(uH,"equalObjects");var uY="[object Arguments]",uQ="[object Array]",uZ="[object Object]",uX=Object.prototype.hasOwnProperty;function uJ(e,t,r,n,i,a){var s=sh(e),o=sh(t),l=s?uQ:uu(e),u=o?uQ:uu(t);l=l==uY?uZ:l,u=u==uY?uZ:u;var c=l==uZ,p=u==uZ,f=l==u;if(f&&ox(e)){if(!ox(t))return!1;s=!0,c=!1}if(f&&!c)return a||(a=new lG),s||oM(e)?uz(e,t,r,n,i,a):uW(e,t,l,r,n,i,a);if(!(1&r)){var d=c&&uX.call(e,"__wrapped__"),m=p&&uX.call(t,"__wrapped__");if(d||m){var h=d?e.value():e,y=m?t.value():t;return a||(a=new lG),i(h,y,r,n,a)}}return!!f&&(a||(a=new lG),uH(e,t,r,n,i,a))}function u0(e,t,r,n,i){return e===t||(null!=e&&null!=t&&(sf(e)||sf(t))?uJ(e,t,r,n,u0,i):e!=e&&t!=t)}function u1(e,t,r,n){var i=r.length,a=i,s=!n;if(null==e)return!a;for(e=Object(e);i--;){var o=r[i];if(s&&o[2]?o[1]!==e[o[0]]:!(o[0]in e))return!1}for(;++i<a;){var l=(o=r[i])[0],u=e[l],c=o[1];if(s&&o[2]){if(void 0===u&&!(l in e))return!1}else{var p=new lG;if(n)var f=n(u,c,l,e,t,p);if(!(void 0===f?u0(c,u,3,n,p):f))return!1}}return!0}function u2(e){return e==e&&!sA(e)}function u3(e){for(var t=oU(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,u2(i)]}return t}function u4(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}}function u9(e){var t=u3(e);return 1==t.length&&t[0][2]?u4(t[0][0],t[0][1]):function(r){return r===e||u1(r,e,t)}}function u5(e,t){return null!=e&&t in Object(e)}function u6(e,t,r){t=lE(t,e);for(var n=-1,i=t.length,a=!1;++n<i;){var s=lA(t[n]);if(!(a=null!=e&&r(e,s)))break;e=e[s]}return a||++n!=i?a:!!(i=null==e?0:e.length)&&of(i)&&on(s,i)&&(sh(e)||ob(e))}function u7(e,t){return null!=e&&u6(e,t,u5)}function u8(e,t){return oJ(e)&&u2(t)?u4(lA(e),t):function(r){var n=lS(r,e);return void 0===n&&n===t?u7(r,e):u0(t,n,3)}}function ce(e){return function(t){return null==t?void 0:t[e]}}function ct(e){return function(t){return lC(t,e)}}function cr(e){return oJ(e)?ce(lA(e)):ct(e)}function cn(e){return"function"==typeof e?e:null==e?sO:"object"==typeof e?sh(e)?u8(e[0],e[1]):u9(e):cr(e)}function ci(e,t,r,n){for(var i=-1,a=null==e?0:e.length;++i<a;){var s=e[i];t(n,s,r(s),e)}return n}function ca(e){return function(t,r,n){for(var i=-1,a=Object(t),s=n(t),o=s.length;o--;){var l=s[e?o:++i];if(!1===r(a[l],l,a))break}return t}}tD(uJ,"baseIsEqualDeep"),tD(u0,"baseIsEqual"),tD(u1,"baseIsMatch"),tD(u2,"isStrictComparable"),tD(u3,"getMatchData"),tD(u4,"matchesStrictComparable"),tD(u9,"baseMatches"),tD(u5,"baseHasIn"),tD(u6,"hasPath"),tD(u7,"hasIn"),tD(u8,"baseMatchesProperty"),tD(ce,"baseProperty"),tD(ct,"basePropertyDeep"),tD(cr,"property"),tD(cn,"baseIteratee"),tD(ci,"arrayAggregator"),tD(ca,"createBaseFor");var cs=ca();function co(e,t){return e&&cs(e,t,oU)}function cl(e,t){return function(r,n){if(null==r)return r;if(!od(r))return e(r,n);for(var i=r.length,a=t?i:-1,s=Object(r);(t?a--:++a<i)&&!1!==n(s[a],a,s););return r}}tD(co,"baseForOwn"),tD(cl,"createBaseEach");var cu=cl(co);function cc(e,t,r,n){return cu(e,function(e,i,a){t(n,e,r(e),a)}),n}function cp(e,t){return function(r,n){var i=sh(r)?ci:cc,a=t?t():{};return i(r,e,cn(n,2),a)}}tD(cc,"baseAggregator"),tD(cp,"createAggregator");var cf=Object.prototype,cd=cf.hasOwnProperty,cm=op(function(e,t){e=Object(e);var r=-1,n=t.length,i=n>2?t[2]:void 0;for(i&&om(t[0],t[1],i)&&(n=1);++r<n;)for(var a=t[r],s=oQ(a),o=-1,l=s.length;++o<l;){var u=s[o],c=e[u];(void 0===c||oa(c,cf[u])&&!cd.call(e,u))&&(e[u]=a[u])}return e});function ch(e){return sf(e)&&od(e)}function cy(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}function cg(e,t,r,n){var i=-1,a=ot,s=!0,o=e.length,l=[],u=t.length;if(!o)return l;r&&(t=sm(t,oI(r))),n?(a=cy,s=!1):t.length>=200&&(a=uG,s=!1,t=new uj(t));t:for(;++i<o;){var c=e[i],p=null==r?c:r(c);if(c=n||0!==c?c:0,s&&p==p){for(var f=u;f--;)if(t[f]===p)continue t;l.push(c)}else a(t,p,n)||l.push(c)}return l}tD(ch,"isArrayLikeObject"),tD(cy,"arrayIncludesWith"),tD(cg,"baseDifference");var cT=op(function(e,t){return ch(e)?cg(e,lw(t,1,ch,!0)):[]});function cv(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}function c$(e,t,r){var n=null==e?0:e.length;return n?lP(e,(t=r||void 0===t?1:sP(t))<0?0:t,n):[]}function cR(e,t,r){var n=null==e?0:e.length;return n?lP(e,0,(t=n-(t=r||void 0===t?1:sP(t)))<0?0:t):[]}function cE(e){return"function"==typeof e?e:sO}function cb(e,t){return(sh(e)?s5:cu)(e,cE(t))}function cA(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(!t(e[r],r,e))return!1;return!0}function cC(e,t){var r=!0;return cu(e,function(e,n,i){return r=!!t(e,n,i)}),r}function cS(e,t,r){var n=sh(e)?cA:cC;return r&&om(e,t,r)&&(t=void 0),n(e,cn(t,3))}function ck(e,t){var r=[];return cu(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r}function cx(e,t){return(sh(e)?lH:ck)(e,cn(t,3))}function cN(e){return function(t,r,n){var i=Object(t);if(!od(t)){var a=cn(r,3);t=oU(t),r=tD(function(e){return a(i[e],e,i)},"predicate")}var s=e(t,r,n);return s>-1?i[a?t[s]:s]:void 0}}tD(cv,"last"),tD(c$,"drop"),tD(cR,"dropRight"),tD(cE,"castFunction"),tD(cb,"forEach"),tD(cA,"arrayEvery"),tD(cC,"baseEvery"),tD(cS,"every"),tD(ck,"baseFilter"),tD(cx,"filter"),tD(cN,"createFind");var cw=Math.max;function cI(e,t,r){var n=null==e?0:e.length;if(!n)return -1;var i=null==r?0:sP(r);return i<0&&(i=cw(n+i,0)),s6(e,cn(t,3),i)}tD(cI,"findIndex");var c_=cN(cI);function cP(e){return e&&e.length?e[0]:void 0}function cO(e,t){var r=-1,n=od(e)?Array(e.length):[];return cu(e,function(e,i,a){n[++r]=t(e,i,a)}),n}function cD(e,t){return(sh(e)?sm:cO)(e,cn(t,3))}function cL(e,t){return lw(cD(e,t),1)}tD(cP,"head"),tD(cO,"baseMap"),tD(cD,"map"),tD(cL,"flatMap");var cM=Object.prototype.hasOwnProperty,cj=cp(function(e,t,r){cM.call(e,r)?e[r].push(t):oi(e,r,[t])}),cF=Object.prototype.hasOwnProperty;function cG(e,t){return null!=e&&cF.call(e,t)}function cz(e,t){return null!=e&&u6(e,t,cG)}function cK(e){return"string"==typeof e||!sh(e)&&sf(e)&&"[object String]"==sp(e)}function cq(e,t){return sm(t,function(t){return e[t]})}function cU(e){return null==e?[]:cq(e,oU(e))}tD(cG,"baseHas"),tD(cz,"has"),tD(cK,"isString"),tD(cq,"baseValues"),tD(cU,"values");var cB=Math.max;function cW(e,t,r,n){e=od(e)?e:cU(e),r=r&&!n?sP(r):0;var i=e.length;return r<0&&(r=cB(i+r,0)),cK(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&oe(e,t,r)>-1}tD(cW,"includes");var cV=Math.max;function cH(e,t,r){var n=null==e?0:e.length;if(!n)return -1;var i=null==r?0:sP(r);return i<0&&(i=cV(n+i,0)),oe(e,t,i)}tD(cH,"indexOf");var cY=Object.prototype.hasOwnProperty;function cQ(e){if(null==e)return!0;if(od(e)&&(sh(e)||"string"==typeof e||"function"==typeof e.splice||ox(e)||oM(e)||ob(e)))return!e.length;var t=uu(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(og(e))return!oq(e).length;for(var r in e)if(cY.call(e,r))return!1;return!0}function cZ(e){return sf(e)&&"[object RegExp]"==sp(e)}tD(cQ,"isEmpty"),tD(cZ,"baseIsRegExp");var cX=oD&&oD.isRegExp,cJ=cX?oI(cX):cZ;function c0(e){return void 0===e}function c1(e){if("function"!=typeof e)throw TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function c2(e,t,r,n){if(!sA(e))return e;t=lE(t,e);for(var i=-1,a=t.length,s=a-1,o=e;null!=o&&++i<a;){var l=lA(t[i]),u=r;if("__proto__"===l||"constructor"===l||"prototype"===l)break;if(i!=s){var c=o[l];void 0===(u=n?n(c,l,o):void 0)&&(u=sA(c)?c:on(t[i+1])?[]:{})}oo(o,l,u),o=o[l]}return e}function c3(e,t,r){for(var n=-1,i=t.length,a={};++n<i;){var s=t[n],o=lC(e,s);r(o,s)&&c2(a,lE(s,e),o)}return a}function c4(e,t){if(null==e)return{};var r=sm(l4(e),function(e){return[e]});return t=cn(t),c3(e,r,function(e,r){return t(e,r[0])})}function c9(e,t,r,n,i){return i(e,function(e,i,a){r=n?(n=!1,e):t(r,e,i,a)}),r}function c5(e,t,r){var n=sh(e)?lO:c9,i=arguments.length<3;return n(e,cn(t,4),r,i,cu)}function c6(e,t){return(sh(e)?lH:ck)(e,c1(cn(t,3)))}function c7(e,t){var r;return cu(e,function(e,n,i){return!(r=t(e,n,i))}),!!r}function c8(e,t,r){var n=sh(e)?uF:c7;return r&&om(e,t,r)&&(t=void 0),n(e,cn(t,3))}tD(c0,"isUndefined"),tD(c1,"negate"),tD(c2,"baseSet"),tD(c3,"basePickBy"),tD(c4,"pickBy"),tD(c9,"baseReduce"),tD(c5,"reduce"),tD(c6,"reject"),tD(c7,"baseSome"),tD(c8,"some");var pe=l6&&1/uq(new l6([,-0]))[1]==1/0?function(e){return new l6(e)}:sJ;function pt(e,t,r){var n=-1,i=ot,a=e.length,s=!0,o=[],l=o;if(r)s=!1,i=cy;else if(a>=200){var u=t?null:pe(e);if(u)return uq(u);s=!1,i=uG,l=new uj}else l=t?[]:o;t:for(;++n<a;){var c=e[n],p=t?t(c):c;if(c=r||0!==c?c:0,s&&p==p){for(var f=l.length;f--;)if(l[f]===p)continue t;t&&l.push(p),o.push(c)}else i(l,p,r)||(l!==o&&l.push(p),o.push(c))}return o}function pr(e){return e&&e.length?pt(e):[]}function pn(e){console&&console.error&&console.error(`Error: ${e}`)}function pi(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function pa(e){let t=new Date().getTime(),r=e();return{time:new Date().getTime()-t,value:r}}function ps(e){function t(){}tD(t,"FakeConstructor"),t.prototype=e;let r=new t;function n(){return typeof r.bar}return tD(n,"fakeAccess"),n(),n(),e}function po(e){return pl(e)?e.LABEL:e.name}function pl(e){return cK(e.LABEL)&&""!==e.LABEL}tD(pt,"baseUniq"),tD(pr,"uniq"),tD(pn,"PRINT_ERROR"),tD(pi,"PRINT_WARNING"),tD(pa,"timer"),tD(ps,"toFastProperties"),tD(po,"tokenLabel"),tD(pl,"hasTokenLabel");var pu=class{static{tD(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),cb(this.definition,t=>{t.accept(e)})}},pc=class extends pu{static{tD(this,"NonTerminal")}constructor(e){super([]),this.idx=1,oW(this,c4(e,e=>void 0!==e))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}},pp=class extends pu{static{tD(this,"Rule")}constructor(e){super(e.definition),this.orgText="",oW(this,c4(e,e=>void 0!==e))}},pf=class extends pu{static{tD(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,oW(this,c4(e,e=>void 0!==e))}},pd=class extends pu{static{tD(this,"Option")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},pm=class extends pu{static{tD(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},ph=class extends pu{static{tD(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},py=class extends pu{static{tD(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},pg=class extends pu{static{tD(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,oW(this,c4(e,e=>void 0!==e))}},pT=class extends pu{static{tD(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,oW(this,c4(e,e=>void 0!==e))}},pv=class{static{tD(this,"Terminal")}constructor(e){this.idx=1,oW(this,c4(e,e=>void 0!==e))}accept(e){e.visit(this)}};function p$(e){return cD(e,pR)}function pR(e){function t(e){return cD(e,pR)}if(tD(t,"convertDefinition"),e instanceof pc){let t={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return cK(e.label)&&(t.label=e.label),t}if(e instanceof pf)return{type:"Alternative",definition:t(e.definition)};if(e instanceof pd)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof pm)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof ph)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:pR(new pv({terminalType:e.separator})),definition:t(e.definition)};else if(e instanceof pg)return{type:"RepetitionWithSeparator",idx:e.idx,separator:pR(new pv({terminalType:e.separator})),definition:t(e.definition)};else if(e instanceof py)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};else if(e instanceof pT)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};else if(e instanceof pv){let t={type:"Terminal",name:e.terminalType.name,label:po(e.terminalType),idx:e.idx};cK(e.label)&&(t.terminalLabel=e.label);let r=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=cJ(r)?r.source:r),t}else if(e instanceof pp)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};else throw Error("non exhaustive match")}tD(p$,"serializeGrammar"),tD(pR,"serializeProduction");var pE=class{static{tD(this,"GAstVisitor")}visit(e){switch(e.constructor){case pc:return this.visitNonTerminal(e);case pf:return this.visitAlternative(e);case pd:return this.visitOption(e);case pm:return this.visitRepetitionMandatory(e);case ph:return this.visitRepetitionMandatoryWithSeparator(e);case pg:return this.visitRepetitionWithSeparator(e);case py:return this.visitRepetition(e);case pT:return this.visitAlternation(e);case pv:return this.visitTerminal(e);case pp:return this.visitRule(e);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}};function pb(e){return e instanceof pf||e instanceof pd||e instanceof py||e instanceof pm||e instanceof ph||e instanceof pg||e instanceof pv||e instanceof pp}function pA(e,t=[]){return e instanceof pd||e instanceof py||e instanceof pg||(e instanceof pT?c8(e.definition,e=>pA(e,t)):!(e instanceof pc&&cW(t,e))&&e instanceof pu&&(e instanceof pc&&t.push(e),cS(e.definition,e=>pA(e,t))))}function pC(e){return e instanceof pT}function pS(e){if(e instanceof pc)return"SUBRULE";if(e instanceof pd)return"OPTION";if(e instanceof pT)return"OR";if(e instanceof pm)return"AT_LEAST_ONE";if(e instanceof ph)return"AT_LEAST_ONE_SEP";else if(e instanceof pg)return"MANY_SEP";else if(e instanceof py)return"MANY";else if(e instanceof pv)return"CONSUME";else throw Error("non exhaustive match")}tD(pb,"isSequenceProd"),tD(pA,"isOptionalProd"),tD(pC,"isBranchingProd"),tD(pS,"getProductionDslName");var pk=class{static{tD(this,"RestWalker")}walk(e,t=[]){cb(e.definition,(r,n)=>{let i=c$(e.definition,n+1);if(r instanceof pc)this.walkProdRef(r,i,t);else if(r instanceof pv)this.walkTerminal(r,i,t);else if(r instanceof pf)this.walkFlat(r,i,t);else if(r instanceof pd)this.walkOption(r,i,t);else if(r instanceof pm)this.walkAtLeastOne(r,i,t);else if(r instanceof ph)this.walkAtLeastOneSep(r,i,t);else if(r instanceof pg)this.walkManySep(r,i,t);else if(r instanceof py)this.walkMany(r,i,t);else if(r instanceof pT)this.walkOr(r,i,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){let n=t.concat(r);this.walk(e,n)}walkOption(e,t,r){let n=t.concat(r);this.walk(e,n)}walkAtLeastOne(e,t,r){let n=[new pd({definition:e.definition})].concat(t,r);this.walk(e,n)}walkAtLeastOneSep(e,t,r){let n=px(e,t,r);this.walk(e,n)}walkMany(e,t,r){let n=[new pd({definition:e.definition})].concat(t,r);this.walk(e,n)}walkManySep(e,t,r){let n=px(e,t,r);this.walk(e,n)}walkOr(e,t,r){let n=t.concat(r);cb(e.definition,e=>{let t=new pf({definition:[e]});this.walk(t,n)})}};function px(e,t,r){return[new pd({definition:[new pv({terminalType:e.separator})].concat(e.definition)})].concat(t,r)}function pN(e){if(e instanceof pc)return pN(e.referencedRule);if(e instanceof pv)return p_(e);if(pb(e))return pw(e);if(pC(e))return pI(e);throw Error("non exhaustive match")}function pw(e){let t,r=[],n=e.definition,i=0,a=n.length>i,s=!0;for(;a&&s;)s=pA(t=n[i]),r=r.concat(pN(t)),i+=1,a=n.length>i;return pr(r)}function pI(e){return pr(lI(cD(e.definition,e=>pN(e))))}function p_(e){return[e.terminalType]}tD(px,"restForRepetitionWithSeparator"),tD(pN,"first"),tD(pw,"firstForSequence"),tD(pI,"firstForBranching"),tD(p_,"firstForTerminal");var pP="_~IN~_",pO=class extends pk{static{tD(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){let n=pL(e.referencedRule,e.idx)+this.topProd.name,i=pN(new pf({definition:t.concat(r)}));this.follows[n]=i}};function pD(e){let t={};return cb(e,e=>{oW(t,new pO(e).startWalking())}),t}function pL(e,t){return e.name+t+pP}tD(pD,"computeAllProdsFollows"),tD(pL,"buildBetweenProdsFollowPrefix");var pM={},pj=new ap;function pF(e){let t=e.toString();if(pM.hasOwnProperty(t))return pM[t];{let e=pj.pattern(t);return pM[t]=e,e}}function pG(){pM={}}tD(pF,"getRegExpAst"),tD(pG,"clearRegExpParserCache");var pz="Complement Sets are not supported for first char optimization",pK='Unable to use "first char" lexer optimizations:\n';function pq(e,t=!1){try{let t=pF(e);return pU(t.value,{},t.flags.ignoreCase)}catch(r){if(r.message===pz)t&&pi(`${pK} Unable to optimize: < ${e.toString()} > Complement Sets cannot be automatically optimized. This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";t&&(r="\n This will disable the lexer's first char optimizations.\n See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."),pn(`${pK} Failed parsing: < ${e.toString()} > Using the @chevrotain/regexp-to-ast library - Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function pU(e,t,r){switch(e.type){case"Disjunction":for(let n=0;n<e.value.length;n++)pU(e.value[n],t,r);break;case"Alternative":let n=e.value;for(let e=0;e<n.length;e++){let i=n[e];switch(i.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"Lookbehind":case"NegativeLookbehind":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}switch(i.type){case"Character":pB(i.value,t,r);break;case"Set":if(!0===i.complement)throw Error(pz);cb(i.value,e=>{if("number"==typeof e)pB(e,t,r);else if(!0===r)for(let n=e.from;n<=e.to;n++)pB(n,t,r);else{for(let n=e.from;n<=e.to&&n<fv;n++)pB(n,t,r);if(e.to>=fv){let r=e.from>=fv?e.from:fv,n=e.to,i=fR(r),a=fR(n);for(let e=i;e<=a;e++)t[e]=e}}});break;case"Group":pU(i.value,t,r);break;default:throw Error("Non Exhaustive Match")}let a=void 0!==i.quantifier&&0===i.quantifier.atLeast;if("Group"===i.type&&!1===pH(i)||"Group"!==i.type&&!1===a)break}break;default:throw Error("non exhaustive match!")}return cU(t)}function pB(e,t,r){let n=fR(e);t[n]=n,!0===r&&pW(e,t)}function pW(e,t){let r=String.fromCharCode(e),n=r.toUpperCase();if(n!==r){let e=fR(n.charCodeAt(0));t[e]=e}else{let e=r.toLowerCase();if(e!==r){let r=fR(e.charCodeAt(0));t[r]=r}}}function pV(e,t){return c_(e.value,e=>"number"==typeof e?cW(t,e):void 0!==c_(t,t=>e.from<=t&&t<=e.to))}function pH(e){let t=e.quantifier;return!!t&&0===t.atLeast||!!e.value&&(sh(e.value)?cS(e.value,pH):pH(e.value))}tD(pq,"getOptimizedStartCodesIndices"),tD(pU,"firstCharOptimizedIndices"),tD(pB,"addOptimizedIdxToResult"),tD(pW,"handleIgnoreCase"),tD(pV,"findCode"),tD(pH,"isWholeOptional");var pY=class extends af{static{tD(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return;case"Lookbehind":this.visitLookbehind(e);return;case"NegativeLookbehind":this.visitNegativeLookbehind(e);return}super.visitChildren(e)}}visitCharacter(e){cW(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===pV(e,this.targetCharCodes)&&(this.found=!0):void 0!==pV(e,this.targetCharCodes)&&(this.found=!0)}};function pQ(e,t){if(!(t instanceof RegExp))return void 0!==c_(t,t=>cW(e,t.charCodeAt(0)));{let r=pF(t),n=new pY(e);return n.visit(r),n.found}}tD(pQ,"canMatchCharCode");var pZ="PATTERN",pX="defaultMode",pJ="modes";function p0(e,t){let r,n,i,a,s,o,l,u,c,p,f,d,m=(t=cm(t,{debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:tD((e,t)=>t(),"tracer")})).tracer;m("initCharCodeToOptimizedIndexMap",()=>{fE()}),m("Reject Lexer.NA",()=>{r=c6(e,e=>e[pZ]===fG.NA)});let h=!1;m("Transform Patterns",()=>{h=!1,n=cD(r,e=>{let t=e[pZ];if(cJ(t)){let e=t.source;return 1!==e.length||"^"===e||"$"===e||"."===e||t.ignoreCase?2!==e.length||"\\"!==e[0]||cW(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?fl(t):e[1]:e}if(sD(t))return h=!0,{exec:t};if("object"==typeof t)return h=!0,t;if("string"==typeof t)if(1===t.length)return t;else return fl(new RegExp(t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")));throw Error("non exhaustive match")})}),m("misc mapping",()=>{i=cD(r,e=>e.tokenTypeIdx),a=cD(r,e=>{let t=e.GROUP;if(t!==fG.SKIPPED){if(cK(t))return t;if(c0(t))return!1;throw Error("non exhaustive match")}}),s=cD(r,e=>{let t=e.LONGER_ALT;if(t)return sh(t)?cD(t,e=>cH(r,e)):[cH(r,t)]}),o=cD(r,e=>e.PUSH_MODE),l=cD(r,e=>cz(e,"POP_MODE"))}),m("Line Terminator Handling",()=>{let e=fg(t.lineTerminatorCharacters);u=cD(r,e=>!1),"onlyOffset"!==t.positionTracking&&(u=cD(r,t=>cz(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===fh(t,e)&&pQ(e,t.PATTERN)))}),m("Misc Mapping #2",()=>{c=cD(r,ff),p=cD(n,fd),f=c9(r,(e,t)=>{let r=t.GROUP;return cK(r)&&r!==fG.SKIPPED&&(e[r]=[]),e},{}),d=cD(n,(e,t)=>({pattern:n[t],longerAlt:s[t],canLineTerminator:u[t],isCustom:c[t],short:p[t],group:a[t],push:o[t],pop:l[t],tokenTypeIdx:i[t],tokenType:r[t]}))});let y=!0,g=[];return t.safeMode||m("First Char Optimization",()=>{g=c9(r,(e,r,n)=>{if("string"==typeof r.PATTERN)fT(e,fR(r.PATTERN.charCodeAt(0)),d[n]);else if(sh(r.START_CHARS_HINT)){let t;cb(r.START_CHARS_HINT,r=>{let i=fR("string"==typeof r?r.charCodeAt(0):r);t!==i&&(t=i,fT(e,i,d[n]))})}else if(cJ(r.PATTERN))if(r.PATTERN.unicode)y=!1,t.ensureOptimizations&&pn(`${pK} Unable to analyze < ${r.PATTERN.toString()} > pattern. + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function pU(e,t,r){switch(e.type){case"Disjunction":for(let n=0;n<e.value.length;n++)pU(e.value[n],t,r);break;case"Alternative":let n=e.value;for(let e=0;e<n.length;e++){let i=n[e];switch(i.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"Lookbehind":case"NegativeLookbehind":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}switch(i.type){case"Character":pB(i.value,t,r);break;case"Set":if(!0===i.complement)throw Error(pz);cb(i.value,e=>{if("number"==typeof e)pB(e,t,r);else if(!0===r)for(let n=e.from;n<=e.to;n++)pB(n,t,r);else{for(let n=e.from;n<=e.to&&n<fv;n++)pB(n,t,r);if(e.to>=fv){let r=e.from>=fv?e.from:fv,n=e.to,i=fR(r),a=fR(n);for(let e=i;e<=a;e++)t[e]=e}}});break;case"Group":pU(i.value,t,r);break;default:throw Error("Non Exhaustive Match")}let a=void 0!==i.quantifier&&0===i.quantifier.atLeast;if("Group"===i.type&&!1===pH(i)||"Group"!==i.type&&!1===a)break}break;default:throw Error("non exhaustive match!")}return cU(t)}function pB(e,t,r){let n=fR(e);t[n]=n,!0===r&&pW(e,t)}function pW(e,t){let r=String.fromCharCode(e),n=r.toUpperCase();if(n!==r){let e=fR(n.charCodeAt(0));t[e]=e}else{let e=r.toLowerCase();if(e!==r){let r=fR(e.charCodeAt(0));t[r]=r}}}function pV(e,t){return c_(e.value,e=>"number"==typeof e?cW(t,e):void 0!==c_(t,t=>e.from<=t&&t<=e.to))}function pH(e){let t=e.quantifier;return!!t&&0===t.atLeast||!!e.value&&(sh(e.value)?cS(e.value,pH):pH(e.value))}tD(pq,"getOptimizedStartCodesIndices"),tD(pU,"firstCharOptimizedIndices"),tD(pB,"addOptimizedIdxToResult"),tD(pW,"handleIgnoreCase"),tD(pV,"findCode"),tD(pH,"isWholeOptional");var pY=class extends af{static{tD(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return;case"Lookbehind":this.visitLookbehind(e);return;case"NegativeLookbehind":this.visitNegativeLookbehind(e);return}super.visitChildren(e)}}visitCharacter(e){cW(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===pV(e,this.targetCharCodes)&&(this.found=!0):void 0!==pV(e,this.targetCharCodes)&&(this.found=!0)}};function pQ(e,t){if(!(t instanceof RegExp))return void 0!==c_(t,t=>cW(e,t.charCodeAt(0)));{let r=pF(t),n=new pY(e);return n.visit(r),n.found}}tD(pQ,"canMatchCharCode");var pZ="PATTERN",pX="defaultMode",pJ="modes";function p0(e,t){let r,n,i,a,s,o,l,u,c,p,f,d,m=(t=cm(t,{debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:tD((e,t)=>t(),"tracer")})).tracer;m("initCharCodeToOptimizedIndexMap",()=>{fE()}),m("Reject Lexer.NA",()=>{r=c6(e,e=>e[pZ]===fG.NA)});let h=!1;m("Transform Patterns",()=>{h=!1,n=cD(r,e=>{let t=e[pZ];if(cJ(t)){let e=t.source;return 1!==e.length||"^"===e||"$"===e||"."===e||t.ignoreCase?2!==e.length||"\\"!==e[0]||cW(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?fl(t):e[1]:e}if(sD(t))return h=!0,{exec:t};if("object"==typeof t)return h=!0,t;if("string"==typeof t)if(1===t.length)return t;else return fl(new RegExp(t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")));throw Error("non exhaustive match")})}),m("misc mapping",()=>{i=cD(r,e=>e.tokenTypeIdx),a=cD(r,e=>{let t=e.GROUP;if(t!==fG.SKIPPED){if(cK(t))return t;if(c0(t))return!1;throw Error("non exhaustive match")}}),s=cD(r,e=>{let t=e.LONGER_ALT;if(t)return sh(t)?cD(t,e=>cH(r,e)):[cH(r,t)]}),o=cD(r,e=>e.PUSH_MODE),l=cD(r,e=>cz(e,"POP_MODE"))}),m("Line Terminator Handling",()=>{let e=fg(t.lineTerminatorCharacters);u=cD(r,e=>!1),"onlyOffset"!==t.positionTracking&&(u=cD(r,t=>cz(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===fh(t,e)&&pQ(e,t.PATTERN)))}),m("Misc Mapping #2",()=>{c=cD(r,ff),p=cD(n,fd),f=c5(r,(e,t)=>{let r=t.GROUP;return cK(r)&&r!==fG.SKIPPED&&(e[r]=[]),e},{}),d=cD(n,(e,t)=>({pattern:n[t],longerAlt:s[t],canLineTerminator:u[t],isCustom:c[t],short:p[t],group:a[t],push:o[t],pop:l[t],tokenTypeIdx:i[t],tokenType:r[t]}))});let y=!0,g=[];return t.safeMode||m("First Char Optimization",()=>{g=c5(r,(e,r,n)=>{if("string"==typeof r.PATTERN)fT(e,fR(r.PATTERN.charCodeAt(0)),d[n]);else if(sh(r.START_CHARS_HINT)){let t;cb(r.START_CHARS_HINT,r=>{let i=fR("string"==typeof r?r.charCodeAt(0):r);t!==i&&(t=i,fT(e,i,d[n]))})}else if(cJ(r.PATTERN))if(r.PATTERN.unicode)y=!1,t.ensureOptimizations&&pn(`${pK} Unable to analyze < ${r.PATTERN.toString()} > pattern. The regexp unicode flag is not currently supported by the regexp-to-ast library. This will disable the lexer's first char optimizations. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let i=pq(r.PATTERN,t.ensureOptimizations);cQ(i)&&(y=!1),cb(i,t=>{fT(e,t,d[n])})}else t.ensureOptimizations&&pn(`${pK} TokenType: <${r.name}> is using a custom token pattern without providing <start_chars_hint> parameter. This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return e},[])}),{emptyGroups:f,patternIdxToConfig:d,charCodeToPatternIdxToConfig:g,hasCustom:h,canBeOptimized:y}}function p1(e,t){let r=[],n=p3(e);r=r.concat(n.errors);let i=p4(n.valid),a=i.valid;return(r=(r=(r=(r=r.concat(i.errors)).concat(p2(a))).concat(fr(a))).concat(fn(a,t))).concat(fi(a))}function p2(e){let t=[],r=cx(e,e=>cJ(e[pZ]));return(t=(t=(t=(t=t.concat(p9(r))).concat(p8(r))).concat(fe(r))).concat(ft(r))).concat(p6(r))}function p3(e){let t=cx(e,e=>!cz(e,pZ));return{errors:cD(t,e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:eY.MISSING_PATTERN,tokenTypes:[e]})),valid:cT(e,t)}}function p4(e){let t=cx(e,e=>{let t=e[pZ];return!cJ(t)&&!sD(t)&&!cz(t,"exec")&&!cK(t)});return{errors:cD(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:eY.INVALID_PATTERN,tokenTypes:[e]})),valid:cT(e,t)}}tD(p0,"analyzeTokenTypes"),tD(p1,"validatePatterns"),tD(p2,"validateRegExpPattern"),tD(p3,"findMissingPatterns"),tD(p4,"findInvalidPatterns");var p5=/[^\\][$]/;function p9(e){class t extends af{static{tD(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}return cD(cx(e,e=>{let r=e.PATTERN;try{let e=pF(r),n=new t;return n.visit(e),n.found}catch(e){return p5.test(r.source)}}),e=>({message:"Unexpected RegExp Anchor Error:\n Token Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",type:eY.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}function p6(e){return cD(cx(e,e=>e.PATTERN.test("")),e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:eY.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}tD(p9,"findEndOfInputAnchor"),tD(p6,"findEmptyMatchRegExps");var p7=/[^\\[][\^]|^\^/;function p8(e){class t extends af{static{tD(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}return cD(cx(e,e=>{let r=e.PATTERN;try{let e=pF(r),n=new t;return n.visit(e),n.found}catch(e){return p7.test(r.source)}}),e=>({message:"Unexpected RegExp Anchor Error:\n Token Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",type:eY.SOI_ANCHOR_FOUND,tokenTypes:[e]}))}function fe(e){return cD(cx(e,e=>{let t=e[pZ];return t instanceof RegExp&&(t.multiline||t.global)}),e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:eY.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]}))}function ft(e){let t=[],r=cD(e,r=>c9(e,(e,n)=>(r.PATTERN.source!==n.PATTERN.source||cW(t,n)||n.PATTERN===fG.NA||(t.push(n),e.push(n)),e),[]));return cD(cx(r=uD(r),e=>e.length>1),e=>{let t=cD(e,e=>e.name),r=cP(e).PATTERN;return{message:`The same RegExp pattern ->${r}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:eY.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}})}function fr(e){return cD(cx(e,e=>{if(!cz(e,"GROUP"))return!1;let t=e.GROUP;return t!==fG.SKIPPED&&t!==fG.NA&&!cK(t)}),e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:eY.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]}))}function fn(e,t){return cD(cx(e,e=>void 0!==e.PUSH_MODE&&!cW(t,e.PUSH_MODE)),e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:eY.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}))}function fi(e){let t=[],r=c9(e,(e,t,r)=>{let n=t.PATTERN;return n===fG.NA||(cK(n)?e.push({str:n,idx:r,tokenType:t}):cJ(n)&&fs(n)&&e.push({str:n.source,idx:r,tokenType:t})),e},[]);return cb(e,(e,n)=>{cb(r,({str:r,idx:i,tokenType:a})=>{if(n<i&&fa(r,e.PATTERN)){let r=`Token: ->${a.name}<- can never be matched. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return e},[])}),{emptyGroups:f,patternIdxToConfig:d,charCodeToPatternIdxToConfig:g,hasCustom:h,canBeOptimized:y}}function p1(e,t){let r=[],n=p3(e);r=r.concat(n.errors);let i=p4(n.valid),a=i.valid;return(r=(r=(r=(r=r.concat(i.errors)).concat(p2(a))).concat(fr(a))).concat(fn(a,t))).concat(fi(a))}function p2(e){let t=[],r=cx(e,e=>cJ(e[pZ]));return(t=(t=(t=(t=t.concat(p5(r))).concat(p8(r))).concat(fe(r))).concat(ft(r))).concat(p6(r))}function p3(e){let t=cx(e,e=>!cz(e,pZ));return{errors:cD(t,e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:eY.MISSING_PATTERN,tokenTypes:[e]})),valid:cT(e,t)}}function p4(e){let t=cx(e,e=>{let t=e[pZ];return!cJ(t)&&!sD(t)&&!cz(t,"exec")&&!cK(t)});return{errors:cD(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:eY.INVALID_PATTERN,tokenTypes:[e]})),valid:cT(e,t)}}tD(p0,"analyzeTokenTypes"),tD(p1,"validatePatterns"),tD(p2,"validateRegExpPattern"),tD(p3,"findMissingPatterns"),tD(p4,"findInvalidPatterns");var p9=/[^\\][$]/;function p5(e){class t extends af{static{tD(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}return cD(cx(e,e=>{let r=e.PATTERN;try{let e=pF(r),n=new t;return n.visit(e),n.found}catch(e){return p9.test(r.source)}}),e=>({message:"Unexpected RegExp Anchor Error:\n Token Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",type:eY.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}function p6(e){return cD(cx(e,e=>e.PATTERN.test("")),e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:eY.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}tD(p5,"findEndOfInputAnchor"),tD(p6,"findEmptyMatchRegExps");var p7=/[^\\[][\^]|^\^/;function p8(e){class t extends af{static{tD(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}return cD(cx(e,e=>{let r=e.PATTERN;try{let e=pF(r),n=new t;return n.visit(e),n.found}catch(e){return p7.test(r.source)}}),e=>({message:"Unexpected RegExp Anchor Error:\n Token Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",type:eY.SOI_ANCHOR_FOUND,tokenTypes:[e]}))}function fe(e){return cD(cx(e,e=>{let t=e[pZ];return t instanceof RegExp&&(t.multiline||t.global)}),e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:eY.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]}))}function ft(e){let t=[],r=cD(e,r=>c5(e,(e,n)=>(r.PATTERN.source!==n.PATTERN.source||cW(t,n)||n.PATTERN===fG.NA||(t.push(n),e.push(n)),e),[]));return cD(cx(r=uD(r),e=>e.length>1),e=>{let t=cD(e,e=>e.name),r=cP(e).PATTERN;return{message:`The same RegExp pattern ->${r}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:eY.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}})}function fr(e){return cD(cx(e,e=>{if(!cz(e,"GROUP"))return!1;let t=e.GROUP;return t!==fG.SKIPPED&&t!==fG.NA&&!cK(t)}),e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:eY.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]}))}function fn(e,t){return cD(cx(e,e=>void 0!==e.PUSH_MODE&&!cW(t,e.PUSH_MODE)),e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:eY.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}))}function fi(e){let t=[],r=c5(e,(e,t,r)=>{let n=t.PATTERN;return n===fG.NA||(cK(n)?e.push({str:n,idx:r,tokenType:t}):cJ(n)&&fs(n)&&e.push({str:n.source,idx:r,tokenType:t})),e},[]);return cb(e,(e,n)=>{cb(r,({str:r,idx:i,tokenType:a})=>{if(n<i&&fa(r,e.PATTERN)){let r=`Token: ->${a.name}<- can never be matched. Because it appears AFTER the Token Type ->${e.name}<-in the lexer's definition. See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:r,type:eY.UNREACHABLE_PATTERN,tokenTypes:[e,a]})}})}),t}function fa(e,t){if(cJ(t)){if(fo(t))return!1;let r=t.exec(e);return null!==r&&0===r.index}if(sD(t))return t(e,0,[],{});if(cz(t,"exec"))return t.exec(e,0,[],{});if("string"==typeof t)return t===e;throw Error("non exhaustive match")}function fs(e){return void 0===c_([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>-1!==e.source.indexOf(t))}function fo(e){return/(\(\?=)|(\(\?!)|(\(\?<=)|(\(\?<!)/.test(e.source)}function fl(e){let t=e.ignoreCase?"iy":"y";return RegExp(`${e.source}`,t)}function fu(e,t,r){let n=[];return cz(e,pX)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+pX+"> property in its definition\n",type:eY.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),cz(e,pJ)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+pJ+"> property in its definition\n",type:eY.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),cz(e,pJ)&&cz(e,pX)&&!cz(e.modes,e.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${pX}: <${e.defaultMode}>which does not exist `,type:eY.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),cz(e,pJ)&&cb(e.modes,(e,t)=>{cb(e,(r,i)=>{c0(r)?n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${t}> at index: <${i}> @@ -39,9 +39,9 @@ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t. Root cause: ${t.errMsg}. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===eY.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option. The problem is in the <${e.name}> Token Type - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function fg(e){return cD(e,e=>cK(e)?e.charCodeAt(0):e)}function fT(e,t,r){void 0===e[t]?e[t]=[r]:e[t].push(r)}tD(fh,"checkLineBreaksIssues"),tD(fy,"buildLineBreakIssueMessage"),tD(fg,"getCharCodes"),tD(fT,"addToMapOfArrays");var fv=256,f$=[];function fR(e){return e<fv?e:f$[e]}function fE(){if(cQ(f$)){f$=Array(65536);for(let e=0;e<65536;e++)f$[e]=e>255?255+~~(e/255):e}}function fb(e,t){let r=e.tokenTypeIdx;return r===t.tokenTypeIdx||!0===t.isParent&&!0===t.categoryMatchesMap[r]}function fA(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}tD(fR,"charCodeToOptimizedIndex"),tD(fE,"initCharCodeToOptimizedIndexMap"),tD(fb,"tokenStructuredMatcher"),tD(fA,"tokenStructuredMatcherNoCategories");var fC=1,fS={};function fk(e){let t=fx(e);fN(t),fI(t),fw(t),cb(t,e=>{e.isParent=e.categoryMatches.length>0})}function fx(e){let t=uO(e),r=e,n=!0;for(;n;){let e=cT(r=uD(lI(cD(r,e=>e.CATEGORIES))),t);t=t.concat(e),cQ(e)?n=!1:r=e}return t}function fN(e){cb(e,e=>{fP(e)||(fS[fC]=e,e.tokenTypeIdx=fC++),fO(e)&&!sh(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),fO(e)||(e.CATEGORIES=[]),fD(e)||(e.categoryMatches=[]),fL(e)||(e.categoryMatchesMap={})})}function fw(e){cb(e,e=>{e.categoryMatches=[],cb(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(fS[r].tokenTypeIdx)})})}function fI(e){cb(e,e=>{f_([],e)})}function f_(e,t){cb(e,e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0}),cb(t.CATEGORIES,r=>{let n=e.concat(t);cW(n,r)||f_(n,r)})}function fP(e){return cz(e,"tokenTypeIdx")}function fO(e){return cz(e,"CATEGORIES")}function fD(e){return cz(e,"categoryMatches")}function fL(e){return cz(e,"categoryMatchesMap")}function fM(e){return cz(e,"tokenTypeIdx")}tD(fk,"augmentTokenTypes"),tD(fx,"expandCategories"),tD(fN,"assignTokenDefaultProps"),tD(fw,"assignCategoriesTokensProp"),tD(fI,"assignCategoriesMapProp"),tD(f_,"singleAssignCategoriesToksMap"),tD(fP,"hasShortKeyProperty"),tD(fO,"hasCategoriesProperty"),tD(fD,"hasExtendingTokensTypesProperty"),tD(fL,"hasExtendingTokensTypesMapProperty"),tD(fM,"isTokenType");var fj={buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,r,n,i,a)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${r} characters.`};(o=eY||(eY={}))[o.MISSING_PATTERN=0]="MISSING_PATTERN",o[o.INVALID_PATTERN=1]="INVALID_PATTERN",o[o.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",o[o.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",o[o.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",o[o.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",o[o.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",o[o.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",o[o.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",o[o.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",o[o.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",o[o.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",o[o.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",o[o.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",o[o.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",o[o.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",o[o.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",o[o.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE";var fF={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:fj,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(fF);var fG=class{static{tD(this,"Lexer")}constructor(e,t=fF){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let r=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);let{time:n,value:i}=pa(t),a=n>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${n}ms`),this.traceInitIndent--,i}},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=oW({},fF,t);let r=this.config.traceInitPerf;!0===r?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof r&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let r,n=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===fF.lineTerminatorsPattern)this.config.lineTerminatorsPattern=fm;else if(this.config.lineTerminatorCharacters===fF.lineTerminatorCharacters)throw Error("Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),sh(e)?r={modes:{defaultMode:uO(e)},defaultMode:pX}:(n=!1,r=uO(e))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(fu(r,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(fc(r,this.trackStartLines,this.config.lineTerminatorCharacters))})),r.modes=r.modes?r.modes:{},cb(r.modes,(e,t)=>{r.modes[t]=c6(e,e=>c0(e))});let i=oU(r.modes);if(cb(r.modes,(e,r)=>{this.TRACE_INIT(`Mode: <${r}> processing`,()=>{if(this.modes.push(r),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(p1(e,i))}),cQ(this.lexerDefinitionErrors)){let n;fk(e),this.TRACE_INIT("analyzeTokenTypes",()=>{n=p0(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[r]=n.patternIdxToConfig,this.charCodeToPatternIdxToConfig[r]=n.charCodeToPatternIdxToConfig,this.emptyGroups=oW({},this.emptyGroups,n.emptyGroups),this.hasCustom=n.hasCustom||this.hasCustom,this.canModeBeOptimized[r]=n.canBeOptimized}})}),this.defaultMode=r.defaultMode,!cQ(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling)throw Error("Errors detected in definition of Lexer:\n"+cD(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n"));cb(this.lexerDefinitionWarning,e=>{pi(e.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(n&&(this.handleModes=sJ),!1===this.trackStartLines&&(this.computeNewColumn=sO),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=sJ),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let e=c9(this.canModeBeOptimized,(e,t,r)=>(!1===t&&e.push(r),e),[]);if(t.ensureOptimizations&&!cQ(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function fg(e){return cD(e,e=>cK(e)?e.charCodeAt(0):e)}function fT(e,t,r){void 0===e[t]?e[t]=[r]:e[t].push(r)}tD(fh,"checkLineBreaksIssues"),tD(fy,"buildLineBreakIssueMessage"),tD(fg,"getCharCodes"),tD(fT,"addToMapOfArrays");var fv=256,f$=[];function fR(e){return e<fv?e:f$[e]}function fE(){if(cQ(f$)){f$=Array(65536);for(let e=0;e<65536;e++)f$[e]=e>255?255+~~(e/255):e}}function fb(e,t){let r=e.tokenTypeIdx;return r===t.tokenTypeIdx||!0===t.isParent&&!0===t.categoryMatchesMap[r]}function fA(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}tD(fR,"charCodeToOptimizedIndex"),tD(fE,"initCharCodeToOptimizedIndexMap"),tD(fb,"tokenStructuredMatcher"),tD(fA,"tokenStructuredMatcherNoCategories");var fC=1,fS={};function fk(e){let t=fx(e);fN(t),fI(t),fw(t),cb(t,e=>{e.isParent=e.categoryMatches.length>0})}function fx(e){let t=uO(e),r=e,n=!0;for(;n;){let e=cT(r=uD(lI(cD(r,e=>e.CATEGORIES))),t);t=t.concat(e),cQ(e)?n=!1:r=e}return t}function fN(e){cb(e,e=>{fP(e)||(fS[fC]=e,e.tokenTypeIdx=fC++),fO(e)&&!sh(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),fO(e)||(e.CATEGORIES=[]),fD(e)||(e.categoryMatches=[]),fL(e)||(e.categoryMatchesMap={})})}function fw(e){cb(e,e=>{e.categoryMatches=[],cb(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(fS[r].tokenTypeIdx)})})}function fI(e){cb(e,e=>{f_([],e)})}function f_(e,t){cb(e,e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0}),cb(t.CATEGORIES,r=>{let n=e.concat(t);cW(n,r)||f_(n,r)})}function fP(e){return cz(e,"tokenTypeIdx")}function fO(e){return cz(e,"CATEGORIES")}function fD(e){return cz(e,"categoryMatches")}function fL(e){return cz(e,"categoryMatchesMap")}function fM(e){return cz(e,"tokenTypeIdx")}tD(fk,"augmentTokenTypes"),tD(fx,"expandCategories"),tD(fN,"assignTokenDefaultProps"),tD(fw,"assignCategoriesTokensProp"),tD(fI,"assignCategoriesMapProp"),tD(f_,"singleAssignCategoriesToksMap"),tD(fP,"hasShortKeyProperty"),tD(fO,"hasCategoriesProperty"),tD(fD,"hasExtendingTokensTypesProperty"),tD(fL,"hasExtendingTokensTypesMapProperty"),tD(fM,"isTokenType");var fj={buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,r,n,i,a)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${r} characters.`};(o=eY||(eY={}))[o.MISSING_PATTERN=0]="MISSING_PATTERN",o[o.INVALID_PATTERN=1]="INVALID_PATTERN",o[o.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",o[o.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",o[o.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",o[o.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",o[o.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",o[o.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",o[o.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",o[o.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",o[o.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",o[o.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",o[o.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",o[o.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",o[o.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",o[o.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",o[o.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",o[o.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE";var fF={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:fj,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(fF);var fG=class{static{tD(this,"Lexer")}constructor(e,t=fF){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let r=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);let{time:n,value:i}=pa(t),a=n>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${n}ms`),this.traceInitIndent--,i}},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=oW({},fF,t);let r=this.config.traceInitPerf;!0===r?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof r&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let r,n=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===fF.lineTerminatorsPattern)this.config.lineTerminatorsPattern=fm;else if(this.config.lineTerminatorCharacters===fF.lineTerminatorCharacters)throw Error("Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),sh(e)?r={modes:{defaultMode:uO(e)},defaultMode:pX}:(n=!1,r=uO(e))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(fu(r,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(fc(r,this.trackStartLines,this.config.lineTerminatorCharacters))})),r.modes=r.modes?r.modes:{},cb(r.modes,(e,t)=>{r.modes[t]=c6(e,e=>c0(e))});let i=oU(r.modes);if(cb(r.modes,(e,r)=>{this.TRACE_INIT(`Mode: <${r}> processing`,()=>{if(this.modes.push(r),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(p1(e,i))}),cQ(this.lexerDefinitionErrors)){let n;fk(e),this.TRACE_INIT("analyzeTokenTypes",()=>{n=p0(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[r]=n.patternIdxToConfig,this.charCodeToPatternIdxToConfig[r]=n.charCodeToPatternIdxToConfig,this.emptyGroups=oW({},this.emptyGroups,n.emptyGroups),this.hasCustom=n.hasCustom||this.hasCustom,this.canModeBeOptimized[r]=n.canBeOptimized}})}),this.defaultMode=r.defaultMode,!cQ(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling)throw Error("Errors detected in definition of Lexer:\n"+cD(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n"));cb(this.lexerDefinitionWarning,e=>{pi(e.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(n&&(this.handleModes=sJ),!1===this.trackStartLines&&(this.computeNewColumn=sO),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=sJ),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let e=c5(this.canModeBeOptimized,(e,t,r)=>(!1===t&&e.push(r),e),[]);if(t.ensureOptimizations&&!cQ(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized. Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{pG()}),this.TRACE_INIT("toFastProperties",()=>{ps(this)})})}tokenize(e,t=this.defaultMode){if(!cQ(this.lexerDefinitionErrors))throw Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+cD(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n"));return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,n,i,a,s,o,l,u,c,p,f,d,m,h,y,g,T=e.length,v=0,$=0,R=Array(this.hasCustom?0:Math.floor(e.length/10)),E=[],b=this.trackStartLines?1:void 0,A=this.trackStartLines?1:void 0,C=fp(this.emptyGroups),S=this.trackStartLines,k=this.config.lineTerminatorsPattern,x=0,N=[],w=[],I=[],_=[];Object.freeze(_);let P=!1,O=tD(e=>{if(1===I.length&&void 0===e.tokenType.PUSH_MODE){let t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);E.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{I.pop();let e=cv(I);N=this.patternIdxToConfig[e],w=this.charCodeToPatternIdxToConfig[e],x=N.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;P=!!w&&!!t}},"pop_mode");function D(e){I.push(e),w=this.charCodeToPatternIdxToConfig[e],x=(N=this.patternIdxToConfig[e]).length,x=N.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;P=!!w&&!!t}tD(D,"push_mode"),D.call(this,t);let L=this.config.recoveryEnabled;for(;v<T;){let t;o=null,c=-1;let M=e.charCodeAt(v);if(P){let e=w[fR(M)];t=void 0!==e?e:_}else t=N;let j=t.length;for(r=0;r<j;r++){let n=(g=t[r]).pattern;l=null;let p=g.short;if(!1!==p?M===p&&(c=1,o=n):!0===g.isCustom?null!==(y=n.exec(e,v,R,C))?(c=(o=y[0]).length,void 0!==y.payload&&(l=y.payload)):o=null:(n.lastIndex=v,c=this.matchLength(n,e,v)),-1!==c){if(void 0!==(s=g.longerAlt)){o=e.substring(v,v+c);let t=s.length;for(i=0;i<t;i++){let t=N[s[i]],r=t.pattern;if(u=null,!0===t.isCustom?null!==(y=r.exec(e,v,R,C))?(a=y[0],void 0!==y.payload&&(u=y.payload)):a=null:(r.lastIndex=v,a=this.match(r,e,v)),a&&a.length>o.length){o=a,c=a.length,l=u,g=t;break}}}break}}if(-1!==c){if(void 0!==(p=g.group)&&(o=null!==o?o:e.substring(v,v+c),f=g.tokenTypeIdx,d=this.createTokenInstance(o,v,f,g.tokenType,b,A,c),this.handlePayload(d,l),!1===p?$=this.addToken(R,$,d):C[p].push(d)),!0===S&&!0===g.canLineTerminator){let t,r,n=0;k.lastIndex=0;do o=null!==o?o:e.substring(v,v+c),!0===(t=k.test(o))&&(r=k.lastIndex-1,n++);while(!0===t)0!==n?(b+=n,A=c-r,this.updateTokenEndLineColumnLocation(d,p,r,n,b,A,c)):A=this.computeNewColumn(A,c)}else A=this.computeNewColumn(A,c);v+=c,this.handleModes(g,O,D,d)}else{let t=v,r=b,i=A,a=!1===L;for(;!1===a&&v<T;)for(v++,n=0;n<x;n++){let t=N[n],r=t.pattern,i=t.short;if(!1!==i?e.charCodeAt(v)===i&&(a=!0):!0===t.isCustom?a=null!==r.exec(e,v,R,C):(r.lastIndex=v,a=null!==r.exec(e)),!0===a)break}if(m=v-t,A=this.computeNewColumn(A,m),h=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(e,t,m,r,i,cv(I)),E.push({offset:t,line:r,column:i,length:m,message:h}),!1===L)break}}return this.hasCustom||(R.length=$),{tokens:R,groups:C,errors:E}}handleModes(e,t,r,n){if(!0===e.pop){let i=e.push;t(n),void 0!==i&&r.call(this,i)}else void 0!==e.push&&r.call(this,e.push)}updateTokenEndLineColumnLocation(e,t,r,n,i,a,s){let o,l;void 0!==t&&(l=(o=r===s-1)?-1:0,(1!==n||!0!==o)&&(e.endLine=i+l,e.endColumn=a-1+-l))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,r,n){return{image:e,startOffset:t,tokenTypeIdx:r,tokenType:n}}createStartOnlyToken(e,t,r,n,i,a){return{image:e,startOffset:t,startLine:i,startColumn:a,tokenTypeIdx:r,tokenType:n}}createFullToken(e,t,r,n,i,a,s){return{image:e,startOffset:t,endOffset:t+s-1,startLine:i,endLine:i,startColumn:a,endColumn:a+s-1,tokenTypeIdx:r,tokenType:n}}addTokenUsingPush(e,t,r){return e.push(r),t}addTokenUsingMemberAccess(e,t,r){return e[t]=r,++t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){null!==t&&(e.payload=t)}match(e,t,r){return!0===e.test(t)?t.substring(r,e.lastIndex):null}matchLength(e,t,r){return!0===e.test(t)?e.lastIndex-r:-1}};function fz(e){return fK(e)?e.LABEL:e.name}function fK(e){return cK(e.LABEL)&&""!==e.LABEL}fG.SKIPPED="This marks a skipped Token pattern, this means each token identified by it will be consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",fG.NA=/NOT_APPLICABLE/,tD(fz,"tokenLabel"),tD(fK,"hasTokenLabel");var fq="categories",fU="label",fB="group",fW="push_mode",fV="pop_mode",fH="longer_alt",fY="line_breaks",fQ="start_chars_hint";function fZ(e){return fX(e)}function fX(e){let t=e.pattern,r={};if(r.name=e.name,c0(t)||(r.PATTERN=t),cz(e,"parent"))throw"The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.";return cz(e,fq)&&(r.CATEGORIES=e[fq]),fk([r]),cz(e,fU)&&(r.LABEL=e[fU]),cz(e,fB)&&(r.GROUP=e[fB]),cz(e,fV)&&(r.POP_MODE=e[fV]),cz(e,fW)&&(r.PUSH_MODE=e[fW]),cz(e,fH)&&(r.LONGER_ALT=e[fH]),cz(e,fY)&&(r.LINE_BREAKS=e[fY]),cz(e,fQ)&&(r.START_CHARS_HINT=e[fQ]),r}tD(fZ,"createToken"),tD(fX,"createTokenInternal");var fJ=fZ({name:"EOF",pattern:fG.NA});function f0(e,t,r,n,i,a,s,o){return{image:t,startOffset:r,endOffset:n,startLine:i,endLine:a,startColumn:s,endColumn:o,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function f1(e,t){return fb(e,t)}fk([fJ]),tD(f0,"createTokenInstance"),tD(f1,"tokenMatcher");var f2={buildMismatchTokenMessage({expected:e,actual:t,previous:r,ruleName:n}){let i=fK(e)?`--> ${fz(e)} <--`:`token of type --> ${e.name} <--`;return`Expecting ${i} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",s="\nbut found: '"+cP(t).image+"'";if(n)return a+n+s;{let t=cD(c9(e,(e,t)=>e.concat(t),[]),e=>`[${cD(e,e=>fz(e)).join(", ")}]`),r=cD(t,(e,t)=>` ${t+1}. ${e}`);return a+`one of these possible Token sequences: + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{pG()}),this.TRACE_INIT("toFastProperties",()=>{ps(this)})})}tokenize(e,t=this.defaultMode){if(!cQ(this.lexerDefinitionErrors))throw Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+cD(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n"));return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,n,i,a,s,o,l,u,c,p,f,d,m,h,y,g,T=e.length,v=0,$=0,R=Array(this.hasCustom?0:Math.floor(e.length/10)),E=[],b=this.trackStartLines?1:void 0,A=this.trackStartLines?1:void 0,C=fp(this.emptyGroups),S=this.trackStartLines,k=this.config.lineTerminatorsPattern,x=0,N=[],w=[],I=[],_=[];Object.freeze(_);let P=!1,O=tD(e=>{if(1===I.length&&void 0===e.tokenType.PUSH_MODE){let t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);E.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{I.pop();let e=cv(I);N=this.patternIdxToConfig[e],w=this.charCodeToPatternIdxToConfig[e],x=N.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;P=!!w&&!!t}},"pop_mode");function D(e){I.push(e),w=this.charCodeToPatternIdxToConfig[e],x=(N=this.patternIdxToConfig[e]).length,x=N.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;P=!!w&&!!t}tD(D,"push_mode"),D.call(this,t);let L=this.config.recoveryEnabled;for(;v<T;){let t;o=null,c=-1;let M=e.charCodeAt(v);if(P){let e=w[fR(M)];t=void 0!==e?e:_}else t=N;let j=t.length;for(r=0;r<j;r++){let n=(g=t[r]).pattern;l=null;let p=g.short;if(!1!==p?M===p&&(c=1,o=n):!0===g.isCustom?null!==(y=n.exec(e,v,R,C))?(c=(o=y[0]).length,void 0!==y.payload&&(l=y.payload)):o=null:(n.lastIndex=v,c=this.matchLength(n,e,v)),-1!==c){if(void 0!==(s=g.longerAlt)){o=e.substring(v,v+c);let t=s.length;for(i=0;i<t;i++){let t=N[s[i]],r=t.pattern;if(u=null,!0===t.isCustom?null!==(y=r.exec(e,v,R,C))?(a=y[0],void 0!==y.payload&&(u=y.payload)):a=null:(r.lastIndex=v,a=this.match(r,e,v)),a&&a.length>o.length){o=a,c=a.length,l=u,g=t;break}}}break}}if(-1!==c){if(void 0!==(p=g.group)&&(o=null!==o?o:e.substring(v,v+c),f=g.tokenTypeIdx,d=this.createTokenInstance(o,v,f,g.tokenType,b,A,c),this.handlePayload(d,l),!1===p?$=this.addToken(R,$,d):C[p].push(d)),!0===S&&!0===g.canLineTerminator){let t,r,n=0;k.lastIndex=0;do o=null!==o?o:e.substring(v,v+c),!0===(t=k.test(o))&&(r=k.lastIndex-1,n++);while(!0===t)0!==n?(b+=n,A=c-r,this.updateTokenEndLineColumnLocation(d,p,r,n,b,A,c)):A=this.computeNewColumn(A,c)}else A=this.computeNewColumn(A,c);v+=c,this.handleModes(g,O,D,d)}else{let t=v,r=b,i=A,a=!1===L;for(;!1===a&&v<T;)for(v++,n=0;n<x;n++){let t=N[n],r=t.pattern,i=t.short;if(!1!==i?e.charCodeAt(v)===i&&(a=!0):!0===t.isCustom?a=null!==r.exec(e,v,R,C):(r.lastIndex=v,a=null!==r.exec(e)),!0===a)break}if(m=v-t,A=this.computeNewColumn(A,m),h=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(e,t,m,r,i,cv(I)),E.push({offset:t,line:r,column:i,length:m,message:h}),!1===L)break}}return this.hasCustom||(R.length=$),{tokens:R,groups:C,errors:E}}handleModes(e,t,r,n){if(!0===e.pop){let i=e.push;t(n),void 0!==i&&r.call(this,i)}else void 0!==e.push&&r.call(this,e.push)}updateTokenEndLineColumnLocation(e,t,r,n,i,a,s){let o,l;void 0!==t&&(l=(o=r===s-1)?-1:0,(1!==n||!0!==o)&&(e.endLine=i+l,e.endColumn=a-1+-l))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,r,n){return{image:e,startOffset:t,tokenTypeIdx:r,tokenType:n}}createStartOnlyToken(e,t,r,n,i,a){return{image:e,startOffset:t,startLine:i,startColumn:a,tokenTypeIdx:r,tokenType:n}}createFullToken(e,t,r,n,i,a,s){return{image:e,startOffset:t,endOffset:t+s-1,startLine:i,endLine:i,startColumn:a,endColumn:a+s-1,tokenTypeIdx:r,tokenType:n}}addTokenUsingPush(e,t,r){return e.push(r),t}addTokenUsingMemberAccess(e,t,r){return e[t]=r,++t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){null!==t&&(e.payload=t)}match(e,t,r){return!0===e.test(t)?t.substring(r,e.lastIndex):null}matchLength(e,t,r){return!0===e.test(t)?e.lastIndex-r:-1}};function fz(e){return fK(e)?e.LABEL:e.name}function fK(e){return cK(e.LABEL)&&""!==e.LABEL}fG.SKIPPED="This marks a skipped Token pattern, this means each token identified by it will be consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",fG.NA=/NOT_APPLICABLE/,tD(fz,"tokenLabel"),tD(fK,"hasTokenLabel");var fq="categories",fU="label",fB="group",fW="push_mode",fV="pop_mode",fH="longer_alt",fY="line_breaks",fQ="start_chars_hint";function fZ(e){return fX(e)}function fX(e){let t=e.pattern,r={};if(r.name=e.name,c0(t)||(r.PATTERN=t),cz(e,"parent"))throw"The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.";return cz(e,fq)&&(r.CATEGORIES=e[fq]),fk([r]),cz(e,fU)&&(r.LABEL=e[fU]),cz(e,fB)&&(r.GROUP=e[fB]),cz(e,fV)&&(r.POP_MODE=e[fV]),cz(e,fW)&&(r.PUSH_MODE=e[fW]),cz(e,fH)&&(r.LONGER_ALT=e[fH]),cz(e,fY)&&(r.LINE_BREAKS=e[fY]),cz(e,fQ)&&(r.START_CHARS_HINT=e[fQ]),r}tD(fZ,"createToken"),tD(fX,"createTokenInternal");var fJ=fZ({name:"EOF",pattern:fG.NA});function f0(e,t,r,n,i,a,s,o){return{image:t,startOffset:r,endOffset:n,startLine:i,endLine:a,startColumn:s,endColumn:o,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function f1(e,t){return fb(e,t)}fk([fJ]),tD(f0,"createTokenInstance"),tD(f1,"tokenMatcher");var f2={buildMismatchTokenMessage({expected:e,actual:t,previous:r,ruleName:n}){let i=fK(e)?`--> ${fz(e)} <--`:`token of type --> ${e.name} <--`;return`Expecting ${i} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",s="\nbut found: '"+cP(t).image+"'";if(n)return a+n+s;{let t=cD(c5(e,(e,t)=>e.concat(t),[]),e=>`[${cD(e,e=>fz(e)).join(", ")}]`),r=cD(t,(e,t)=>` ${t+1}. ${e}`);return a+`one of these possible Token sequences: ${r.join("\n")}`+s}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:r,ruleName:n}){let i="Expecting: ",a="\nbut found: '"+cP(t).image+"'";if(r)return i+r+a;{let t=cD(e,e=>`[${cD(e,e=>fz(e)).join(",")}]`);return i+`expecting at least one iteration which starts with one of these possible Token sequences:: <${t.join(" ,")}>`+a}}};Object.freeze(f2);var f3={buildRuleNotFoundError:(e,t)=>"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\ninside top level rule: ->"+e.name+"<-"},f4={buildDuplicateFoundError(e,t){function r(e){return e instanceof pv?e.terminalType.name:e instanceof pc?e.nonTerminalName:""}tD(r,"getExtraProductionArgument");let n=e.name,i=cP(t),a=i.idx,s=pS(i),o=r(i),l=`->${s}${a>0?a:""}<- ${o?`with argument: ->${o}<-`:""} appears more than once (${t.length} times) in the top level rule: ->${n}<-. @@ -68,15 +68,15 @@ rule: <${t}> can be invoked from itself (directly or indirectly) without consuming any Tokens. The grammar path that causes this is: ${n} To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof pp?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};function f5(e,t){let r=new f9(e,t);return r.resolveRefs(),r.errors}tD(f5,"resolveGrammar");var f9=class extends pE{static{tD(this,"GastRefResolverVisitor")}constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){cb(cU(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:eX.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}},f6=class extends pk{static{tD(this,"AbstractNextPossibleTokensWalker")}constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=uO(this.path.ruleStack).reverse(),this.occurrenceStack=uO(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let n=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,n)}}updateExpectedNext(){cQ(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},f7=class extends f6{static{tD(this,"NextAfterTokenWalker")}constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let e=new pf({definition:t.concat(r)});this.possibleTokTypes=pN(e),this.found=!0}}},f8=class extends pk{static{tD(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},de=class extends f8{static{tD(this,"NextTerminalAfterManyWalker")}walkMany(e,t,r){if(e.idx===this.occurrence){let e=cP(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof pv&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,r)}},dt=class extends f8{static{tD(this,"NextTerminalAfterManySepWalker")}walkManySep(e,t,r){if(e.idx===this.occurrence){let e=cP(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof pv&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,r)}},dr=class extends f8{static{tD(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){let e=cP(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof pv&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,r)}},dn=class extends f8{static{tD(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){let e=cP(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof pv&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,r)}};function di(e,t,r=[]){r=uO(r);let n=[],i=0;function a(t){return t.concat(c$(e,i+1))}function s(e){let i=di(a(e),t,r);return n.concat(i)}for(tD(a,"remainingPathWith"),tD(s,"getAlternativesForProd");r.length<t&&i<e.length;){let t=e[i];if(t instanceof pf)return s(t.definition);if(t instanceof pc)return s(t.definition);if(t instanceof pd)n=s(t.definition);else if(t instanceof pm)return s(t.definition.concat([new py({definition:t.definition})]));else if(t instanceof ph)return s([new pf({definition:t.definition}),new py({definition:[new pv({terminalType:t.separator})].concat(t.definition)})]);else if(t instanceof pg)n=s(t.definition.concat([new py({definition:[new pv({terminalType:t.separator})].concat(t.definition)})]));else if(t instanceof py)n=s(t.definition.concat([new py({definition:t.definition})]));else if(t instanceof pT)return cb(t.definition,e=>{!1===cQ(e.definition)&&(n=s(e.definition))}),n;else if(t instanceof pv)r.push(t.terminalType);else throw Error("non exhaustive match");i++}return n.push({partialPath:r,suffixDef:c$(e,i)}),n}function da(e,t,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",o=!1,l=t.length,u=l-n-1,c=[],p=[];for(p.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!cQ(p);){let e=p.pop();if(e===s){o&&cv(p).idx<=u&&p.pop();continue}let n=e.def,f=e.idx,d=e.ruleStack,m=e.occurrenceStack;if(cQ(n))continue;let h=n[0];if(h===i){let e={idx:f,def:c$(n),ruleStack:cR(d),occurrenceStack:cR(m)};p.push(e)}else if(h instanceof pv)if(f<l-1){let e=f+1;if(r(t[e],h.terminalType)){let t={idx:e,def:c$(n),ruleStack:d,occurrenceStack:m};p.push(t)}}else if(f===l-1)c.push({nextTokenType:h.terminalType,nextTokenOccurrence:h.idx,ruleStack:d,occurrenceStack:m}),o=!0;else throw Error("non exhaustive match");else if(h instanceof pc){let e=uO(d);e.push(h.nonTerminalName);let t=uO(m);t.push(h.idx);let r={idx:f,def:h.definition.concat(a,c$(n)),ruleStack:e,occurrenceStack:t};p.push(r)}else if(h instanceof pd){let e={idx:f,def:c$(n),ruleStack:d,occurrenceStack:m};p.push(e),p.push(s);let t={idx:f,def:h.definition.concat(c$(n)),ruleStack:d,occurrenceStack:m};p.push(t)}else if(h instanceof pm){let e=new py({definition:h.definition,idx:h.idx}),t={idx:f,def:h.definition.concat([e],c$(n)),ruleStack:d,occurrenceStack:m};p.push(t)}else if(h instanceof ph){let e=new py({definition:[new pv({terminalType:h.separator})].concat(h.definition),idx:h.idx}),t={idx:f,def:h.definition.concat([e],c$(n)),ruleStack:d,occurrenceStack:m};p.push(t)}else if(h instanceof pg){let e={idx:f,def:c$(n),ruleStack:d,occurrenceStack:m};p.push(e),p.push(s);let t=new py({definition:[new pv({terminalType:h.separator})].concat(h.definition),idx:h.idx}),r={idx:f,def:h.definition.concat([t],c$(n)),ruleStack:d,occurrenceStack:m};p.push(r)}else if(h instanceof py){let e={idx:f,def:c$(n),ruleStack:d,occurrenceStack:m};p.push(e),p.push(s);let t=new py({definition:h.definition,idx:h.idx}),r={idx:f,def:h.definition.concat([t],c$(n)),ruleStack:d,occurrenceStack:m};p.push(r)}else if(h instanceof pT)for(let e=h.definition.length-1;e>=0;e--){let t={idx:f,def:h.definition[e].definition.concat(c$(n)),ruleStack:d,occurrenceStack:m};p.push(t),p.push(s)}else if(h instanceof pf)p.push({idx:f,def:h.definition.concat(c$(n)),ruleStack:d,occurrenceStack:m});else if(h instanceof pp)p.push(ds(h,f,d,m));else throw Error("non exhaustive match")}return c}function ds(e,t,r,n){let i=uO(r);i.push(e.name);let a=uO(n);return a.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:a}}function dl(e){if(e instanceof pd||"Option"===e)return eQ.OPTION;if(e instanceof py||"Repetition"===e)return eQ.REPETITION;if(e instanceof pm||"RepetitionMandatory"===e)return eQ.REPETITION_MANDATORY;if(e instanceof ph||"RepetitionMandatoryWithSeparator"===e)return eQ.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof pg||"RepetitionWithSeparator"===e)return eQ.REPETITION_WITH_SEPARATOR;else if(e instanceof pT||"Alternation"===e)return eQ.ALTERNATION;else throw Error("non exhaustive match")}function du(e){let{occurrence:t,rule:r,prodType:n,maxLookahead:i}=e,a=dl(n);return a===eQ.ALTERNATION?d$(t,r,i):dR(t,r,a,i)}function dc(e,t,r,n,i,a){let s=d$(e,t,r),o=dA(s)?fA:fb;return a(s,n,o,i)}function dp(e,t,r,n,i,a){let s=dR(e,t,i,r),o=dA(s)?fA:fb;return a(s[0],o,n)}function df(e,t,r,n){let i=e.length,a=cS(e,e=>cS(e,e=>1===e.length));if(t)return function(t){let n=cD(t,e=>e.GATE);for(let t=0;t<i;t++){let i=e[t],a=i.length,s=n[t];if(void 0===s||!1!==s.call(this))r:for(let e=0;e<a;e++){let n=i[e],a=n.length;for(let e=0;e<a;e++)if(!1===r(this.LA(e+1),n[e]))continue r;return t}}};if(!a||n)return function(){for(let t=0;t<i;t++){let n=e[t],i=n.length;r:for(let e=0;e<i;e++){let i=n[e],a=i.length;for(let e=0;e<a;e++)if(!1===r(this.LA(e+1),i[e]))continue r;return t}}};{let t=c9(cD(e,e=>lI(e)),(e,t,r)=>(cb(t,t=>{cz(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=r),cb(t.categoryMatches,t=>{cz(e,t)||(e[t]=r)})}),e),{});return function(){return t[this.LA(1).tokenTypeIdx]}}}function dd(e,t,r){let n=cS(e,e=>1===e.length),i=e.length;if(!n||r)return function(){r:for(let r=0;r<i;r++){let n=e[r],i=n.length;for(let e=0;e<i;e++)if(!1===t(this.LA(e+1),n[e]))continue r;return!0}return!1};{let t=lI(e);if(1===t.length&&cQ(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{let e=c9(t,(e,t,r)=>(e[t.tokenTypeIdx]=!0,cb(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){return!0===e[this.LA(1).tokenTypeIdx]}}}}tD(di,"possiblePathsFrom"),tD(da,"nextPossibleTokensAfter"),tD(ds,"expandTopLevelRule"),(l=eQ||(eQ={}))[l.OPTION=0]="OPTION",l[l.REPETITION=1]="REPETITION",l[l.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",l[l.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",l[l.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",l[l.ALTERNATION=5]="ALTERNATION",tD(dl,"getProdType"),tD(du,"getLookaheadPaths"),tD(dc,"buildLookaheadFuncForOr"),tD(dp,"buildLookaheadFuncForOptionalProd"),tD(df,"buildAlternativesLookAheadFunc"),tD(dd,"buildSingleAlternativeLookaheadFunction");var dm=class extends pk{static{tD(this,"RestDefinitionFinderWalker")}constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,n){return e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.restDef=r.concat(n),!0)}walkOption(e,t,r){this.checkIsTarget(e,eQ.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,eQ.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,eQ.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,eQ.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,eQ.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}},dh=class extends pE{static{tD(this,"InsideDefinitionFinderVisitor")}constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(void 0===this.targetRef||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,eQ.OPTION)}visitRepetition(e){this.checkIsTarget(e,eQ.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,eQ.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,eQ.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,eQ.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,eQ.ALTERNATION)}};function dy(e){let t=Array(e);for(let r=0;r<e;r++)t[r]=[];return t}function dg(e){let t=[""];for(let r=0;r<e.length;r++){let n=e[r],i=[];for(let e=0;e<t.length;e++){let r=t[e];i.push(r+"_"+n.tokenTypeIdx);for(let e=0;e<n.categoryMatches.length;e++){let t="_"+n.categoryMatches[e];i.push(r+t)}}t=i}return t}function dT(e,t,r){for(let n=0;n<e.length;n++){if(n===r)continue;let i=e[n];for(let e=0;e<t.length;e++)if(!0===i[t[e]])return!1}return!0}function dv(e,t){let r=cD(e,e=>di([e],1)),n=dy(r.length),i=cD(r,e=>{let t={};return cb(e,e=>{cb(dg(e.partialPath),e=>{t[e]=!0})}),t}),a=r;for(let e=1;e<=t;e++){let r=a;a=dy(r.length);for(let s=0;s<r.length;s++){let o=r[s];for(let r=0;r<o.length;r++){let l=o[r].partialPath,u=o[r].suffixDef,c=dg(l);if(dT(i,c,s)||cQ(u)||l.length===t){let e=n[s];if(!1===dE(e,l)){e.push(l);for(let e=0;e<c.length;e++){let t=c[e];i[s][t]=!0}}}else{let t=di(u,e+1,l);a[s]=a[s].concat(t),cb(t,e=>{cb(dg(e.partialPath),e=>{i[s][e]=!0})})}}}}return n}function d$(e,t,r,n){let i=new dh(e,eQ.ALTERNATION,n);return t.accept(i),dv(i.result,r)}function dR(e,t,r,n){let i=new dh(e,r);t.accept(i);let a=i.result,s=new dm(t,e,r).startWalking();return dv([new pf({definition:a}),new pf({definition:s})],n)}function dE(e,t){n:for(let r=0;r<e.length;r++){let n=e[r];if(n.length===t.length){for(let e=0;e<n.length;e++){let r=t[e],i=n[e];if(!1==(r===i||void 0!==i.categoryMatchesMap[r.tokenTypeIdx]))continue n}return!0}}return!1}function db(e,t){return e.length<t.length&&cS(e,(e,r)=>{let n=t[r];return e===n||n.categoryMatchesMap[e.tokenTypeIdx]})}function dA(e){return cS(e,e=>cS(e,e=>cS(e,e=>cQ(e.categoryMatches))))}function dC(e){return cD(e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}),e=>Object.assign({type:eX.CUSTOM_LOOKAHEAD_VALIDATION},e))}function dS(e,t,r,n){let i=cL(e,e=>dk(e,r)),a=dq(e,t,r),s=cL(e,e=>dF(e,r)),o=cL(e,t=>dI(t,e,n,r));return i.concat(a,s,o)}function dk(e,t){let r=new dw;return e.accept(r),cD(cU(c4(cj(r.allProductions,dx),e=>e.length>1)),r=>{let n=cP(r),i=t.buildDuplicateFoundError(e,r),a=pS(n),s={message:i,type:eX.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:a,occurrence:n.idx},o=dN(n);return o&&(s.parameter=o),s})}function dx(e){return`${pS(e)}_#_${e.idx}_#_${dN(e)}`}function dN(e){return e instanceof pv?e.terminalType.name:e instanceof pc?e.nonTerminalName:""}tD(dy,"initializeArrayOfArrays"),tD(dg,"pathToHashKeys"),tD(dT,"isUniquePrefixHash"),tD(dv,"lookAheadSequenceFromAlternatives"),tD(d$,"getLookaheadPathsForOr"),tD(dR,"getLookaheadPathsForOptionalProd"),tD(dE,"containsPath"),tD(db,"isStrictPrefixOfPath"),tD(dA,"areTokenCategoriesNotUsed"),tD(dC,"validateLookahead"),tD(dS,"validateGrammar"),tD(dk,"validateDuplicateProductions"),tD(dx,"identifyProductionForDuplicates"),tD(dN,"getExtraProductionArgument");var dw=class extends pE{static{tD(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};function dI(e,t,r,n){let i=[];if(c9(t,(t,r)=>r.name===e.name?t+1:t,0)>1){let t=n.buildDuplicateRuleNameError({topLevelRule:e,grammarName:r});i.push({message:t,type:eX.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function d_(e,t,r){let n=[];return cW(t,e)||n.push({message:`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,type:eX.INVALID_RULE_OVERRIDE,ruleName:e}),n}function dP(e,t,r,n=[]){let i=[],a=dO(t.definition);if(cQ(a))return[];{let t=e.name;cW(a,e)&&i.push({message:r.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:n}),type:eX.LEFT_RECURSION,ruleName:t});let s=cL(cT(a,n.concat([e])),t=>{let i=uO(n);return i.push(t),dP(e,t,r,i)});return i.concat(s)}}function dO(e){let t=[];if(cQ(e))return t;let r=cP(e);if(r instanceof pc)t.push(r.referencedRule);else if(r instanceof pf||r instanceof pd||r instanceof pm||r instanceof ph||r instanceof pg||r instanceof py)t=t.concat(dO(r.definition));else if(r instanceof pT)t=lI(cD(r.definition,e=>dO(e.definition)));else if(r instanceof pv);else throw Error("non exhaustive match");let n=pA(r),i=e.length>1;if(!n||!i)return t;{let r=c$(e);return t.concat(dO(r))}}tD(dI,"validateRuleDoesNotAlreadyExist"),tD(d_,"validateRuleIsOverridden"),tD(dP,"validateNoLeftRecursion"),tD(dO,"getFirstNoneTerminal");var dD=class extends pE{static{tD(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};function dL(e,t){let r=new dD;return e.accept(r),cL(r.alternations,r=>cL(cR(r.definition),(n,i)=>cQ(da([n],[],fb,1))?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:r,emptyChoiceIdx:i}),type:eX.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:r.idx,alternative:i+1}]:[]))}function dM(e,t,r){let n=new dD;e.accept(n);let i=n.alternations;return cL(i=c6(i,e=>!0===e.ignoreAmbiguities),n=>{let i=d$(n.idx,e,n.maxLookahead||t,n),a=dz(i,n,e,r),s=dK(i,n,e,r);return a.concat(s)})}tD(dL,"validateEmptyOrAlternative"),tD(dM,"validateAmbiguousAlternationAlternatives");var dj=class extends pE{static{tD(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};function dF(e,t){let r=new dD;return e.accept(r),cL(r.alternations,r=>r.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:r}),type:eX.TOO_MANY_ALTS,ruleName:e.name,occurrence:r.idx}]:[])}function dG(e,t,r){let n=[];return cb(e,e=>{let i=new dj;e.accept(i),cb(i.allProductions,i=>{let a=dl(i),s=i.maxLookahead||t;if(cQ(lI(dR(i.idx,e,a,s)[0]))){let t=r.buildEmptyRepetitionError({topLevelRule:e,repetition:i});n.push({message:t,type:eX.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),n}function dz(e,t,r,n){let i=[];return cD(c9(e,(r,n,a)=>(!0===t.definition[a].ignoreAmbiguities||cb(n,n=>{let s=[a];cb(e,(e,r)=>{a!==r&&dE(e,n)&&!0!==t.definition[r].ignoreAmbiguities&&s.push(r)}),s.length>1&&!dE(i,n)&&(i.push(n),r.push({alts:s,path:n}))}),r),[]),e=>{let i=cD(e.alts,e=>e+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:eX.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:t.idx,alternatives:e.alts}})}function dK(e,t,r,n){let i=c9(e,(e,t,r)=>{let n=cD(t,e=>({idx:r,path:e}));return e.concat(n)},[]);return uD(cL(i,e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];let a=e.idx,s=e.path;return cD(cx(i,e=>!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx<a&&db(e.path,s)),e=>{let i=[e.idx+1,a+1],s=0===t.idx?"":t.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:eX.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:s,alternatives:i}})}))}function dq(e,t,r){let n=[],i=cD(t,e=>e.name);return cb(e,e=>{let t=e.name;if(cW(i,t)){let i=r.buildNamespaceConflictError(e);n.push({message:i,type:eX.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),n}function dU(e){let t=cm(e,{errMsgProvider:f3}),r={};return cb(e.rules,e=>{r[e.name]=e}),f5(r,t.errMsgProvider)}function dB(e){return dS((e=cm(e,{errMsgProvider:f4})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}tD(dF,"validateTooManyAlts"),tD(dG,"validateSomeNonEmptyLookaheadPath"),tD(dz,"checkAlternativesAmbiguities"),tD(dK,"checkPrefixAlternativesAmbiguities"),tD(dq,"checkTerminalAndNoneTerminalsNameSpace"),tD(dU,"resolveGrammar"),tD(dB,"validateGrammar");var dW="MismatchedTokenException",dV="NoViableAltException",dH="EarlyExitException",dY="NotAllInputParsedException",dQ=[dW,dV,dH,dY];function dZ(e){return cW(dQ,e.name)}Object.freeze(dQ),tD(dZ,"isRecognitionException");var dX=class extends Error{static{tD(this,"RecognitionException")}constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},dJ=class extends dX{static{tD(this,"MismatchedTokenException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=dW}},d0=class extends dX{static{tD(this,"NoViableAltException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=dV}},d1=class extends dX{static{tD(this,"NotAllInputParsedException")}constructor(e,t){super(e,t),this.name=dY}},d2=class extends dX{static{tD(this,"EarlyExitException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=dH}},d3={},d4="InRuleRecoveryException",d5=class extends Error{static{tD(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=d4}},d9=class{static{tD(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=cz(e,"recoveryEnabled")?e.recoveryEnabled:mI.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=d6)}getTokenToInsert(e){let t=f0(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,n){let i=this.findReSyncTokenType(),a=this.exportLexerState(),s=[],o=!1,l=this.LA(1),u=this.LA(1),c=tD(()=>{let e=this.LA(0),t=new dJ(this.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:l,previous:e,ruleName:this.getCurrRuleFullName()}),l,this.LA(0));t.resyncedTokens=cR(s),this.SAVE_ERROR(t)},"generateErrorMessage");for(;!o;)if(this.tokenMatcher(u,n))return void c();else if(r.call(this)){c(),e.apply(this,t);return}else this.tokenMatcher(u,i)?o=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,s));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(!1===r||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new d5("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||cQ(t))return!1;let r=this.LA(1);return void 0!==c_(t,e=>this.tokenMatcher(r,e))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey();return cW(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),r=2;for(;;){let n=c_(e,e=>f1(t,e));if(void 0!==n)return n;t=this.LA(r),r++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return d3;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return cD(e,(r,n)=>0===n?d3:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[n],inRule:this.shortRuleNameToFullName(e[n-1])})}flattenFollowSet(){return lI(cD(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e)))}getFollowSetFromFollowKey(e){if(e===d3)return[fJ];let t=e.ruleName+e.idxInCallingRule+pP+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,fJ)||t.push(e),t}reSyncTo(e){let t=[],r=this.LA(1);for(;!1===this.tokenMatcher(r,e);)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return cR(t)}attemptInRepetitionRecovery(e,t,r,n,i,a,s){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:uO(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return cD(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};function d6(e,t,r,n,i,a,s){let o=this.getKeyForAutomaticLookahead(n,i),l=this.firstAfterRepMap[o];if(void 0===l){let e=this.getCurrRuleFullName();l=new a(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence,p=l.isEndOfRule;1===this.RULE_STACK.length&&p&&void 0===u&&(u=fJ,c=1),void 0!==u&&void 0!==c&&this.shouldInRepetitionRecoveryBeTried(u,c,s)&&this.tryInRepetitionRecovery(e,t,r,u)}tD(d6,"attemptInRepetitionRecovery");function d7(e,t,r){return r|t|e}tD(d7,"getKeyForAutomaticLookahead");var d8=class{static{tD(this,"LLkLookaheadStrategy")}constructor(e){var t;this.maxLookahead=null!=(t=null==e?void 0:e.maxLookahead)?t:mI.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);return cQ(t)?[...t,...this.validateEmptyOrAlternatives(e.rules),...this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),...this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead)]:t}validateNoLeftRecursion(e){return cL(e,e=>dP(e,e,f4))}validateEmptyOrAlternatives(e){return cL(e,e=>dL(e,f4))}validateAmbiguousAlternationAlternatives(e,t){return cL(e,e=>dM(e,t,f4))}validateSomeNonEmptyLookaheadPath(e,t){return dG(e,t,f4)}buildLookaheadForAlternation(e){return dc(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,df)}buildLookaheadForOptional(e){return dp(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,dl(e.prodType),dd)}},me=class{static{tD(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=cz(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:mI.dynamicTokensEnabled,this.maxLookahead=cz(e,"maxLookahead")?e.maxLookahead:mI.maxLookahead,this.lookaheadStrategy=cz(e,"lookaheadStrategy")?e.lookaheadStrategy:new d8({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){cb(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{let{alternation:t,repetition:r,option:n,repetitionMandatory:i,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:s}=mr(e);cb(t,t=>{let r=0===t.idx?"":t.idx;this.TRACE_INIT(`${pS(t)}${r}`,()=>{let r=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),n=d7(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(n,r)})}),cb(r,t=>{this.computeLookaheadFunc(e,t.idx,768,"Repetition",t.maxLookahead,pS(t))}),cb(n,t=>{this.computeLookaheadFunc(e,t.idx,512,"Option",t.maxLookahead,pS(t))}),cb(i,t=>{this.computeLookaheadFunc(e,t.idx,1024,"RepetitionMandatory",t.maxLookahead,pS(t))}),cb(a,t=>{this.computeLookaheadFunc(e,t.idx,1536,"RepetitionMandatoryWithSeparator",t.maxLookahead,pS(t))}),cb(s,t=>{this.computeLookaheadFunc(e,t.idx,1280,"RepetitionWithSeparator",t.maxLookahead,pS(t))})})})}computeLookaheadFunc(e,t,r,n,i,a){this.TRACE_INIT(`${a}${0===t?"":t}`,()=>{let a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:n}),s=d7(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(s,a)})}getKeyForAutomaticLookahead(e,t){return d7(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},mt=new class extends pE{static{tD(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function mr(e){mt.reset(),e.accept(mt);let t=mt.dslMethods;return mt.reset(),t}function mn(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset==!0&&(e.endOffset=t.endOffset)}function mi(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset==!0&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function ma(e,t,r){void 0===e.children[r]?e.children[r]=[t]:e.children[r].push(t)}function ms(e,t,r){void 0===e.children[t]?e.children[t]=[r]:e.children[t].push(r)}function mo(e,t){Object.defineProperty(e,"name",{enumerable:!1,configurable:!0,writable:!1,value:t})}function ml(e,t){let r=oU(e),n=r.length;for(let i=0;i<n;i++){let n=e[r[i]],a=n.length;for(let e=0;e<a;e++){let r=n[e];void 0===r.tokenTypeIdx&&this[r.name](r.children,t)}}}function mu(e,t){let r=tD(function(){},"derivedConstructor");return mo(r,e+"BaseSemantics"),r.prototype={visit:tD(function(e,t){if(sh(e)&&(e=e[0]),!c0(e))return this[e.name](e.children,t)},"visit"),validateVisitor:tD(function(){let e=mp(this,t);if(!cQ(e)){let t=cD(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: - ${t.join("\n\n").replace(/\n/g,"\n ")}`)}},"validateVisitor")},r.prototype.constructor=r,r._RULE_NAMES=t,r}function mc(e,t,r){let n=tD(function(){},"derivedConstructor");mo(n,e+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return cb(t,e=>{i[e]=ml}),n.prototype=i,n.prototype.constructor=n,n}function mp(e,t){return mf(e,t)}function mf(e,t){return uD(cD(cx(t,t=>!1===sD(e[t])),t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:eZ.MISSING_METHOD,methodName:t})))}tD(mr,"collectMethods"),tD(mn,"setNodeLocationOnlyOffset"),tD(mi,"setNodeLocationFull"),tD(ma,"addTerminalToCst"),tD(ms,"addNoneTerminalToCst"),tD(mo,"defineNameProp"),tD(ml,"defaultVisit"),tD(mu,"createBaseSemanticVisitorConstructor"),tD(mc,"createBaseVisitorConstructorWithDefaults"),(u=eZ||(eZ={}))[u.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",u[u.MISSING_METHOD=1]="MISSING_METHOD",tD(mp,"validateVisitor"),tD(mf,"validateMissingCstMethods");var md=class{static{tD(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=cz(e,"nodeLocationTracking")?e.nodeLocationTracking:mI.nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=mi,this.setNodeLocationFromNode=mi,this.cstPostRule=sJ,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=sJ,this.setNodeLocationFromNode=sJ,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=mn,this.setNodeLocationFromNode=mn,this.cstPostRule=sJ,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=sJ,this.setNodeLocationFromNode=sJ,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=sJ,this.setNodeLocationFromNode=sJ,this.cstPostRule=sJ,this.setInitialNodeLocation=sJ;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`);else this.cstInvocationStateUpdate=sJ,this.cstFinallyStateUpdate=sJ,this.cstPostTerminal=sJ,this.cstPostNonTerminal=sJ,this.cstPostRule=sJ}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==!0?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==!0?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];ma(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];ms(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(c0(this.baseCstVisitorConstructor)){let e=mu(this.className,oU(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(c0(this.baseCstVisitorWithDefaultsConstructor)){let e=mc(this.className,oU(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},mm=class{static{tD(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):mw}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?mw:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},mh=class{static{tD(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=m_){if(cW(this.definedRulesNames,e)){let t={message:f4.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:eX.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);let n=this.defineRule(e,t,r);return this[e]=n,n}OVERRIDE_RULE(e,t,r=m_){let n=d_(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(n);let i=this.defineRule(e,t,r);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let r=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(dZ(e))return!1;throw e}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return p$(cU(this.gastProductionsCache))}},my=class{static{tD(this,"RecognizerEngine")}initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=fA,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},cz(t,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a <serializedGrammar> property.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n For Further details.");if(sh(e)){if(cQ(e))throw Error("A Token Vocabulary cannot be empty.\n Note that the first argument for the parser constructor\n is no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n For Further details.")}if(sh(e))this.tokensMap=c9(e,(e,t)=>(e[t.name]=t,e),{});else if(cz(e,"modes")&&cS(lI(cU(e.modes)),fM)){let t=pr(lI(cU(e.modes)));this.tokensMap=c9(t,(e,t)=>(e[t.name]=t,e),{})}else if(sA(e))this.tokensMap=uO(e);else throw Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=fJ;let r=cS(cz(e,"modes")?lI(cU(e.modes)):cU(e),e=>cQ(e.categoryMatches));this.tokenMatcher=r?fA:fb,fk(cU(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof pp?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};function f9(e,t){let r=new f5(e,t);return r.resolveRefs(),r.errors}tD(f9,"resolveGrammar");var f5=class extends pE{static{tD(this,"GastRefResolverVisitor")}constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){cb(cU(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:eX.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}},f6=class extends pk{static{tD(this,"AbstractNextPossibleTokensWalker")}constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=uO(this.path.ruleStack).reverse(),this.occurrenceStack=uO(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let n=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,n)}}updateExpectedNext(){cQ(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},f7=class extends f6{static{tD(this,"NextAfterTokenWalker")}constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let e=new pf({definition:t.concat(r)});this.possibleTokTypes=pN(e),this.found=!0}}},f8=class extends pk{static{tD(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},de=class extends f8{static{tD(this,"NextTerminalAfterManyWalker")}walkMany(e,t,r){if(e.idx===this.occurrence){let e=cP(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof pv&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,r)}},dt=class extends f8{static{tD(this,"NextTerminalAfterManySepWalker")}walkManySep(e,t,r){if(e.idx===this.occurrence){let e=cP(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof pv&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,r)}},dr=class extends f8{static{tD(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){let e=cP(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof pv&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,r)}},dn=class extends f8{static{tD(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){let e=cP(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof pv&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,r)}};function di(e,t,r=[]){r=uO(r);let n=[],i=0;function a(t){return t.concat(c$(e,i+1))}function s(e){let i=di(a(e),t,r);return n.concat(i)}for(tD(a,"remainingPathWith"),tD(s,"getAlternativesForProd");r.length<t&&i<e.length;){let t=e[i];if(t instanceof pf)return s(t.definition);if(t instanceof pc)return s(t.definition);if(t instanceof pd)n=s(t.definition);else if(t instanceof pm)return s(t.definition.concat([new py({definition:t.definition})]));else if(t instanceof ph)return s([new pf({definition:t.definition}),new py({definition:[new pv({terminalType:t.separator})].concat(t.definition)})]);else if(t instanceof pg)n=s(t.definition.concat([new py({definition:[new pv({terminalType:t.separator})].concat(t.definition)})]));else if(t instanceof py)n=s(t.definition.concat([new py({definition:t.definition})]));else if(t instanceof pT)return cb(t.definition,e=>{!1===cQ(e.definition)&&(n=s(e.definition))}),n;else if(t instanceof pv)r.push(t.terminalType);else throw Error("non exhaustive match");i++}return n.push({partialPath:r,suffixDef:c$(e,i)}),n}function da(e,t,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",o=!1,l=t.length,u=l-n-1,c=[],p=[];for(p.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!cQ(p);){let e=p.pop();if(e===s){o&&cv(p).idx<=u&&p.pop();continue}let n=e.def,f=e.idx,d=e.ruleStack,m=e.occurrenceStack;if(cQ(n))continue;let h=n[0];if(h===i){let e={idx:f,def:c$(n),ruleStack:cR(d),occurrenceStack:cR(m)};p.push(e)}else if(h instanceof pv)if(f<l-1){let e=f+1;if(r(t[e],h.terminalType)){let t={idx:e,def:c$(n),ruleStack:d,occurrenceStack:m};p.push(t)}}else if(f===l-1)c.push({nextTokenType:h.terminalType,nextTokenOccurrence:h.idx,ruleStack:d,occurrenceStack:m}),o=!0;else throw Error("non exhaustive match");else if(h instanceof pc){let e=uO(d);e.push(h.nonTerminalName);let t=uO(m);t.push(h.idx);let r={idx:f,def:h.definition.concat(a,c$(n)),ruleStack:e,occurrenceStack:t};p.push(r)}else if(h instanceof pd){let e={idx:f,def:c$(n),ruleStack:d,occurrenceStack:m};p.push(e),p.push(s);let t={idx:f,def:h.definition.concat(c$(n)),ruleStack:d,occurrenceStack:m};p.push(t)}else if(h instanceof pm){let e=new py({definition:h.definition,idx:h.idx}),t={idx:f,def:h.definition.concat([e],c$(n)),ruleStack:d,occurrenceStack:m};p.push(t)}else if(h instanceof ph){let e=new py({definition:[new pv({terminalType:h.separator})].concat(h.definition),idx:h.idx}),t={idx:f,def:h.definition.concat([e],c$(n)),ruleStack:d,occurrenceStack:m};p.push(t)}else if(h instanceof pg){let e={idx:f,def:c$(n),ruleStack:d,occurrenceStack:m};p.push(e),p.push(s);let t=new py({definition:[new pv({terminalType:h.separator})].concat(h.definition),idx:h.idx}),r={idx:f,def:h.definition.concat([t],c$(n)),ruleStack:d,occurrenceStack:m};p.push(r)}else if(h instanceof py){let e={idx:f,def:c$(n),ruleStack:d,occurrenceStack:m};p.push(e),p.push(s);let t=new py({definition:h.definition,idx:h.idx}),r={idx:f,def:h.definition.concat([t],c$(n)),ruleStack:d,occurrenceStack:m};p.push(r)}else if(h instanceof pT)for(let e=h.definition.length-1;e>=0;e--){let t={idx:f,def:h.definition[e].definition.concat(c$(n)),ruleStack:d,occurrenceStack:m};p.push(t),p.push(s)}else if(h instanceof pf)p.push({idx:f,def:h.definition.concat(c$(n)),ruleStack:d,occurrenceStack:m});else if(h instanceof pp)p.push(ds(h,f,d,m));else throw Error("non exhaustive match")}return c}function ds(e,t,r,n){let i=uO(r);i.push(e.name);let a=uO(n);return a.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:a}}function dl(e){if(e instanceof pd||"Option"===e)return eQ.OPTION;if(e instanceof py||"Repetition"===e)return eQ.REPETITION;if(e instanceof pm||"RepetitionMandatory"===e)return eQ.REPETITION_MANDATORY;if(e instanceof ph||"RepetitionMandatoryWithSeparator"===e)return eQ.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof pg||"RepetitionWithSeparator"===e)return eQ.REPETITION_WITH_SEPARATOR;else if(e instanceof pT||"Alternation"===e)return eQ.ALTERNATION;else throw Error("non exhaustive match")}function du(e){let{occurrence:t,rule:r,prodType:n,maxLookahead:i}=e,a=dl(n);return a===eQ.ALTERNATION?d$(t,r,i):dR(t,r,a,i)}function dc(e,t,r,n,i,a){let s=d$(e,t,r),o=dA(s)?fA:fb;return a(s,n,o,i)}function dp(e,t,r,n,i,a){let s=dR(e,t,i,r),o=dA(s)?fA:fb;return a(s[0],o,n)}function df(e,t,r,n){let i=e.length,a=cS(e,e=>cS(e,e=>1===e.length));if(t)return function(t){let n=cD(t,e=>e.GATE);for(let t=0;t<i;t++){let i=e[t],a=i.length,s=n[t];if(void 0===s||!1!==s.call(this))r:for(let e=0;e<a;e++){let n=i[e],a=n.length;for(let e=0;e<a;e++)if(!1===r(this.LA(e+1),n[e]))continue r;return t}}};if(!a||n)return function(){for(let t=0;t<i;t++){let n=e[t],i=n.length;r:for(let e=0;e<i;e++){let i=n[e],a=i.length;for(let e=0;e<a;e++)if(!1===r(this.LA(e+1),i[e]))continue r;return t}}};{let t=c5(cD(e,e=>lI(e)),(e,t,r)=>(cb(t,t=>{cz(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=r),cb(t.categoryMatches,t=>{cz(e,t)||(e[t]=r)})}),e),{});return function(){return t[this.LA(1).tokenTypeIdx]}}}function dd(e,t,r){let n=cS(e,e=>1===e.length),i=e.length;if(!n||r)return function(){r:for(let r=0;r<i;r++){let n=e[r],i=n.length;for(let e=0;e<i;e++)if(!1===t(this.LA(e+1),n[e]))continue r;return!0}return!1};{let t=lI(e);if(1===t.length&&cQ(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{let e=c5(t,(e,t,r)=>(e[t.tokenTypeIdx]=!0,cb(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){return!0===e[this.LA(1).tokenTypeIdx]}}}}tD(di,"possiblePathsFrom"),tD(da,"nextPossibleTokensAfter"),tD(ds,"expandTopLevelRule"),(l=eQ||(eQ={}))[l.OPTION=0]="OPTION",l[l.REPETITION=1]="REPETITION",l[l.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",l[l.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",l[l.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",l[l.ALTERNATION=5]="ALTERNATION",tD(dl,"getProdType"),tD(du,"getLookaheadPaths"),tD(dc,"buildLookaheadFuncForOr"),tD(dp,"buildLookaheadFuncForOptionalProd"),tD(df,"buildAlternativesLookAheadFunc"),tD(dd,"buildSingleAlternativeLookaheadFunction");var dm=class extends pk{static{tD(this,"RestDefinitionFinderWalker")}constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,n){return e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.restDef=r.concat(n),!0)}walkOption(e,t,r){this.checkIsTarget(e,eQ.OPTION,t,r)||super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){this.checkIsTarget(e,eQ.REPETITION_MANDATORY,t,r)||super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){this.checkIsTarget(e,eQ.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}walkMany(e,t,r){this.checkIsTarget(e,eQ.REPETITION,t,r)||super.walkOption(e,t,r)}walkManySep(e,t,r){this.checkIsTarget(e,eQ.REPETITION_WITH_SEPARATOR,t,r)||super.walkOption(e,t,r)}},dh=class extends pE{static{tD(this,"InsideDefinitionFinderVisitor")}constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(void 0===this.targetRef||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,eQ.OPTION)}visitRepetition(e){this.checkIsTarget(e,eQ.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,eQ.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,eQ.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,eQ.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,eQ.ALTERNATION)}};function dy(e){let t=Array(e);for(let r=0;r<e;r++)t[r]=[];return t}function dg(e){let t=[""];for(let r=0;r<e.length;r++){let n=e[r],i=[];for(let e=0;e<t.length;e++){let r=t[e];i.push(r+"_"+n.tokenTypeIdx);for(let e=0;e<n.categoryMatches.length;e++){let t="_"+n.categoryMatches[e];i.push(r+t)}}t=i}return t}function dT(e,t,r){for(let n=0;n<e.length;n++){if(n===r)continue;let i=e[n];for(let e=0;e<t.length;e++)if(!0===i[t[e]])return!1}return!0}function dv(e,t){let r=cD(e,e=>di([e],1)),n=dy(r.length),i=cD(r,e=>{let t={};return cb(e,e=>{cb(dg(e.partialPath),e=>{t[e]=!0})}),t}),a=r;for(let e=1;e<=t;e++){let r=a;a=dy(r.length);for(let s=0;s<r.length;s++){let o=r[s];for(let r=0;r<o.length;r++){let l=o[r].partialPath,u=o[r].suffixDef,c=dg(l);if(dT(i,c,s)||cQ(u)||l.length===t){let e=n[s];if(!1===dE(e,l)){e.push(l);for(let e=0;e<c.length;e++){let t=c[e];i[s][t]=!0}}}else{let t=di(u,e+1,l);a[s]=a[s].concat(t),cb(t,e=>{cb(dg(e.partialPath),e=>{i[s][e]=!0})})}}}}return n}function d$(e,t,r,n){let i=new dh(e,eQ.ALTERNATION,n);return t.accept(i),dv(i.result,r)}function dR(e,t,r,n){let i=new dh(e,r);t.accept(i);let a=i.result,s=new dm(t,e,r).startWalking();return dv([new pf({definition:a}),new pf({definition:s})],n)}function dE(e,t){n:for(let r=0;r<e.length;r++){let n=e[r];if(n.length===t.length){for(let e=0;e<n.length;e++){let r=t[e],i=n[e];if(!1==(r===i||void 0!==i.categoryMatchesMap[r.tokenTypeIdx]))continue n}return!0}}return!1}function db(e,t){return e.length<t.length&&cS(e,(e,r)=>{let n=t[r];return e===n||n.categoryMatchesMap[e.tokenTypeIdx]})}function dA(e){return cS(e,e=>cS(e,e=>cS(e,e=>cQ(e.categoryMatches))))}function dC(e){return cD(e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}),e=>Object.assign({type:eX.CUSTOM_LOOKAHEAD_VALIDATION},e))}function dS(e,t,r,n){let i=cL(e,e=>dk(e,r)),a=dq(e,t,r),s=cL(e,e=>dF(e,r)),o=cL(e,t=>dI(t,e,n,r));return i.concat(a,s,o)}function dk(e,t){let r=new dw;return e.accept(r),cD(cU(c4(cj(r.allProductions,dx),e=>e.length>1)),r=>{let n=cP(r),i=t.buildDuplicateFoundError(e,r),a=pS(n),s={message:i,type:eX.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:a,occurrence:n.idx},o=dN(n);return o&&(s.parameter=o),s})}function dx(e){return`${pS(e)}_#_${e.idx}_#_${dN(e)}`}function dN(e){return e instanceof pv?e.terminalType.name:e instanceof pc?e.nonTerminalName:""}tD(dy,"initializeArrayOfArrays"),tD(dg,"pathToHashKeys"),tD(dT,"isUniquePrefixHash"),tD(dv,"lookAheadSequenceFromAlternatives"),tD(d$,"getLookaheadPathsForOr"),tD(dR,"getLookaheadPathsForOptionalProd"),tD(dE,"containsPath"),tD(db,"isStrictPrefixOfPath"),tD(dA,"areTokenCategoriesNotUsed"),tD(dC,"validateLookahead"),tD(dS,"validateGrammar"),tD(dk,"validateDuplicateProductions"),tD(dx,"identifyProductionForDuplicates"),tD(dN,"getExtraProductionArgument");var dw=class extends pE{static{tD(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};function dI(e,t,r,n){let i=[];if(c5(t,(t,r)=>r.name===e.name?t+1:t,0)>1){let t=n.buildDuplicateRuleNameError({topLevelRule:e,grammarName:r});i.push({message:t,type:eX.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function d_(e,t,r){let n=[];return cW(t,e)||n.push({message:`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,type:eX.INVALID_RULE_OVERRIDE,ruleName:e}),n}function dP(e,t,r,n=[]){let i=[],a=dO(t.definition);if(cQ(a))return[];{let t=e.name;cW(a,e)&&i.push({message:r.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:n}),type:eX.LEFT_RECURSION,ruleName:t});let s=cL(cT(a,n.concat([e])),t=>{let i=uO(n);return i.push(t),dP(e,t,r,i)});return i.concat(s)}}function dO(e){let t=[];if(cQ(e))return t;let r=cP(e);if(r instanceof pc)t.push(r.referencedRule);else if(r instanceof pf||r instanceof pd||r instanceof pm||r instanceof ph||r instanceof pg||r instanceof py)t=t.concat(dO(r.definition));else if(r instanceof pT)t=lI(cD(r.definition,e=>dO(e.definition)));else if(r instanceof pv);else throw Error("non exhaustive match");let n=pA(r),i=e.length>1;if(!n||!i)return t;{let r=c$(e);return t.concat(dO(r))}}tD(dI,"validateRuleDoesNotAlreadyExist"),tD(d_,"validateRuleIsOverridden"),tD(dP,"validateNoLeftRecursion"),tD(dO,"getFirstNoneTerminal");var dD=class extends pE{static{tD(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};function dL(e,t){let r=new dD;return e.accept(r),cL(r.alternations,r=>cL(cR(r.definition),(n,i)=>cQ(da([n],[],fb,1))?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:r,emptyChoiceIdx:i}),type:eX.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:r.idx,alternative:i+1}]:[]))}function dM(e,t,r){let n=new dD;e.accept(n);let i=n.alternations;return cL(i=c6(i,e=>!0===e.ignoreAmbiguities),n=>{let i=d$(n.idx,e,n.maxLookahead||t,n),a=dz(i,n,e,r),s=dK(i,n,e,r);return a.concat(s)})}tD(dL,"validateEmptyOrAlternative"),tD(dM,"validateAmbiguousAlternationAlternatives");var dj=class extends pE{static{tD(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};function dF(e,t){let r=new dD;return e.accept(r),cL(r.alternations,r=>r.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:r}),type:eX.TOO_MANY_ALTS,ruleName:e.name,occurrence:r.idx}]:[])}function dG(e,t,r){let n=[];return cb(e,e=>{let i=new dj;e.accept(i),cb(i.allProductions,i=>{let a=dl(i),s=i.maxLookahead||t;if(cQ(lI(dR(i.idx,e,a,s)[0]))){let t=r.buildEmptyRepetitionError({topLevelRule:e,repetition:i});n.push({message:t,type:eX.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),n}function dz(e,t,r,n){let i=[];return cD(c5(e,(r,n,a)=>(!0===t.definition[a].ignoreAmbiguities||cb(n,n=>{let s=[a];cb(e,(e,r)=>{a!==r&&dE(e,n)&&!0!==t.definition[r].ignoreAmbiguities&&s.push(r)}),s.length>1&&!dE(i,n)&&(i.push(n),r.push({alts:s,path:n}))}),r),[]),e=>{let i=cD(e.alts,e=>e+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:eX.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:t.idx,alternatives:e.alts}})}function dK(e,t,r,n){let i=c5(e,(e,t,r)=>{let n=cD(t,e=>({idx:r,path:e}));return e.concat(n)},[]);return uD(cL(i,e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];let a=e.idx,s=e.path;return cD(cx(i,e=>!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx<a&&db(e.path,s)),e=>{let i=[e.idx+1,a+1],s=0===t.idx?"":t.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:eX.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:s,alternatives:i}})}))}function dq(e,t,r){let n=[],i=cD(t,e=>e.name);return cb(e,e=>{let t=e.name;if(cW(i,t)){let i=r.buildNamespaceConflictError(e);n.push({message:i,type:eX.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),n}function dU(e){let t=cm(e,{errMsgProvider:f3}),r={};return cb(e.rules,e=>{r[e.name]=e}),f9(r,t.errMsgProvider)}function dB(e){return dS((e=cm(e,{errMsgProvider:f4})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}tD(dF,"validateTooManyAlts"),tD(dG,"validateSomeNonEmptyLookaheadPath"),tD(dz,"checkAlternativesAmbiguities"),tD(dK,"checkPrefixAlternativesAmbiguities"),tD(dq,"checkTerminalAndNoneTerminalsNameSpace"),tD(dU,"resolveGrammar"),tD(dB,"validateGrammar");var dW="MismatchedTokenException",dV="NoViableAltException",dH="EarlyExitException",dY="NotAllInputParsedException",dQ=[dW,dV,dH,dY];function dZ(e){return cW(dQ,e.name)}Object.freeze(dQ),tD(dZ,"isRecognitionException");var dX=class extends Error{static{tD(this,"RecognitionException")}constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},dJ=class extends dX{static{tD(this,"MismatchedTokenException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=dW}},d0=class extends dX{static{tD(this,"NoViableAltException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=dV}},d1=class extends dX{static{tD(this,"NotAllInputParsedException")}constructor(e,t){super(e,t),this.name=dY}},d2=class extends dX{static{tD(this,"EarlyExitException")}constructor(e,t,r){super(e,t),this.previousToken=r,this.name=dH}},d3={},d4="InRuleRecoveryException",d9=class extends Error{static{tD(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=d4}},d5=class{static{tD(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=cz(e,"recoveryEnabled")?e.recoveryEnabled:mI.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=d6)}getTokenToInsert(e){let t=f0(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,n){let i=this.findReSyncTokenType(),a=this.exportLexerState(),s=[],o=!1,l=this.LA(1),u=this.LA(1),c=tD(()=>{let e=this.LA(0),t=new dJ(this.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:l,previous:e,ruleName:this.getCurrRuleFullName()}),l,this.LA(0));t.resyncedTokens=cR(s),this.SAVE_ERROR(t)},"generateErrorMessage");for(;!o;)if(this.tokenMatcher(u,n))return void c();else if(r.call(this)){c(),e.apply(this,t);return}else this.tokenMatcher(u,i)?o=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,s));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(!1===r||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){let r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new d9("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||cQ(t))return!1;let r=this.LA(1);return void 0!==c_(t,e=>this.tokenMatcher(r,e))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey();return cW(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),r=2;for(;;){let n=c_(e,e=>f1(t,e));if(void 0!==n)return n;t=this.LA(r),r++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return d3;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return cD(e,(r,n)=>0===n?d3:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[n],inRule:this.shortRuleNameToFullName(e[n-1])})}flattenFollowSet(){return lI(cD(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e)))}getFollowSetFromFollowKey(e){if(e===d3)return[fJ];let t=e.ruleName+e.idxInCallingRule+pP+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,fJ)||t.push(e),t}reSyncTo(e){let t=[],r=this.LA(1);for(;!1===this.tokenMatcher(r,e);)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return cR(t)}attemptInRepetitionRecovery(e,t,r,n,i,a,s){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:uO(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return cD(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};function d6(e,t,r,n,i,a,s){let o=this.getKeyForAutomaticLookahead(n,i),l=this.firstAfterRepMap[o];if(void 0===l){let e=this.getCurrRuleFullName();l=new a(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence,p=l.isEndOfRule;1===this.RULE_STACK.length&&p&&void 0===u&&(u=fJ,c=1),void 0!==u&&void 0!==c&&this.shouldInRepetitionRecoveryBeTried(u,c,s)&&this.tryInRepetitionRecovery(e,t,r,u)}tD(d6,"attemptInRepetitionRecovery");function d7(e,t,r){return r|t|e}tD(d7,"getKeyForAutomaticLookahead");var d8=class{static{tD(this,"LLkLookaheadStrategy")}constructor(e){var t;this.maxLookahead=null!=(t=null==e?void 0:e.maxLookahead)?t:mI.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);return cQ(t)?[...t,...this.validateEmptyOrAlternatives(e.rules),...this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),...this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead)]:t}validateNoLeftRecursion(e){return cL(e,e=>dP(e,e,f4))}validateEmptyOrAlternatives(e){return cL(e,e=>dL(e,f4))}validateAmbiguousAlternationAlternatives(e,t){return cL(e,e=>dM(e,t,f4))}validateSomeNonEmptyLookaheadPath(e,t){return dG(e,t,f4)}buildLookaheadForAlternation(e){return dc(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,df)}buildLookaheadForOptional(e){return dp(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,dl(e.prodType),dd)}},me=class{static{tD(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=cz(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:mI.dynamicTokensEnabled,this.maxLookahead=cz(e,"maxLookahead")?e.maxLookahead:mI.maxLookahead,this.lookaheadStrategy=cz(e,"lookaheadStrategy")?e.lookaheadStrategy:new d8({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){cb(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{let{alternation:t,repetition:r,option:n,repetitionMandatory:i,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:s}=mr(e);cb(t,t=>{let r=0===t.idx?"":t.idx;this.TRACE_INIT(`${pS(t)}${r}`,()=>{let r=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),n=d7(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(n,r)})}),cb(r,t=>{this.computeLookaheadFunc(e,t.idx,768,"Repetition",t.maxLookahead,pS(t))}),cb(n,t=>{this.computeLookaheadFunc(e,t.idx,512,"Option",t.maxLookahead,pS(t))}),cb(i,t=>{this.computeLookaheadFunc(e,t.idx,1024,"RepetitionMandatory",t.maxLookahead,pS(t))}),cb(a,t=>{this.computeLookaheadFunc(e,t.idx,1536,"RepetitionMandatoryWithSeparator",t.maxLookahead,pS(t))}),cb(s,t=>{this.computeLookaheadFunc(e,t.idx,1280,"RepetitionWithSeparator",t.maxLookahead,pS(t))})})})}computeLookaheadFunc(e,t,r,n,i,a){this.TRACE_INIT(`${a}${0===t?"":t}`,()=>{let a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:n}),s=d7(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(s,a)})}getKeyForAutomaticLookahead(e,t){return d7(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},mt=new class extends pE{static{tD(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function mr(e){mt.reset(),e.accept(mt);let t=mt.dslMethods;return mt.reset(),t}function mn(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset==!0&&(e.endOffset=t.endOffset)}function mi(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset==!0&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function ma(e,t,r){void 0===e.children[r]?e.children[r]=[t]:e.children[r].push(t)}function ms(e,t,r){void 0===e.children[t]?e.children[t]=[r]:e.children[t].push(r)}function mo(e,t){Object.defineProperty(e,"name",{enumerable:!1,configurable:!0,writable:!1,value:t})}function ml(e,t){let r=oU(e),n=r.length;for(let i=0;i<n;i++){let n=e[r[i]],a=n.length;for(let e=0;e<a;e++){let r=n[e];void 0===r.tokenTypeIdx&&this[r.name](r.children,t)}}}function mu(e,t){let r=tD(function(){},"derivedConstructor");return mo(r,e+"BaseSemantics"),r.prototype={visit:tD(function(e,t){if(sh(e)&&(e=e[0]),!c0(e))return this[e.name](e.children,t)},"visit"),validateVisitor:tD(function(){let e=mp(this,t);if(!cQ(e)){let t=cD(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${t.join("\n\n").replace(/\n/g,"\n ")}`)}},"validateVisitor")},r.prototype.constructor=r,r._RULE_NAMES=t,r}function mc(e,t,r){let n=tD(function(){},"derivedConstructor");mo(n,e+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return cb(t,e=>{i[e]=ml}),n.prototype=i,n.prototype.constructor=n,n}function mp(e,t){return mf(e,t)}function mf(e,t){return uD(cD(cx(t,t=>!1===sD(e[t])),t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:eZ.MISSING_METHOD,methodName:t})))}tD(mr,"collectMethods"),tD(mn,"setNodeLocationOnlyOffset"),tD(mi,"setNodeLocationFull"),tD(ma,"addTerminalToCst"),tD(ms,"addNoneTerminalToCst"),tD(mo,"defineNameProp"),tD(ml,"defaultVisit"),tD(mu,"createBaseSemanticVisitorConstructor"),tD(mc,"createBaseVisitorConstructorWithDefaults"),(u=eZ||(eZ={}))[u.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",u[u.MISSING_METHOD=1]="MISSING_METHOD",tD(mp,"validateVisitor"),tD(mf,"validateMissingCstMethods");var md=class{static{tD(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=cz(e,"nodeLocationTracking")?e.nodeLocationTracking:mI.nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=mi,this.setNodeLocationFromNode=mi,this.cstPostRule=sJ,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=sJ,this.setNodeLocationFromNode=sJ,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=mn,this.setNodeLocationFromNode=mn,this.cstPostRule=sJ,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=sJ,this.setNodeLocationFromNode=sJ,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=sJ,this.setNodeLocationFromNode=sJ,this.cstPostRule=sJ,this.setInitialNodeLocation=sJ;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`);else this.cstInvocationStateUpdate=sJ,this.cstFinallyStateUpdate=sJ,this.cstPostTerminal=sJ,this.cstPostNonTerminal=sJ,this.cstPostRule=sJ}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==!0?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==!0?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];ma(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){let r=this.CST_STACK[this.CST_STACK.length-1];ms(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(c0(this.baseCstVisitorConstructor)){let e=mu(this.className,oU(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(c0(this.baseCstVisitorWithDefaultsConstructor)){let e=mc(this.className,oU(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},mm=class{static{tD(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):mw}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?mw:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},mh=class{static{tD(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=m_){if(cW(this.definedRulesNames,e)){let t={message:f4.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:eX.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);let n=this.defineRule(e,t,r);return this[e]=n,n}OVERRIDE_RULE(e,t,r=m_){let n=d_(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(n);let i=this.defineRule(e,t,r);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let r=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(dZ(e))return!1;throw e}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return p$(cU(this.gastProductionsCache))}},my=class{static{tD(this,"RecognizerEngine")}initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=fA,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},cz(t,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a <serializedGrammar> property.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n For Further details.");if(sh(e)){if(cQ(e))throw Error("A Token Vocabulary cannot be empty.\n Note that the first argument for the parser constructor\n is no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n For Further details.")}if(sh(e))this.tokensMap=c5(e,(e,t)=>(e[t.name]=t,e),{});else if(cz(e,"modes")&&cS(lI(cU(e.modes)),fM)){let t=pr(lI(cU(e.modes)));this.tokensMap=c5(t,(e,t)=>(e[t.name]=t,e),{})}else if(sA(e))this.tokensMap=uO(e);else throw Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=fJ;let r=cS(cz(e,"modes")?lI(cU(e.modes)):cU(e),e=>cQ(e.categoryMatches));this.tokenMatcher=r?fA:fb,fk(cU(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let n=cz(r,"resyncEnabled")?r.resyncEnabled:m_.resyncEnabled,i=cz(r,"recoveryValueFunc")?r.recoveryValueFunc:m_.recoveryValueFunc,a=this.ruleShortNameIdx<<12;return this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a,Object.assign(!0===this.outputCst?tD(function(...r){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,r);let n=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(n),n}catch(e){return this.invokeRuleCatch(e,n,i)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):tD(function(...r){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,r)}catch(e){return this.invokeRuleCatch(e,n,i)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,r){let n=1===this.RULE_STACK.length,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(dZ(e)){if(i){let t=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(t)){if(e.resyncedTokens=this.reSyncTo(t),!this.outputCst)return r(e);{let e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}}if(this.outputCst){let t=this.CST_STACK[this.CST_STACK.length-1];t.recoveredNode=!0,e.partialCstResult=t}throw e}if(n)return this.moveToTerminatedState(),r(e)}throw e}optionInternal(e,t){let r=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof e){n=e.DEF;let t=e.GATE;if(void 0!==t){let e=i;i=tD(()=>t.call(this)&&e.call(this),"lookAheadFunc")}}else n=e;if(!0===i.call(this))return n.call(this)}atLeastOneInternal(e,t){let r=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof t){n=t.DEF;let e=t.GATE;if(void 0!==e){let t=i;i=tD(()=>e.call(this)&&t.call(this),"lookAheadFunc")}}else n=t;if(!0===i.call(this)){let e=this.doSingleRepetition(n);for(;!0===i.call(this)&&!0===e;)e=this.doSingleRepetition(n)}else throw this.raiseEarlyExitException(e,eQ.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,1024,e,dr)}atLeastOneSepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){let n=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(r).call(this)){n.call(this);let t=tD(()=>this.tokenMatcher(this.LA(1),i),"separatorLookAheadFunc");for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,n,dn],t,1536,e,dn)}else throw this.raiseEarlyExitException(e,eQ.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){let r=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof t){n=t.DEF;let e=t.GATE;if(void 0!==e){let t=i;i=tD(()=>e.call(this)&&t.call(this),"lookaheadFunction")}}else n=t;let a=!0;for(;!0===i.call(this)&&!0===a;)a=this.doSingleRepetition(n);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,768,e,de,a)}manySepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){let n=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(r).call(this)){n.call(this);let t=tD(()=>this.tokenMatcher(this.LA(1),i),"separatorLookAheadFunc");for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,n,dt],t,1280,e,dt)}}repetitionSepSecondInternal(e,t,r,n,i){for(;r();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,n,i],r,1536,e,i)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){let r=this.getKeyForAutomaticLookahead(256,t),n=sh(e)?e:e.DEF,i=this.getLaFuncFromCache(r).call(this,n);if(void 0!==i)return n[i].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()){let e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new d1(t,e))}}subruleInternal(e,t,r){let n;try{let i=void 0!==r?r.ARGS:void 0;return this.subruleIdx=t,n=e.apply(this,i),this.cstPostNonTerminal(n,void 0!==r&&void 0!==r.LABEL?r.LABEL:e.ruleName),n}catch(t){throw this.subruleInternalError(t,r,e.ruleName)}}subruleInternalError(e,t,r){throw dZ(e)&&void 0!==e.partialCstResult&&(this.cstPostNonTerminal(e.partialCstResult,void 0!==t&&void 0!==t.LABEL?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let n;try{let t=this.LA(1);!0===this.tokenMatcher(t,e)?(this.consumeToken(),n=t):this.consumeInternalError(e,t,r)}catch(r){n=this.consumeInternalRecovery(e,t,r)}return this.cstPostTerminal(void 0!==r&&void 0!==r.LABEL?r.LABEL:e.name,n),n}consumeInternalError(e,t,r){let n,i=this.LA(0);throw n=void 0!==r&&r.ERR_MSG?r.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new dJ(n,t,i))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&"MismatchedTokenException"===r.name&&!this.isBackTracking()){let n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(e){if(e.name===d4)throw r;throw e}}throw r}saveRecogState(){let e=this.errors,t=uO(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),fJ)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},mg=class{static{tD(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=cz(e,"errorMessageProvider")?e.errorMessageProvider:mI.errorMessageProvider}SAVE_ERROR(e){if(dZ(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:uO(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return uO(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){let n=this.getCurrRuleFullName(),i=dR(e,this.getGAstProductions()[n],t,this.maxLookahead)[0],a=[];for(let e=1;e<=this.maxLookahead;e++)a.push(this.LA(e));let s=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:a,previous:this.LA(0),customUserDescription:r,ruleName:n});throw this.SAVE_ERROR(new d2(s,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let r=this.getCurrRuleFullName(),n=d$(e,this.getGAstProductions()[r],this.maxLookahead),i=[];for(let e=1;e<=this.maxLookahead;e++)i.push(this.LA(e));let a=this.LA(0),s=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:n,actual:i,previous:a,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new d0(s,this.LA(1),a))}},mT=class{static{tD(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,t){let r=this.gastProductionsCache[e];if(c0(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return da([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=cP(e.ruleStack);return new f7(this.getGAstProductions()[t],e).startWalking()}},mv={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(mv);var m$=fZ({name:"RECORDING_PHASE_TOKEN",pattern:fG.NA});fk([m$]);var mR=f0(m$,"This IToken indicates the Parser is in Recording Phase\n See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",-1,-1,-1,-1,-1,-1);Object.freeze(mR);var mE={name:"This CSTNode indicates the Parser is in Recording Phase\n See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",children:{}},mb=class{static{tD(this,"GastRecorder")}initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let t=e>0?e:"";this[`CONSUME${t}`]=function(t,r){return this.consumeInternalRecord(t,e,r)},this[`SUBRULE${t}`]=function(t,r){return this.subruleInternalRecord(t,e,r)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{for(let e=0;e<10;e++){let t=e>0?e:"";delete this[`CONSUME${t}`],delete this[`SUBRULE${t}`],delete this[`OPTION${t}`],delete this[`OR${t}`],delete this[`MANY${t}`],delete this[`MANY_SEP${t}`],delete this[`AT_LEAST_ONE${t}`],delete this[`AT_LEAST_ONE_SEP${t}`]}delete this.consume,delete this.subrule,delete this.option,delete this.or,delete this.many,delete this.atLeastOne,delete this.ACTION,delete this.BACKTRACK,delete this.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return mw}topLevelRuleRecord(e,t){try{let r=new pp({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(e){if(!0!==e.KNOWN_RECORDER_ERROR)try{e.message=e.message+'\n This error was thrown during the "grammar recording phase" For more info see:\n https://chevrotain.io/docs/guide/internals.html#grammar-recording'}catch(e){}throw e}}optionInternalRecord(e,t){return mA.call(this,pd,e,t)}atLeastOneInternalRecord(e,t){mA.call(this,pm,t,e)}atLeastOneSepFirstInternalRecord(e,t){mA.call(this,ph,t,e,!0)}manyInternalRecord(e,t){mA.call(this,py,t,e)}manySepFirstInternalRecord(e,t){mA.call(this,pg,t,e,!0)}orInternalRecord(e,t){return mC.call(this,e,t)}subruleInternalRecord(e,t,r){if(mk(t),!e||!1===cz(e,"ruleName")){let r=Error(`<SUBRULE${mS(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}let n=cv(this.recordingProdStack),i=new pc({idx:t,nonTerminalName:e.ruleName,label:null==r?void 0:r.LABEL,referencedRule:void 0});return n.definition.push(i),this.outputCst?mE:mv}consumeInternalRecord(e,t,r){if(mk(t),!fP(e)){let r=Error(`<CONSUME${mS(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}let n=cv(this.recordingProdStack),i=new pv({idx:t,terminalType:e,label:null==r?void 0:r.LABEL});return n.definition.push(i),mR}};function mA(e,t,r,n=!1){mk(r);let i=cv(this.recordingProdStack),a=sD(t)?t:t.DEF,s=new e({definition:[],idx:r});return n&&(s.separator=t.SEP),cz(t,"MAX_LOOKAHEAD")&&(s.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),mv}function mC(e,t){mk(t);let r=cv(this.recordingProdStack),n=!1===sh(e),i=!1===n?e:e.DEF,a=new pT({definition:[],idx:t,ignoreAmbiguities:n&&!0===e.IGNORE_AMBIGUITIES});return cz(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),a.hasPredicates=c8(i,e=>sD(e.GATE)),r.definition.push(a),cb(i,e=>{let t=new pf({definition:[]});a.definition.push(t),cz(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:cz(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),mv}function mS(e){return 0===e?"":`${e}`}function mk(e){if(e<0||e>255){let t=Error(`Invalid DSL Method idx value: <${e}> Idx value must be a none negative value smaller than ${256}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}tD(mA,"recordProd"),tD(mC,"recordOrProd"),tD(mS,"getIdxSuffix"),tD(mk,"assertMethodIdxIsValid");var mx=class{static{tD(this,"PerformanceTracer")}initPerformanceTracer(e){if(cz(e,"traceInitPerf")){let t=e.traceInitPerf,r="number"==typeof t;this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=mI.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let r=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${e}>`);let{time:n,value:i}=pa(t),a=n>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${r}<-- <${e}> time: ${n}ms`),this.traceInitIndent--,i}}};function mN(e,t){t.forEach(t=>{let r=t.prototype;Object.getOwnPropertyNames(r).forEach(n=>{if("constructor"===n)return;let i=Object.getOwnPropertyDescriptor(r,n);i&&(i.get||i.set)?Object.defineProperty(e.prototype,n,i):e.prototype[n]=t.prototype[n]})})}tD(mN,"applyMixins");var mw=f0(fJ,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(mw);var mI=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:f2,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),m_=Object.freeze({recoveryValueFunc:tD(()=>void 0,"recoveryValueFunc"),resyncEnabled:!0});function mP(e){return function(){return e}}(c=eX||(eX={}))[c.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",c[c.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",c[c.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",c[c.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",c[c.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",c[c.LEFT_RECURSION=5]="LEFT_RECURSION",c[c.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",c[c.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",c[c.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",c[c.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",c[c.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",c[c.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",c[c.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",c[c.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION",tD(mP,"EMPTY_ALT");var mO=class e{static{tD(this,"Parser")}static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let t;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{ps(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),cb(this.definedRulesNames,e=>{let t,r=this[e].originalGrammarAction;this.TRACE_INIT(`${e} Rule`,()=>{t=this.topLevelRuleRecord(e,r)}),this.gastProductionsCache[e]=t})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=dU({rules:cU(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(cQ(n)&&!1===this.skipValidations){let e=dB({rules:cU(this.gastProductionsCache),tokenTypes:cU(this.tokensMap),errMsgProvider:f4,grammarName:r}),t=dC({lookaheadStrategy:this.lookaheadStrategy,rules:cU(this.gastProductionsCache),tokenTypes:cU(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(e,t)}}),cQ(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let e=pD(cU(this.gastProductionsCache));this.resyncFollows=e}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var e,t;null==(t=(e=this.lookaheadStrategy).initialize)||t.call(e,{rules:cU(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(cU(this.gastProductionsCache))})),!e.DEFER_DEFINITION_ERRORS_HANDLING&&!cQ(this.definitionErrors))throw t=cD(this.definitionErrors,e=>e.message),Error(`Parser Definition Errors detected: - ${t.join("\n-------------------------------\n")}`)})}constructor(e,t){if(this.definitionErrors=[],this.selfAnalysisDone=!1,this.initErrorHandler(t),this.initLexerAdapter(),this.initLooksAhead(t),this.initRecognizerEngine(e,t),this.initRecoverable(t),this.initTreeBuilder(t),this.initContentAssist(),this.initGastRecorder(t),this.initPerformanceTracer(t),cz(t,"ignoredIssues"))throw Error("The <ignoredIssues> IParserConfig property has been deprecated.\n Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n For further details.");this.skipValidations=cz(t,"skipValidations")?t.skipValidations:mI.skipValidations}};mO.DEFER_DEFINITION_ERRORS_HANDLING=!1,mN(mO,[d9,me,md,mm,my,mh,mg,mT,mb,mx]);var mD=class extends mO{static{tD(this,"EmbeddedActionsParser")}constructor(e,t=mI){let r=uO(t);r.outputCst=!1,super(e,r)}};function mL(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}function mM(){this.__data__=[],this.size=0}function mj(e,t){return e===t||e!=e&&t!=t}function mF(e,t){for(var r=e.length;r--;)if(mj(e[r][0],t))return r;return -1}tD(mL,"arrayMap"),tD(mM,"listCacheClear"),tD(mj,"eq"),tD(mF,"assocIndexOf");var mG=Array.prototype.splice;function mz(e){var t=this.__data__,r=mF(t,e);return!(r<0)&&(r==t.length-1?t.pop():mG.call(t,r,1),--this.size,!0)}function mK(e){var t=this.__data__,r=mF(t,e);return r<0?void 0:t[r][1]}function mq(e){return mF(this.__data__,e)>-1}function mU(e,t){var r=this.__data__,n=mF(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function mB(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function mW(){this.__data__=new mB,this.size=0}function mV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function mH(e){return this.__data__.get(e)}function mY(e){return this.__data__.has(e)}tD(mz,"listCacheDelete"),tD(mK,"listCacheGet"),tD(mq,"listCacheHas"),tD(mU,"listCacheSet"),tD(mB,"ListCache"),mB.prototype.clear=mM,mB.prototype.delete=mz,mB.prototype.get=mK,mB.prototype.has=mq,mB.prototype.set=mU,tD(mW,"stackClear"),tD(mV,"stackDelete"),tD(mH,"stackGet"),tD(mY,"stackHas");var mQ="object"==typeof global&&global&&global.Object===Object&&global,mZ="object"==typeof self&&self&&self.Object===Object&&self,mX=mQ||mZ||Function("return this")(),mJ=mX.Symbol,m0=Object.prototype,m1=m0.hasOwnProperty,m2=m0.toString,m3=mJ?mJ.toStringTag:void 0;function m4(e){var t=m1.call(e,m3),r=e[m3];try{e[m3]=void 0;var n=!0}catch(e){}var i=m2.call(e);return n&&(t?e[m3]=r:delete e[m3]),i}tD(m4,"getRawTag");var m5=Object.prototype.toString;function m9(e){return m5.call(e)}tD(m9,"objectToString");var m6=mJ?mJ.toStringTag:void 0;function m7(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":m6&&m6 in Object(e)?m4(e):m9(e)}function m8(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function he(e){if(!m8(e))return!1;var t=m7(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}tD(m7,"baseGetTag"),tD(m8,"isObject"),tD(he,"isFunction");var ht=mX["__core-js_shared__"],hr=(p=/[^.]+$/.exec(ht&&ht.keys&&ht.keys.IE_PROTO||""))?"Symbol(src)_1."+p:"";function hn(e){return!!hr&&hr in e}tD(hn,"isMasked");var hi=Function.prototype.toString;function ha(e){if(null!=e){try{return hi.call(e)}catch(e){}try{return e+""}catch(e){}}return""}tD(ha,"toSource");var hs=/^\[object .+?Constructor\]$/,ho=Object.prototype,hl=Function.prototype.toString,hu=ho.hasOwnProperty,hc=RegExp("^"+hl.call(hu).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function hp(e){return!(!m8(e)||hn(e))&&(he(e)?hc:hs).test(ha(e))}function hf(e,t){return null==e?void 0:e[t]}function hd(e,t){var r=hf(e,t);return hp(r)?r:void 0}tD(hp,"baseIsNative"),tD(hf,"getValue"),tD(hd,"getNative");var hm=hd(mX,"Map"),hh=hd(Object,"create");function hy(){this.__data__=hh?hh(null):{},this.size=0}function hg(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=!!t,t}tD(hy,"hashClear"),tD(hg,"hashDelete");var hT=Object.prototype.hasOwnProperty;function hv(e){var t=this.__data__;if(hh){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return hT.call(t,e)?t[e]:void 0}tD(hv,"hashGet");var h$=Object.prototype.hasOwnProperty;function hR(e){var t=this.__data__;return hh?void 0!==t[e]:h$.call(t,e)}function hE(e,t){var r=this.__data__;return this.size+=+!this.has(e),r[e]=hh&&void 0===t?"__lodash_hash_undefined__":t,this}function hb(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function hA(){this.size=0,this.__data__={hash:new hb,map:new(hm||mB),string:new hb}}function hC(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}function hS(e,t){var r=e.__data__;return hC(t)?r["string"==typeof t?"string":"hash"]:r.map}function hk(e){var t=hS(this,e).delete(e);return this.size-=!!t,t}function hx(e){return hS(this,e).get(e)}function hN(e){return hS(this,e).has(e)}function hw(e,t){var r=hS(this,e),n=r.size;return r.set(e,t),this.size+=+(r.size!=n),this}function hI(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function h_(e,t){var r=this.__data__;if(r instanceof mB){var n=r.__data__;if(!hm||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new hI(n)}return r.set(e,t),this.size=r.size,this}function hP(e){var t=this.__data__=new mB(e);this.size=t.size}function hO(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}function hD(e){return this.__data__.has(e)}function hL(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new hI;++t<r;)this.add(e[t])}function hM(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}function hj(e,t){return e.has(t)}function hF(e,t,r,n,i,a){var s=1&r,o=e.length,l=t.length;if(o!=l&&!(s&&l>o))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var p=-1,f=!0,d=2&r?new hL:void 0;for(a.set(e,t),a.set(t,e);++p<o;){var m=e[p],h=t[p];if(n)var y=s?n(h,m,p,t,e,a):n(m,h,p,e,t,a);if(void 0!==y){if(y)continue;f=!1;break}if(d){if(!hM(t,function(e,t){if(!hj(d,t)&&(m===e||i(m,e,r,n,a)))return d.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,r,n,a))){f=!1;break}}return a.delete(e),a.delete(t),f}tD(hR,"hashHas"),tD(hE,"hashSet"),tD(hb,"Hash"),hb.prototype.clear=hy,hb.prototype.delete=hg,hb.prototype.get=hv,hb.prototype.has=hR,hb.prototype.set=hE,tD(hA,"mapCacheClear"),tD(hC,"isKeyable"),tD(hS,"getMapData"),tD(hk,"mapCacheDelete"),tD(hx,"mapCacheGet"),tD(hN,"mapCacheHas"),tD(hw,"mapCacheSet"),tD(hI,"MapCache"),hI.prototype.clear=hA,hI.prototype.delete=hk,hI.prototype.get=hx,hI.prototype.has=hN,hI.prototype.set=hw,tD(h_,"stackSet"),tD(hP,"Stack"),hP.prototype.clear=mW,hP.prototype.delete=mV,hP.prototype.get=mH,hP.prototype.has=mY,hP.prototype.set=h_,tD(hO,"setCacheAdd"),tD(hD,"setCacheHas"),tD(hL,"SetCache"),hL.prototype.add=hL.prototype.push=hO,hL.prototype.has=hD,tD(hM,"arraySome"),tD(hj,"cacheHas"),tD(hF,"equalArrays");var hG=mX.Uint8Array;function hz(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}function hK(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}tD(hz,"mapToArray"),tD(hK,"setToArray");var hq=mJ?mJ.prototype:void 0,hU=hq?hq.valueOf:void 0;function hB(e,t,r,n,i,a,s){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)break;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":if(e.byteLength!=t.byteLength||!a(new hG(e),new hG(t)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return mj(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var o=hz;case"[object Set]":var l=1&n;if(o||(o=hK),e.size!=t.size&&!l)break;var u=s.get(e);if(u)return u==t;n|=2,s.set(e,t);var c=hF(o(e),o(t),n,i,a,s);return s.delete(e),c;case"[object Symbol]":if(hU)return hU.call(e)==hU.call(t)}return!1}function hW(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}tD(hB,"equalByTag"),tD(hW,"arrayPush");var hV=Array.isArray;function hH(e,t,r){var n=t(e);return hV(e)?n:hW(n,r(e))}function hY(e,t){for(var r=-1,n=null==e?0:e.length,i=0,a=[];++r<n;){var s=e[r];t(s,r,e)&&(a[i++]=s)}return a}function hQ(){return[]}tD(hH,"baseGetAllKeys"),tD(hY,"arrayFilter"),tD(hQ,"stubArray");var hZ=Object.prototype.propertyIsEnumerable,hX=Object.getOwnPropertySymbols,hJ=hX?function(e){return null==e?[]:hY(hX(e=Object(e)),function(t){return hZ.call(e,t)})}:hQ;function h0(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function h1(e){return null!=e&&"object"==typeof e}function h2(e){return h1(e)&&"[object Arguments]"==m7(e)}tD(h0,"baseTimes"),tD(h1,"isObjectLike"),tD(h2,"baseIsArguments");var h3=Object.prototype,h4=h3.hasOwnProperty,h5=h3.propertyIsEnumerable,h9=h2(function(){return arguments}())?h2:function(e){return h1(e)&&h4.call(e,"callee")&&!h5.call(e,"callee")};function h6(){return!1}tD(h6,"stubFalse");var h7="object"==typeof exports&&exports&&!exports.nodeType&&exports,h8=h7&&"object"==typeof module&&module&&!module.nodeType&&module,ye=h8&&h8.exports===h7?mX.Buffer:void 0,yt=(ye?ye.isBuffer:void 0)||h6,yr=/^(?:0|[1-9]\d*)$/;function yn(e,t){var r=typeof e;return!!(t=null==t?0x1fffffffffffff:t)&&("number"==r||"symbol"!=r&&yr.test(e))&&e>-1&&e%1==0&&e<t}function yi(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=0x1fffffffffffff}tD(yn,"isIndex"),tD(yi,"isLength");var ya={};function ys(e){return h1(e)&&yi(e.length)&&!!ya[m7(e)]}function yo(e){return function(t){return e(t)}}ya["[object Float32Array]"]=ya["[object Float64Array]"]=ya["[object Int8Array]"]=ya["[object Int16Array]"]=ya["[object Int32Array]"]=ya["[object Uint8Array]"]=ya["[object Uint8ClampedArray]"]=ya["[object Uint16Array]"]=ya["[object Uint32Array]"]=!0,ya["[object Arguments]"]=ya["[object Array]"]=ya["[object ArrayBuffer]"]=ya["[object Boolean]"]=ya["[object DataView]"]=ya["[object Date]"]=ya["[object Error]"]=ya["[object Function]"]=ya["[object Map]"]=ya["[object Number]"]=ya["[object Object]"]=ya["[object RegExp]"]=ya["[object Set]"]=ya["[object String]"]=ya["[object WeakMap]"]=!1,tD(ys,"baseIsTypedArray"),tD(yo,"baseUnary");var yl="object"==typeof exports&&exports&&!exports.nodeType&&exports,yu=yl&&"object"==typeof module&&module&&!module.nodeType&&module,yc=yu&&yu.exports===yl&&mQ.process,yp=function(){try{var e=yu&&yu.require&&yu.require("util").types;if(e)return e;return yc&&yc.binding&&yc.binding("util")}catch(e){}}(),yf=yp&&yp.isTypedArray,yd=yf?yo(yf):ys,ym=Object.prototype.hasOwnProperty;function yh(e,t){var r=hV(e),n=!r&&h9(e),i=!r&&!n&&yt(e),a=!r&&!n&&!i&&yd(e),s=r||n||i||a,o=s?h0(e.length,String):[],l=o.length;for(var u in e)(t||ym.call(e,u))&&!(s&&("length"==u||i&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||yn(u,l)))&&o.push(u);return o}tD(yh,"arrayLikeKeys");var yy=Object.prototype;function yg(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||yy)}function yT(e,t){return function(r){return e(t(r))}}tD(yg,"isPrototype"),tD(yT,"overArg");var yv=yT(Object.keys,Object),y$=Object.prototype.hasOwnProperty;function yR(e){if(!yg(e))return yv(e);var t=[];for(var r in Object(e))y$.call(e,r)&&"constructor"!=r&&t.push(r);return t}function yE(e){return null!=e&&yi(e.length)&&!he(e)}function yb(e){return yE(e)?yh(e):yR(e)}function yA(e){return hH(e,yb,hJ)}tD(yR,"baseKeys"),tD(yE,"isArrayLike"),tD(yb,"keys"),tD(yA,"getAllKeys");var yC=Object.prototype.hasOwnProperty;function yS(e,t,r,n,i,a){var s=1&r,o=yA(e),l=o.length;if(l!=yA(t).length&&!s)return!1;for(var u=l;u--;){var c=o[u];if(!(s?c in t:yC.call(t,c)))return!1}var p=a.get(e),f=a.get(t);if(p&&f)return p==t&&f==e;var d=!0;a.set(e,t),a.set(t,e);for(var m=s;++u<l;){var h=e[c=o[u]],y=t[c];if(n)var g=s?n(y,h,c,t,e,a):n(h,y,c,e,t,a);if(!(void 0===g?h===y||i(h,y,r,n,a):g)){d=!1;break}m||(m="constructor"==c)}if(d&&!m){var T=e.constructor,v=t.constructor;T!=v&&"constructor"in e&&"constructor"in t&&!("function"==typeof T&&T instanceof T&&"function"==typeof v&&v instanceof v)&&(d=!1)}return a.delete(e),a.delete(t),d}tD(yS,"equalObjects");var yk=hd(mX,"DataView"),yx=hd(mX,"Promise"),yN=hd(mX,"Set"),yw=hd(mX,"WeakMap"),yI="[object Map]",y_="[object Promise]",yP="[object Set]",yO="[object WeakMap]",yD="[object DataView]",yL=ha(yk),yM=ha(hm),yj=ha(yx),yF=ha(yN),yG=ha(yw),yz=m7;(yk&&yz(new yk(new ArrayBuffer(1)))!=yD||hm&&yz(new hm)!=yI||yx&&yz(yx.resolve())!=y_||yN&&yz(new yN)!=yP||yw&&yz(new yw)!=yO)&&(yz=tD(function(e){var t=m7(e),r="[object Object]"==t?e.constructor:void 0,n=r?ha(r):"";if(n)switch(n){case yL:return yD;case yM:return yI;case yj:return y_;case yF:return yP;case yG:return yO}return t},"getTag"));var yK=yz,yq="[object Arguments]",yU="[object Array]",yB="[object Object]",yW=Object.prototype.hasOwnProperty;function yV(e,t,r,n,i,a){var s=hV(e),o=hV(t),l=s?yU:yK(e),u=o?yU:yK(t);l=l==yq?yB:l,u=u==yq?yB:u;var c=l==yB,p=u==yB,f=l==u;if(f&&yt(e)){if(!yt(t))return!1;s=!0,c=!1}if(f&&!c)return a||(a=new hP),s||yd(e)?hF(e,t,r,n,i,a):hB(e,t,l,r,n,i,a);if(!(1&r)){var d=c&&yW.call(e,"__wrapped__"),m=p&&yW.call(t,"__wrapped__");if(d||m){var h=d?e.value():e,y=m?t.value():t;return a||(a=new hP),i(h,y,r,n,a)}}return!!f&&(a||(a=new hP),yS(e,t,r,n,i,a))}function yH(e,t,r,n,i){return e===t||(null!=e&&null!=t&&(h1(e)||h1(t))?yV(e,t,r,n,yH,i):e!=e&&t!=t)}function yY(e,t,r,n){var i=r.length,a=i,s=!n;if(null==e)return!a;for(e=Object(e);i--;){var o=r[i];if(s&&o[2]?o[1]!==e[o[0]]:!(o[0]in e))return!1}for(;++i<a;){var l=(o=r[i])[0],u=e[l],c=o[1];if(s&&o[2]){if(void 0===u&&!(l in e))return!1}else{var p=new hP;if(n)var f=n(u,c,l,e,t,p);if(!(void 0===f?yH(c,u,3,n,p):f))return!1}}return!0}function yQ(e){return e==e&&!m8(e)}function yZ(e){for(var t=yb(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,yQ(i)]}return t}function yX(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}}function yJ(e){var t=yZ(e);return 1==t.length&&t[0][2]?yX(t[0][0],t[0][1]):function(r){return r===e||yY(r,e,t)}}function y0(e){return"symbol"==typeof e||h1(e)&&"[object Symbol]"==m7(e)}tD(yV,"baseIsEqualDeep"),tD(yH,"baseIsEqual"),tD(yY,"baseIsMatch"),tD(yQ,"isStrictComparable"),tD(yZ,"getMatchData"),tD(yX,"matchesStrictComparable"),tD(yJ,"baseMatches"),tD(y0,"isSymbol");var y1=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,y2=/^\w*$/;function y3(e,t){if(hV(e))return!1;var r=typeof e;return!!("number"==r||"symbol"==r||"boolean"==r||null==e||y0(e))||y2.test(e)||!y1.test(e)||null!=t&&e in Object(t)}function y4(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError("Expected a function");var r=tD(function(){var n=arguments,i=t?t.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=e.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(y4.Cache||hI),r}function y5(e){var t=y4(e,function(e){return 500===r.size&&r.clear(),e}),r=t.cache;return t}tD(y3,"isKey"),tD(y4,"memoize"),y4.Cache=hI,tD(y5,"memoizeCapped");var y9=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,y6=/\\(\\)?/g,y7=y5(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(y9,function(e,r,n,i){t.push(n?i.replace(y6,"$1"):r||e)}),t}),y8=1/0,ge=mJ?mJ.prototype:void 0,gt=ge?ge.toString:void 0;function gr(e){if("string"==typeof e)return e;if(hV(e))return mL(e,gr)+"";if(y0(e))return gt?gt.call(e):"";var t=e+"";return"0"==t&&1/e==-y8?"-0":t}function gn(e){return null==e?"":gr(e)}function gi(e,t){return hV(e)?e:y3(e,t)?[e]:y7(gn(e))}tD(gr,"baseToString"),tD(gn,"toString"),tD(gi,"castPath");var ga=1/0;function gs(e){if("string"==typeof e||y0(e))return e;var t=e+"";return"0"==t&&1/e==-ga?"-0":t}function go(e,t){t=gi(t,e);for(var r=0,n=t.length;null!=e&&r<n;)e=e[gs(t[r++])];return r&&r==n?e:void 0}function gl(e,t,r){var n=null==e?void 0:go(e,t);return void 0===n?r:n}function gu(e,t){return null!=e&&t in Object(e)}function gc(e,t,r){t=gi(t,e);for(var n=-1,i=t.length,a=!1;++n<i;){var s=gs(t[n]);if(!(a=null!=e&&r(e,s)))break;e=e[s]}return a||++n!=i?a:!!(i=null==e?0:e.length)&&yi(i)&&yn(s,i)&&(hV(e)||h9(e))}function gp(e,t){return null!=e&&gc(e,t,gu)}function gf(e,t){return y3(e)&&yQ(t)?yX(gs(e),t):function(r){var n=gl(r,e);return void 0===n&&n===t?gp(r,e):yH(t,n,3)}}function gd(e){return e}function gm(e){return function(t){return null==t?void 0:t[e]}}function gh(e){return function(t){return go(t,e)}}function gy(e){return y3(e)?gm(gs(e)):gh(e)}function gg(e){return"function"==typeof e?e:null==e?gd:"object"==typeof e?hV(e)?gf(e[0],e[1]):yJ(e):gy(e)}function gT(e){return function(t,r,n){for(var i=-1,a=Object(t),s=n(t),o=s.length;o--;){var l=s[e?o:++i];if(!1===r(a[l],l,a))break}return t}}tD(gs,"toKey"),tD(go,"baseGet"),tD(gl,"get"),tD(gu,"baseHasIn"),tD(gc,"hasPath"),tD(gp,"hasIn"),tD(gf,"baseMatchesProperty"),tD(gd,"identity"),tD(gm,"baseProperty"),tD(gh,"basePropertyDeep"),tD(gy,"property"),tD(gg,"baseIteratee"),tD(gT,"createBaseFor");var gv=gT();function g$(e,t){return e&&gv(e,t,yb)}function gR(e,t){return function(r,n){if(null==r)return r;if(!yE(r))return e(r,n);for(var i=r.length,a=t?i:-1,s=Object(r);(t?a--:++a<i)&&!1!==n(s[a],a,s););return r}}tD(g$,"baseForOwn"),tD(gR,"createBaseEach");var gE=gR(g$);function gb(e,t){var r=-1,n=yE(e)?Array(e.length):[];return gE(e,function(e,i,a){n[++r]=t(e,i,a)}),n}function gA(e,t){return(hV(e)?mL:gb)(e,gg(t,3))}function gC(e,t){var r=[];return gE(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r}function gS(e,t){return(hV(e)?hY:gC)(e,gg(t,3))}function gk(e,t,r){return`${e.name}_${t}_${r}`}tD(gb,"baseMap"),tD(gA,"map"),tD(gC,"baseFilter"),tD(gS,"filter"),tD(gk,"buildATNKey");var gx=class{static{tD(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},gN=class extends gx{static{tD(this,"AtomTransition")}constructor(e,t){super(e),this.tokenType=t}},gw=class extends gx{static{tD(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},gI=class extends gx{static{tD(this,"RuleTransition")}constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}};function g_(e){let t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};gP(t,e);let r=e.length;for(let n=0;n<r;n++){let r=e[n],i=gz(t,r,r);void 0!==i&&gZ(t,r,i)}return t}function gP(e,t){let r=t.length;for(let n=0;n<r;n++){let r=t[n],i=gJ(e,r,void 0,{type:2}),a=gJ(e,r,void 0,{type:7});i.stop=a,e.ruleToStartState.set(r,i),e.ruleToStopState.set(r,a)}}function gO(e,t,r){if(r instanceof pv)return gY(e,t,r.terminalType,r);if(r instanceof pc)return gQ(e,t,r);if(r instanceof pT)return gF(e,t,r);if(r instanceof pd)return gG(e,t,r);if(r instanceof py)return gD(e,t,r);else if(r instanceof pg)return gL(e,t,r);else if(r instanceof pm)return gM(e,t,r);else if(r instanceof ph)return gj(e,t,r);else return gz(e,t,r)}function gD(e,t,r){let n=gJ(e,t,r,{type:5});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r));return gq(e,t,r,i)}function gL(e,t,r){let n=gJ(e,t,r,{type:5});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r)),a=gY(e,t,r.separator,r);return gq(e,t,r,i,a)}function gM(e,t,r){let n=gJ(e,t,r,{type:4});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r));return gK(e,t,r,i)}function gj(e,t,r){let n=gJ(e,t,r,{type:4});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r)),a=gY(e,t,r.separator,r);return gK(e,t,r,i,a)}function gF(e,t,r){let n=gJ(e,t,r,{type:1});gB(e,n);let i=gA(r.definition,r=>gO(e,t,r));return gW(e,t,n,r,...i)}function gG(e,t,r){let n=gJ(e,t,r,{type:1});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r));return gU(e,t,r,i)}function gz(e,t,r){let n=gS(gA(r.definition,r=>gO(e,t,r)),e=>void 0!==e);return 1===n.length?n[0]:0===n.length?void 0:gH(e,n)}function gK(e,t,r,n,i){let a=n.left,s=n.right,o=gJ(e,t,r,{type:11});gB(e,o);let l=gJ(e,t,r,{type:12});return a.loopback=o,l.loopback=o,e.decisionMap[gk(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=o,gX(s,o),void 0===i?(gX(o,a),gX(o,l)):(gX(o,l),gX(o,i.left),gX(i.right,a)),{left:a,right:l}}function gq(e,t,r,n,i){let a=n.left,s=n.right,o=gJ(e,t,r,{type:10});gB(e,o);let l=gJ(e,t,r,{type:12}),u=gJ(e,t,r,{type:9});return o.loopback=u,l.loopback=u,gX(o,a),gX(o,l),gX(s,u),void 0!==i?(gX(u,l),gX(u,i.left),gX(i.right,a)):gX(u,o),e.decisionMap[gk(t,i?"RepetitionWithSeparator":"Repetition",r.idx)]=o,{left:o,right:l}}function gU(e,t,r,n){let i=n.left;return gX(i,n.right),e.decisionMap[gk(t,"Option",r.idx)]=i,n}function gB(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function gW(e,t,r,n,...i){let a=gJ(e,t,n,{type:8,start:r});for(let e of(r.end=a,i))void 0!==e?(gX(r,e.left),gX(e.right,a)):gX(r,a);return e.decisionMap[gk(t,gV(n),n.idx)]=r,{left:r,right:a}}function gV(e){if(e instanceof pT)return"Alternation";if(e instanceof pd)return"Option";if(e instanceof py)return"Repetition";if(e instanceof pg)return"RepetitionWithSeparator";if(e instanceof pm)return"RepetitionMandatory";else if(e instanceof ph)return"RepetitionMandatoryWithSeparator";else throw Error("Invalid production type encountered")}function gH(e,t){let r=t.length;for(let n=0;n<r-1;n++){let r,i=t[n];1===i.left.transitions.length&&(r=i.left.transitions[0]);let a=r instanceof gI,s=r,o=t[n+1].left;1===i.left.type&&1===i.right.type&&void 0!==r&&(a&&s.followState===i.right||r.target===i.right)?(a?s.followState=o:r.target=o,g1(e,i.right)):gX(i.right,o)}let n=t[0],i=t[r-1];return{left:n.left,right:i.right}}function gY(e,t,r,n){let i=gJ(e,t,n,{type:1}),a=gJ(e,t,n,{type:1});return g0(i,new gN(a,r)),{left:i,right:a}}function gQ(e,t,r){let n=r.referencedRule,i=e.ruleToStartState.get(n),a=gJ(e,t,r,{type:1}),s=gJ(e,t,r,{type:1});return g0(a,new gI(i,n,s)),{left:a,right:s}}function gZ(e,t,r){let n=e.ruleToStartState.get(t);gX(n,r.left);let i=e.ruleToStopState.get(t);return gX(r.right,i),{left:n,right:i}}function gX(e,t){g0(e,new gw(t))}function gJ(e,t,r,n){let i=Object.assign({atn:e,production:r,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},n);return e.states.push(i),i}function g0(e,t){0===e.transitions.length&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}function g1(e,t){e.states.splice(e.states.indexOf(t),1)}tD(g_,"createATN"),tD(gP,"createRuleStartAndStopATNStates"),tD(gO,"atom"),tD(gD,"repetition"),tD(gL,"repetitionSep"),tD(gM,"repetitionMandatory"),tD(gj,"repetitionMandatorySep"),tD(gF,"alternation"),tD(gG,"option"),tD(gz,"block"),tD(gK,"plus"),tD(gq,"star"),tD(gU,"optional"),tD(gB,"defineDecisionState"),tD(gW,"makeAlts"),tD(gV,"getProdType"),tD(gH,"makeBlock"),tD(gY,"tokenRef"),tD(gQ,"ruleRef"),tD(gZ,"buildRuleHandle"),tD(gX,"epsilon"),tD(gJ,"newState"),tD(g0,"addTransition"),tD(g1,"removeState");var g2={},g3=class{static{tD(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let t=g4(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return gA(this.configs,e=>e.alt)}get key(){let e="";for(let t in this.map)e+=t+":";return e}};function g4(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(e=>e.stateNumber.toString()).join("_")}`}function g5(e,t,r){for(var n=-1,i=e.length;++n<i;){var a=e[n],s=t(a);if(null!=s&&(void 0===o?s==s&&!y0(s):r(s,o)))var o=s,l=a}return l}function g9(e,t){return e<t}function g6(e){return e&&e.length?g5(e,gd,g9):void 0}tD(g4,"getATNConfigKey"),tD(g5,"baseExtremum"),tD(g9,"baseLt"),tD(g6,"min");var g7=mJ?mJ.isConcatSpreadable:void 0;function g8(e){return hV(e)||h9(e)||!!(g7&&e&&e[g7])}function Te(e,t,r,n,i){var a=-1,s=e.length;for(r||(r=g8),i||(i=[]);++a<s;){var o=e[a];t>0&&r(o)?t>1?Te(o,t-1,r,n,i):hW(i,o):n||(i[i.length]=o)}return i}function Tt(e,t){return Te(gA(e,t),1)}function Tr(e,t,r,n){for(var i=e.length,a=r+(n?1:-1);n?a--:++a<i;)if(t(e[a],a,e))return a;return -1}function Tn(e){return e!=e}function Ti(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return -1}function Ta(e,t,r){return t==t?Ti(e,t,r):Tr(e,Tn,r)}function Ts(e,t){return!!(null==e?0:e.length)&&Ta(e,t,0)>-1}function To(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}function Tl(){}tD(g8,"isFlattenable"),tD(Te,"baseFlatten"),tD(Tt,"flatMap"),tD(Tr,"baseFindIndex"),tD(Tn,"baseIsNaN"),tD(Ti,"strictIndexOf"),tD(Ta,"baseIndexOf"),tD(Ts,"arrayIncludes"),tD(To,"arrayIncludesWith"),tD(Tl,"noop");var Tu=yN&&1/hK(new yN([,-0]))[1]==1/0?function(e){return new yN(e)}:Tl;function Tc(e,t,r){var n=-1,i=Ts,a=e.length,s=!0,o=[],l=o;if(r)s=!1,i=To;else if(a>=200){var u=t?null:Tu(e);if(u)return hK(u);s=!1,i=hj,l=new hL}else l=t?[]:o;t:for(;++n<a;){var c=e[n],p=t?t(c):c;if(c=r||0!==c?c:0,s&&p==p){for(var f=l.length;f--;)if(l[f]===p)continue t;t&&l.push(p),o.push(c)}else i(l,p,r)||(l!==o&&l.push(p),o.push(c))}return o}function Tp(e,t){return e&&e.length?Tc(e,gg(t,2)):[]}function Tf(e){return(null==e?0:e.length)?Te(e,1):[]}function Td(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}function Tm(e){return"function"==typeof e?e:gd}function Th(e,t){return(hV(e)?Td:gE)(e,Tm(t))}tD(Tc,"baseUniq"),tD(Tp,"uniqBy"),tD(Tf,"flatten"),tD(Td,"arrayEach"),tD(Tm,"castFunction"),tD(Th,"forEach");var Ty=Object.prototype.hasOwnProperty;function Tg(e){if(null==e)return!0;if(yE(e)&&(hV(e)||"string"==typeof e||"function"==typeof e.splice||yt(e)||yd(e)||h9(e)))return!e.length;var t=yK(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(yg(e))return!yR(e).length;for(var r in e)if(Ty.call(e,r))return!1;return!0}function TT(e,t,r,n){var i=-1,a=null==e?0:e.length;for(n&&a&&(r=e[++i]);++i<a;)r=t(r,e[i],i,e);return r}function Tv(e,t,r,n,i){return i(e,function(e,i,a){r=n?(n=!1,e):t(r,e,i,a)}),r}function T$(e,t,r){var n=hV(e)?TT:Tv,i=arguments.length<3;return n(e,gg(t,4),r,i,gE)}function TR(e,t){let r={};return n=>{let i=n.toString(),a=r[i];return void 0!==a||(a={atnStartState:e,decision:t,states:{}},r[i]=a),a}}tD(Tg,"isEmpty"),tD(TT,"arrayReduce"),tD(Tv,"baseReduce"),tD(T$,"reduce"),tD(TR,"createDFACache");var TE=class{static{tD(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="",t=this.predicates.length;for(let r=0;r<t;r++)e+=!0===this.predicates[r]?"1":"0";return e}},Tb=new TE,TA=class extends d8{static{tD(this,"LLStarLookaheadStrategy")}constructor(e){var t;super(),this.logging=null!=(t=null==e?void 0:e.logging)?t:e=>console.log(e)}initialize(e){this.atn=g_(e.rules),this.dfas=TS(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:t,rule:r,hasPredicates:n,dynamicTokensEnabled:i}=e,a=this.dfas,s=this.logging,o=gk(r,"Alternation",t),l=this.atn.decisionMap[o].decision,u=gA(du({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),e=>gA(e,e=>e[0]));if(TC(u,!1)&&!i){let e=T$(u,(e,t,r)=>(Th(t,t=>{t&&(e[t.tokenTypeIdx]=r,Th(t.categoryMatches,t=>{e[t]=r}))}),e),{});return n?function(t){var r;let n=e[this.LA(1).tokenTypeIdx];if(void 0!==t&&void 0!==n){let e=null==(r=t[n])?void 0:r.GATE;if(void 0!==e&&!1===e.call(this))return}return n}:function(){return e[this.LA(1).tokenTypeIdx]}}return n?function(e){let t=new TE,r=void 0===e?0:e.length;for(let n=0;n<r;n++){let r=null==e?void 0:e[n].GATE;t.set(n,void 0===r||r.call(this))}let n=Tk.call(this,a,l,t,s);return"number"==typeof n?n:void 0}:function(){let e=Tk.call(this,a,l,Tb,s);return"number"==typeof e?e:void 0}}buildLookaheadForOptional(e){let{prodOccurrence:t,rule:r,prodType:n,dynamicTokensEnabled:i}=e,a=this.dfas,s=this.logging,o=gk(r,n,t),l=this.atn.decisionMap[o].decision,u=gA(du({maxLookahead:1,occurrence:t,prodType:n,rule:r}),e=>gA(e,e=>e[0]));if(TC(u)&&u[0][0]&&!i){let e=Tf(u[0]);if(1===e.length&&Tg(e[0].categoryMatches)){let t=e[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===t}}{let t=T$(e,(e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,Th(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){return!0===t[this.LA(1).tokenTypeIdx]}}}return function(){let e=Tk.call(this,a,l,Tb,s);return"object"!=typeof e&&0===e}}};function TC(e,t=!0){let r=new Set;for(let n of e){let e=new Set;for(let i of n){if(void 0===i)if(!t)return!1;else break;for(let t of[i.tokenTypeIdx].concat(i.categoryMatches))if(r.has(t)){if(!e.has(t))return!1}else r.add(t),e.add(t)}}return!0}function TS(e){let t=e.decisionStates.length,r=Array(t);for(let n=0;n<t;n++)r[n]=TR(e.decisionStates[n],n);return r}function Tk(e,t,r,n){let i=e[t](r),a=i.start;if(void 0===a){let e=Tz(i.atnStartState);a=TG(i,Tj(e)),i.start=a}return Tx.apply(this,[i,a,r,n])}function Tx(e,t,r,n){let i=t,a=1,s=[],o=this.LA(a++);for(;;){let t=TO(i,o);if(void 0===t&&(t=TN.apply(this,[e,i,o,a,r,n])),t===g2)return TP(s,i,o);if(!0===t.isAcceptState)return t.prediction;i=t,s.push(o),o=this.LA(a++)}}function TN(e,t,r,n,i,a){let s=TD(t.configs,r,i);if(0===s.size)return TF(e,t,r,g2),g2;let o=Tj(s),l=TM(s,i);if(void 0!==l)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(TW(s)){let t=g6(s.alts);o.isAcceptState=!0,o.prediction=t,o.configs.uniqueAlt=t,Tw.apply(this,[e,n,s.alts,a])}return TF(e,t,r,o)}function Tw(e,t,r,n){let i=[];for(let e=1;e<=t;e++)i.push(this.LA(e).tokenType);let a=e.atnStartState;n(TI({topLevelRule:a.rule,ambiguityIndices:r,production:a.production,prefixPath:i}))}function TI(e){let t=gA(e.prefixPath,e=>fz(e)).join(", "),r=0===e.production.idx?"":e.production.idx,n=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${T_(e.production)}${r}> inside <${e.topLevelRule.name}> Rule, + ${t.join("\n-------------------------------\n")}`)})}constructor(e,t){if(this.definitionErrors=[],this.selfAnalysisDone=!1,this.initErrorHandler(t),this.initLexerAdapter(),this.initLooksAhead(t),this.initRecognizerEngine(e,t),this.initRecoverable(t),this.initTreeBuilder(t),this.initContentAssist(),this.initGastRecorder(t),this.initPerformanceTracer(t),cz(t,"ignoredIssues"))throw Error("The <ignoredIssues> IParserConfig property has been deprecated.\n Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n For further details.");this.skipValidations=cz(t,"skipValidations")?t.skipValidations:mI.skipValidations}};mO.DEFER_DEFINITION_ERRORS_HANDLING=!1,mN(mO,[d5,me,md,mm,my,mh,mg,mT,mb,mx]);var mD=class extends mO{static{tD(this,"EmbeddedActionsParser")}constructor(e,t=mI){let r=uO(t);r.outputCst=!1,super(e,r)}};function mL(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}function mM(){this.__data__=[],this.size=0}function mj(e,t){return e===t||e!=e&&t!=t}function mF(e,t){for(var r=e.length;r--;)if(mj(e[r][0],t))return r;return -1}tD(mL,"arrayMap"),tD(mM,"listCacheClear"),tD(mj,"eq"),tD(mF,"assocIndexOf");var mG=Array.prototype.splice;function mz(e){var t=this.__data__,r=mF(t,e);return!(r<0)&&(r==t.length-1?t.pop():mG.call(t,r,1),--this.size,!0)}function mK(e){var t=this.__data__,r=mF(t,e);return r<0?void 0:t[r][1]}function mq(e){return mF(this.__data__,e)>-1}function mU(e,t){var r=this.__data__,n=mF(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function mB(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function mW(){this.__data__=new mB,this.size=0}function mV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function mH(e){return this.__data__.get(e)}function mY(e){return this.__data__.has(e)}tD(mz,"listCacheDelete"),tD(mK,"listCacheGet"),tD(mq,"listCacheHas"),tD(mU,"listCacheSet"),tD(mB,"ListCache"),mB.prototype.clear=mM,mB.prototype.delete=mz,mB.prototype.get=mK,mB.prototype.has=mq,mB.prototype.set=mU,tD(mW,"stackClear"),tD(mV,"stackDelete"),tD(mH,"stackGet"),tD(mY,"stackHas");var mQ="object"==typeof global&&global&&global.Object===Object&&global,mZ="object"==typeof self&&self&&self.Object===Object&&self,mX=mQ||mZ||Function("return this")(),mJ=mX.Symbol,m0=Object.prototype,m1=m0.hasOwnProperty,m2=m0.toString,m3=mJ?mJ.toStringTag:void 0;function m4(e){var t=m1.call(e,m3),r=e[m3];try{e[m3]=void 0;var n=!0}catch(e){}var i=m2.call(e);return n&&(t?e[m3]=r:delete e[m3]),i}tD(m4,"getRawTag");var m9=Object.prototype.toString;function m5(e){return m9.call(e)}tD(m5,"objectToString");var m6=mJ?mJ.toStringTag:void 0;function m7(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":m6&&m6 in Object(e)?m4(e):m5(e)}function m8(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function he(e){if(!m8(e))return!1;var t=m7(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}tD(m7,"baseGetTag"),tD(m8,"isObject"),tD(he,"isFunction");var ht=mX["__core-js_shared__"],hr=(p=/[^.]+$/.exec(ht&&ht.keys&&ht.keys.IE_PROTO||""))?"Symbol(src)_1."+p:"";function hn(e){return!!hr&&hr in e}tD(hn,"isMasked");var hi=Function.prototype.toString;function ha(e){if(null!=e){try{return hi.call(e)}catch(e){}try{return e+""}catch(e){}}return""}tD(ha,"toSource");var hs=/^\[object .+?Constructor\]$/,ho=Object.prototype,hl=Function.prototype.toString,hu=ho.hasOwnProperty,hc=RegExp("^"+hl.call(hu).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function hp(e){return!(!m8(e)||hn(e))&&(he(e)?hc:hs).test(ha(e))}function hf(e,t){return null==e?void 0:e[t]}function hd(e,t){var r=hf(e,t);return hp(r)?r:void 0}tD(hp,"baseIsNative"),tD(hf,"getValue"),tD(hd,"getNative");var hm=hd(mX,"Map"),hh=hd(Object,"create");function hy(){this.__data__=hh?hh(null):{},this.size=0}function hg(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=!!t,t}tD(hy,"hashClear"),tD(hg,"hashDelete");var hT=Object.prototype.hasOwnProperty;function hv(e){var t=this.__data__;if(hh){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return hT.call(t,e)?t[e]:void 0}tD(hv,"hashGet");var h$=Object.prototype.hasOwnProperty;function hR(e){var t=this.__data__;return hh?void 0!==t[e]:h$.call(t,e)}function hE(e,t){var r=this.__data__;return this.size+=+!this.has(e),r[e]=hh&&void 0===t?"__lodash_hash_undefined__":t,this}function hb(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function hA(){this.size=0,this.__data__={hash:new hb,map:new(hm||mB),string:new hb}}function hC(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}function hS(e,t){var r=e.__data__;return hC(t)?r["string"==typeof t?"string":"hash"]:r.map}function hk(e){var t=hS(this,e).delete(e);return this.size-=!!t,t}function hx(e){return hS(this,e).get(e)}function hN(e){return hS(this,e).has(e)}function hw(e,t){var r=hS(this,e),n=r.size;return r.set(e,t),this.size+=+(r.size!=n),this}function hI(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function h_(e,t){var r=this.__data__;if(r instanceof mB){var n=r.__data__;if(!hm||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new hI(n)}return r.set(e,t),this.size=r.size,this}function hP(e){var t=this.__data__=new mB(e);this.size=t.size}function hO(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}function hD(e){return this.__data__.has(e)}function hL(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new hI;++t<r;)this.add(e[t])}function hM(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}function hj(e,t){return e.has(t)}function hF(e,t,r,n,i,a){var s=1&r,o=e.length,l=t.length;if(o!=l&&!(s&&l>o))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var p=-1,f=!0,d=2&r?new hL:void 0;for(a.set(e,t),a.set(t,e);++p<o;){var m=e[p],h=t[p];if(n)var y=s?n(h,m,p,t,e,a):n(m,h,p,e,t,a);if(void 0!==y){if(y)continue;f=!1;break}if(d){if(!hM(t,function(e,t){if(!hj(d,t)&&(m===e||i(m,e,r,n,a)))return d.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,r,n,a))){f=!1;break}}return a.delete(e),a.delete(t),f}tD(hR,"hashHas"),tD(hE,"hashSet"),tD(hb,"Hash"),hb.prototype.clear=hy,hb.prototype.delete=hg,hb.prototype.get=hv,hb.prototype.has=hR,hb.prototype.set=hE,tD(hA,"mapCacheClear"),tD(hC,"isKeyable"),tD(hS,"getMapData"),tD(hk,"mapCacheDelete"),tD(hx,"mapCacheGet"),tD(hN,"mapCacheHas"),tD(hw,"mapCacheSet"),tD(hI,"MapCache"),hI.prototype.clear=hA,hI.prototype.delete=hk,hI.prototype.get=hx,hI.prototype.has=hN,hI.prototype.set=hw,tD(h_,"stackSet"),tD(hP,"Stack"),hP.prototype.clear=mW,hP.prototype.delete=mV,hP.prototype.get=mH,hP.prototype.has=mY,hP.prototype.set=h_,tD(hO,"setCacheAdd"),tD(hD,"setCacheHas"),tD(hL,"SetCache"),hL.prototype.add=hL.prototype.push=hO,hL.prototype.has=hD,tD(hM,"arraySome"),tD(hj,"cacheHas"),tD(hF,"equalArrays");var hG=mX.Uint8Array;function hz(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}function hK(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}tD(hz,"mapToArray"),tD(hK,"setToArray");var hq=mJ?mJ.prototype:void 0,hU=hq?hq.valueOf:void 0;function hB(e,t,r,n,i,a,s){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)break;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":if(e.byteLength!=t.byteLength||!a(new hG(e),new hG(t)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return mj(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var o=hz;case"[object Set]":var l=1&n;if(o||(o=hK),e.size!=t.size&&!l)break;var u=s.get(e);if(u)return u==t;n|=2,s.set(e,t);var c=hF(o(e),o(t),n,i,a,s);return s.delete(e),c;case"[object Symbol]":if(hU)return hU.call(e)==hU.call(t)}return!1}function hW(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}tD(hB,"equalByTag"),tD(hW,"arrayPush");var hV=Array.isArray;function hH(e,t,r){var n=t(e);return hV(e)?n:hW(n,r(e))}function hY(e,t){for(var r=-1,n=null==e?0:e.length,i=0,a=[];++r<n;){var s=e[r];t(s,r,e)&&(a[i++]=s)}return a}function hQ(){return[]}tD(hH,"baseGetAllKeys"),tD(hY,"arrayFilter"),tD(hQ,"stubArray");var hZ=Object.prototype.propertyIsEnumerable,hX=Object.getOwnPropertySymbols,hJ=hX?function(e){return null==e?[]:hY(hX(e=Object(e)),function(t){return hZ.call(e,t)})}:hQ;function h0(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function h1(e){return null!=e&&"object"==typeof e}function h2(e){return h1(e)&&"[object Arguments]"==m7(e)}tD(h0,"baseTimes"),tD(h1,"isObjectLike"),tD(h2,"baseIsArguments");var h3=Object.prototype,h4=h3.hasOwnProperty,h9=h3.propertyIsEnumerable,h5=h2(function(){return arguments}())?h2:function(e){return h1(e)&&h4.call(e,"callee")&&!h9.call(e,"callee")};function h6(){return!1}tD(h6,"stubFalse");var h7="object"==typeof exports&&exports&&!exports.nodeType&&exports,h8=h7&&"object"==typeof module&&module&&!module.nodeType&&module,ye=h8&&h8.exports===h7?mX.Buffer:void 0,yt=(ye?ye.isBuffer:void 0)||h6,yr=/^(?:0|[1-9]\d*)$/;function yn(e,t){var r=typeof e;return!!(t=null==t?0x1fffffffffffff:t)&&("number"==r||"symbol"!=r&&yr.test(e))&&e>-1&&e%1==0&&e<t}function yi(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=0x1fffffffffffff}tD(yn,"isIndex"),tD(yi,"isLength");var ya={};function ys(e){return h1(e)&&yi(e.length)&&!!ya[m7(e)]}function yo(e){return function(t){return e(t)}}ya["[object Float32Array]"]=ya["[object Float64Array]"]=ya["[object Int8Array]"]=ya["[object Int16Array]"]=ya["[object Int32Array]"]=ya["[object Uint8Array]"]=ya["[object Uint8ClampedArray]"]=ya["[object Uint16Array]"]=ya["[object Uint32Array]"]=!0,ya["[object Arguments]"]=ya["[object Array]"]=ya["[object ArrayBuffer]"]=ya["[object Boolean]"]=ya["[object DataView]"]=ya["[object Date]"]=ya["[object Error]"]=ya["[object Function]"]=ya["[object Map]"]=ya["[object Number]"]=ya["[object Object]"]=ya["[object RegExp]"]=ya["[object Set]"]=ya["[object String]"]=ya["[object WeakMap]"]=!1,tD(ys,"baseIsTypedArray"),tD(yo,"baseUnary");var yl="object"==typeof exports&&exports&&!exports.nodeType&&exports,yu=yl&&"object"==typeof module&&module&&!module.nodeType&&module,yc=yu&&yu.exports===yl&&mQ.process,yp=function(){try{var e=yu&&yu.require&&yu.require("util").types;if(e)return e;return yc&&yc.binding&&yc.binding("util")}catch(e){}}(),yf=yp&&yp.isTypedArray,yd=yf?yo(yf):ys,ym=Object.prototype.hasOwnProperty;function yh(e,t){var r=hV(e),n=!r&&h5(e),i=!r&&!n&&yt(e),a=!r&&!n&&!i&&yd(e),s=r||n||i||a,o=s?h0(e.length,String):[],l=o.length;for(var u in e)(t||ym.call(e,u))&&!(s&&("length"==u||i&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||yn(u,l)))&&o.push(u);return o}tD(yh,"arrayLikeKeys");var yy=Object.prototype;function yg(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||yy)}function yT(e,t){return function(r){return e(t(r))}}tD(yg,"isPrototype"),tD(yT,"overArg");var yv=yT(Object.keys,Object),y$=Object.prototype.hasOwnProperty;function yR(e){if(!yg(e))return yv(e);var t=[];for(var r in Object(e))y$.call(e,r)&&"constructor"!=r&&t.push(r);return t}function yE(e){return null!=e&&yi(e.length)&&!he(e)}function yb(e){return yE(e)?yh(e):yR(e)}function yA(e){return hH(e,yb,hJ)}tD(yR,"baseKeys"),tD(yE,"isArrayLike"),tD(yb,"keys"),tD(yA,"getAllKeys");var yC=Object.prototype.hasOwnProperty;function yS(e,t,r,n,i,a){var s=1&r,o=yA(e),l=o.length;if(l!=yA(t).length&&!s)return!1;for(var u=l;u--;){var c=o[u];if(!(s?c in t:yC.call(t,c)))return!1}var p=a.get(e),f=a.get(t);if(p&&f)return p==t&&f==e;var d=!0;a.set(e,t),a.set(t,e);for(var m=s;++u<l;){var h=e[c=o[u]],y=t[c];if(n)var g=s?n(y,h,c,t,e,a):n(h,y,c,e,t,a);if(!(void 0===g?h===y||i(h,y,r,n,a):g)){d=!1;break}m||(m="constructor"==c)}if(d&&!m){var T=e.constructor,v=t.constructor;T!=v&&"constructor"in e&&"constructor"in t&&!("function"==typeof T&&T instanceof T&&"function"==typeof v&&v instanceof v)&&(d=!1)}return a.delete(e),a.delete(t),d}tD(yS,"equalObjects");var yk=hd(mX,"DataView"),yx=hd(mX,"Promise"),yN=hd(mX,"Set"),yw=hd(mX,"WeakMap"),yI="[object Map]",y_="[object Promise]",yP="[object Set]",yO="[object WeakMap]",yD="[object DataView]",yL=ha(yk),yM=ha(hm),yj=ha(yx),yF=ha(yN),yG=ha(yw),yz=m7;(yk&&yz(new yk(new ArrayBuffer(1)))!=yD||hm&&yz(new hm)!=yI||yx&&yz(yx.resolve())!=y_||yN&&yz(new yN)!=yP||yw&&yz(new yw)!=yO)&&(yz=tD(function(e){var t=m7(e),r="[object Object]"==t?e.constructor:void 0,n=r?ha(r):"";if(n)switch(n){case yL:return yD;case yM:return yI;case yj:return y_;case yF:return yP;case yG:return yO}return t},"getTag"));var yK=yz,yq="[object Arguments]",yU="[object Array]",yB="[object Object]",yW=Object.prototype.hasOwnProperty;function yV(e,t,r,n,i,a){var s=hV(e),o=hV(t),l=s?yU:yK(e),u=o?yU:yK(t);l=l==yq?yB:l,u=u==yq?yB:u;var c=l==yB,p=u==yB,f=l==u;if(f&&yt(e)){if(!yt(t))return!1;s=!0,c=!1}if(f&&!c)return a||(a=new hP),s||yd(e)?hF(e,t,r,n,i,a):hB(e,t,l,r,n,i,a);if(!(1&r)){var d=c&&yW.call(e,"__wrapped__"),m=p&&yW.call(t,"__wrapped__");if(d||m){var h=d?e.value():e,y=m?t.value():t;return a||(a=new hP),i(h,y,r,n,a)}}return!!f&&(a||(a=new hP),yS(e,t,r,n,i,a))}function yH(e,t,r,n,i){return e===t||(null!=e&&null!=t&&(h1(e)||h1(t))?yV(e,t,r,n,yH,i):e!=e&&t!=t)}function yY(e,t,r,n){var i=r.length,a=i,s=!n;if(null==e)return!a;for(e=Object(e);i--;){var o=r[i];if(s&&o[2]?o[1]!==e[o[0]]:!(o[0]in e))return!1}for(;++i<a;){var l=(o=r[i])[0],u=e[l],c=o[1];if(s&&o[2]){if(void 0===u&&!(l in e))return!1}else{var p=new hP;if(n)var f=n(u,c,l,e,t,p);if(!(void 0===f?yH(c,u,3,n,p):f))return!1}}return!0}function yQ(e){return e==e&&!m8(e)}function yZ(e){for(var t=yb(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,yQ(i)]}return t}function yX(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}}function yJ(e){var t=yZ(e);return 1==t.length&&t[0][2]?yX(t[0][0],t[0][1]):function(r){return r===e||yY(r,e,t)}}function y0(e){return"symbol"==typeof e||h1(e)&&"[object Symbol]"==m7(e)}tD(yV,"baseIsEqualDeep"),tD(yH,"baseIsEqual"),tD(yY,"baseIsMatch"),tD(yQ,"isStrictComparable"),tD(yZ,"getMatchData"),tD(yX,"matchesStrictComparable"),tD(yJ,"baseMatches"),tD(y0,"isSymbol");var y1=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,y2=/^\w*$/;function y3(e,t){if(hV(e))return!1;var r=typeof e;return!!("number"==r||"symbol"==r||"boolean"==r||null==e||y0(e))||y2.test(e)||!y1.test(e)||null!=t&&e in Object(t)}function y4(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError("Expected a function");var r=tD(function(){var n=arguments,i=t?t.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=e.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(y4.Cache||hI),r}function y9(e){var t=y4(e,function(e){return 500===r.size&&r.clear(),e}),r=t.cache;return t}tD(y3,"isKey"),tD(y4,"memoize"),y4.Cache=hI,tD(y9,"memoizeCapped");var y5=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,y6=/\\(\\)?/g,y7=y9(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(y5,function(e,r,n,i){t.push(n?i.replace(y6,"$1"):r||e)}),t}),y8=1/0,ge=mJ?mJ.prototype:void 0,gt=ge?ge.toString:void 0;function gr(e){if("string"==typeof e)return e;if(hV(e))return mL(e,gr)+"";if(y0(e))return gt?gt.call(e):"";var t=e+"";return"0"==t&&1/e==-y8?"-0":t}function gn(e){return null==e?"":gr(e)}function gi(e,t){return hV(e)?e:y3(e,t)?[e]:y7(gn(e))}tD(gr,"baseToString"),tD(gn,"toString"),tD(gi,"castPath");var ga=1/0;function gs(e){if("string"==typeof e||y0(e))return e;var t=e+"";return"0"==t&&1/e==-ga?"-0":t}function go(e,t){t=gi(t,e);for(var r=0,n=t.length;null!=e&&r<n;)e=e[gs(t[r++])];return r&&r==n?e:void 0}function gl(e,t,r){var n=null==e?void 0:go(e,t);return void 0===n?r:n}function gu(e,t){return null!=e&&t in Object(e)}function gc(e,t,r){t=gi(t,e);for(var n=-1,i=t.length,a=!1;++n<i;){var s=gs(t[n]);if(!(a=null!=e&&r(e,s)))break;e=e[s]}return a||++n!=i?a:!!(i=null==e?0:e.length)&&yi(i)&&yn(s,i)&&(hV(e)||h5(e))}function gp(e,t){return null!=e&&gc(e,t,gu)}function gf(e,t){return y3(e)&&yQ(t)?yX(gs(e),t):function(r){var n=gl(r,e);return void 0===n&&n===t?gp(r,e):yH(t,n,3)}}function gd(e){return e}function gm(e){return function(t){return null==t?void 0:t[e]}}function gh(e){return function(t){return go(t,e)}}function gy(e){return y3(e)?gm(gs(e)):gh(e)}function gg(e){return"function"==typeof e?e:null==e?gd:"object"==typeof e?hV(e)?gf(e[0],e[1]):yJ(e):gy(e)}function gT(e){return function(t,r,n){for(var i=-1,a=Object(t),s=n(t),o=s.length;o--;){var l=s[e?o:++i];if(!1===r(a[l],l,a))break}return t}}tD(gs,"toKey"),tD(go,"baseGet"),tD(gl,"get"),tD(gu,"baseHasIn"),tD(gc,"hasPath"),tD(gp,"hasIn"),tD(gf,"baseMatchesProperty"),tD(gd,"identity"),tD(gm,"baseProperty"),tD(gh,"basePropertyDeep"),tD(gy,"property"),tD(gg,"baseIteratee"),tD(gT,"createBaseFor");var gv=gT();function g$(e,t){return e&&gv(e,t,yb)}function gR(e,t){return function(r,n){if(null==r)return r;if(!yE(r))return e(r,n);for(var i=r.length,a=t?i:-1,s=Object(r);(t?a--:++a<i)&&!1!==n(s[a],a,s););return r}}tD(g$,"baseForOwn"),tD(gR,"createBaseEach");var gE=gR(g$);function gb(e,t){var r=-1,n=yE(e)?Array(e.length):[];return gE(e,function(e,i,a){n[++r]=t(e,i,a)}),n}function gA(e,t){return(hV(e)?mL:gb)(e,gg(t,3))}function gC(e,t){var r=[];return gE(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r}function gS(e,t){return(hV(e)?hY:gC)(e,gg(t,3))}function gk(e,t,r){return`${e.name}_${t}_${r}`}tD(gb,"baseMap"),tD(gA,"map"),tD(gC,"baseFilter"),tD(gS,"filter"),tD(gk,"buildATNKey");var gx=class{static{tD(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},gN=class extends gx{static{tD(this,"AtomTransition")}constructor(e,t){super(e),this.tokenType=t}},gw=class extends gx{static{tD(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},gI=class extends gx{static{tD(this,"RuleTransition")}constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}};function g_(e){let t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};gP(t,e);let r=e.length;for(let n=0;n<r;n++){let r=e[n],i=gz(t,r,r);void 0!==i&&gZ(t,r,i)}return t}function gP(e,t){let r=t.length;for(let n=0;n<r;n++){let r=t[n],i=gJ(e,r,void 0,{type:2}),a=gJ(e,r,void 0,{type:7});i.stop=a,e.ruleToStartState.set(r,i),e.ruleToStopState.set(r,a)}}function gO(e,t,r){if(r instanceof pv)return gY(e,t,r.terminalType,r);if(r instanceof pc)return gQ(e,t,r);if(r instanceof pT)return gF(e,t,r);if(r instanceof pd)return gG(e,t,r);if(r instanceof py)return gD(e,t,r);else if(r instanceof pg)return gL(e,t,r);else if(r instanceof pm)return gM(e,t,r);else if(r instanceof ph)return gj(e,t,r);else return gz(e,t,r)}function gD(e,t,r){let n=gJ(e,t,r,{type:5});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r));return gq(e,t,r,i)}function gL(e,t,r){let n=gJ(e,t,r,{type:5});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r)),a=gY(e,t,r.separator,r);return gq(e,t,r,i,a)}function gM(e,t,r){let n=gJ(e,t,r,{type:4});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r));return gK(e,t,r,i)}function gj(e,t,r){let n=gJ(e,t,r,{type:4});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r)),a=gY(e,t,r.separator,r);return gK(e,t,r,i,a)}function gF(e,t,r){let n=gJ(e,t,r,{type:1});gB(e,n);let i=gA(r.definition,r=>gO(e,t,r));return gW(e,t,n,r,...i)}function gG(e,t,r){let n=gJ(e,t,r,{type:1});gB(e,n);let i=gW(e,t,n,r,gz(e,t,r));return gU(e,t,r,i)}function gz(e,t,r){let n=gS(gA(r.definition,r=>gO(e,t,r)),e=>void 0!==e);return 1===n.length?n[0]:0===n.length?void 0:gH(e,n)}function gK(e,t,r,n,i){let a=n.left,s=n.right,o=gJ(e,t,r,{type:11});gB(e,o);let l=gJ(e,t,r,{type:12});return a.loopback=o,l.loopback=o,e.decisionMap[gk(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=o,gX(s,o),void 0===i?(gX(o,a),gX(o,l)):(gX(o,l),gX(o,i.left),gX(i.right,a)),{left:a,right:l}}function gq(e,t,r,n,i){let a=n.left,s=n.right,o=gJ(e,t,r,{type:10});gB(e,o);let l=gJ(e,t,r,{type:12}),u=gJ(e,t,r,{type:9});return o.loopback=u,l.loopback=u,gX(o,a),gX(o,l),gX(s,u),void 0!==i?(gX(u,l),gX(u,i.left),gX(i.right,a)):gX(u,o),e.decisionMap[gk(t,i?"RepetitionWithSeparator":"Repetition",r.idx)]=o,{left:o,right:l}}function gU(e,t,r,n){let i=n.left;return gX(i,n.right),e.decisionMap[gk(t,"Option",r.idx)]=i,n}function gB(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function gW(e,t,r,n,...i){let a=gJ(e,t,n,{type:8,start:r});for(let e of(r.end=a,i))void 0!==e?(gX(r,e.left),gX(e.right,a)):gX(r,a);return e.decisionMap[gk(t,gV(n),n.idx)]=r,{left:r,right:a}}function gV(e){if(e instanceof pT)return"Alternation";if(e instanceof pd)return"Option";if(e instanceof py)return"Repetition";if(e instanceof pg)return"RepetitionWithSeparator";if(e instanceof pm)return"RepetitionMandatory";else if(e instanceof ph)return"RepetitionMandatoryWithSeparator";else throw Error("Invalid production type encountered")}function gH(e,t){let r=t.length;for(let n=0;n<r-1;n++){let r,i=t[n];1===i.left.transitions.length&&(r=i.left.transitions[0]);let a=r instanceof gI,s=r,o=t[n+1].left;1===i.left.type&&1===i.right.type&&void 0!==r&&(a&&s.followState===i.right||r.target===i.right)?(a?s.followState=o:r.target=o,g1(e,i.right)):gX(i.right,o)}let n=t[0],i=t[r-1];return{left:n.left,right:i.right}}function gY(e,t,r,n){let i=gJ(e,t,n,{type:1}),a=gJ(e,t,n,{type:1});return g0(i,new gN(a,r)),{left:i,right:a}}function gQ(e,t,r){let n=r.referencedRule,i=e.ruleToStartState.get(n),a=gJ(e,t,r,{type:1}),s=gJ(e,t,r,{type:1});return g0(a,new gI(i,n,s)),{left:a,right:s}}function gZ(e,t,r){let n=e.ruleToStartState.get(t);gX(n,r.left);let i=e.ruleToStopState.get(t);return gX(r.right,i),{left:n,right:i}}function gX(e,t){g0(e,new gw(t))}function gJ(e,t,r,n){let i=Object.assign({atn:e,production:r,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},n);return e.states.push(i),i}function g0(e,t){0===e.transitions.length&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}function g1(e,t){e.states.splice(e.states.indexOf(t),1)}tD(g_,"createATN"),tD(gP,"createRuleStartAndStopATNStates"),tD(gO,"atom"),tD(gD,"repetition"),tD(gL,"repetitionSep"),tD(gM,"repetitionMandatory"),tD(gj,"repetitionMandatorySep"),tD(gF,"alternation"),tD(gG,"option"),tD(gz,"block"),tD(gK,"plus"),tD(gq,"star"),tD(gU,"optional"),tD(gB,"defineDecisionState"),tD(gW,"makeAlts"),tD(gV,"getProdType"),tD(gH,"makeBlock"),tD(gY,"tokenRef"),tD(gQ,"ruleRef"),tD(gZ,"buildRuleHandle"),tD(gX,"epsilon"),tD(gJ,"newState"),tD(g0,"addTransition"),tD(g1,"removeState");var g2={},g3=class{static{tD(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let t=g4(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return gA(this.configs,e=>e.alt)}get key(){let e="";for(let t in this.map)e+=t+":";return e}};function g4(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(e=>e.stateNumber.toString()).join("_")}`}function g9(e,t,r){for(var n=-1,i=e.length;++n<i;){var a=e[n],s=t(a);if(null!=s&&(void 0===o?s==s&&!y0(s):r(s,o)))var o=s,l=a}return l}function g5(e,t){return e<t}function g6(e){return e&&e.length?g9(e,gd,g5):void 0}tD(g4,"getATNConfigKey"),tD(g9,"baseExtremum"),tD(g5,"baseLt"),tD(g6,"min");var g7=mJ?mJ.isConcatSpreadable:void 0;function g8(e){return hV(e)||h5(e)||!!(g7&&e&&e[g7])}function Te(e,t,r,n,i){var a=-1,s=e.length;for(r||(r=g8),i||(i=[]);++a<s;){var o=e[a];t>0&&r(o)?t>1?Te(o,t-1,r,n,i):hW(i,o):n||(i[i.length]=o)}return i}function Tt(e,t){return Te(gA(e,t),1)}function Tr(e,t,r,n){for(var i=e.length,a=r+(n?1:-1);n?a--:++a<i;)if(t(e[a],a,e))return a;return -1}function Tn(e){return e!=e}function Ti(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return -1}function Ta(e,t,r){return t==t?Ti(e,t,r):Tr(e,Tn,r)}function Ts(e,t){return!!(null==e?0:e.length)&&Ta(e,t,0)>-1}function To(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}function Tl(){}tD(g8,"isFlattenable"),tD(Te,"baseFlatten"),tD(Tt,"flatMap"),tD(Tr,"baseFindIndex"),tD(Tn,"baseIsNaN"),tD(Ti,"strictIndexOf"),tD(Ta,"baseIndexOf"),tD(Ts,"arrayIncludes"),tD(To,"arrayIncludesWith"),tD(Tl,"noop");var Tu=yN&&1/hK(new yN([,-0]))[1]==1/0?function(e){return new yN(e)}:Tl;function Tc(e,t,r){var n=-1,i=Ts,a=e.length,s=!0,o=[],l=o;if(r)s=!1,i=To;else if(a>=200){var u=t?null:Tu(e);if(u)return hK(u);s=!1,i=hj,l=new hL}else l=t?[]:o;t:for(;++n<a;){var c=e[n],p=t?t(c):c;if(c=r||0!==c?c:0,s&&p==p){for(var f=l.length;f--;)if(l[f]===p)continue t;t&&l.push(p),o.push(c)}else i(l,p,r)||(l!==o&&l.push(p),o.push(c))}return o}function Tp(e,t){return e&&e.length?Tc(e,gg(t,2)):[]}function Tf(e){return(null==e?0:e.length)?Te(e,1):[]}function Td(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}function Tm(e){return"function"==typeof e?e:gd}function Th(e,t){return(hV(e)?Td:gE)(e,Tm(t))}tD(Tc,"baseUniq"),tD(Tp,"uniqBy"),tD(Tf,"flatten"),tD(Td,"arrayEach"),tD(Tm,"castFunction"),tD(Th,"forEach");var Ty=Object.prototype.hasOwnProperty;function Tg(e){if(null==e)return!0;if(yE(e)&&(hV(e)||"string"==typeof e||"function"==typeof e.splice||yt(e)||yd(e)||h5(e)))return!e.length;var t=yK(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(yg(e))return!yR(e).length;for(var r in e)if(Ty.call(e,r))return!1;return!0}function TT(e,t,r,n){var i=-1,a=null==e?0:e.length;for(n&&a&&(r=e[++i]);++i<a;)r=t(r,e[i],i,e);return r}function Tv(e,t,r,n,i){return i(e,function(e,i,a){r=n?(n=!1,e):t(r,e,i,a)}),r}function T$(e,t,r){var n=hV(e)?TT:Tv,i=arguments.length<3;return n(e,gg(t,4),r,i,gE)}function TR(e,t){let r={};return n=>{let i=n.toString(),a=r[i];return void 0!==a||(a={atnStartState:e,decision:t,states:{}},r[i]=a),a}}tD(Tg,"isEmpty"),tD(TT,"arrayReduce"),tD(Tv,"baseReduce"),tD(T$,"reduce"),tD(TR,"createDFACache");var TE=class{static{tD(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="",t=this.predicates.length;for(let r=0;r<t;r++)e+=!0===this.predicates[r]?"1":"0";return e}},Tb=new TE,TA=class extends d8{static{tD(this,"LLStarLookaheadStrategy")}constructor(e){var t;super(),this.logging=null!=(t=null==e?void 0:e.logging)?t:e=>console.log(e)}initialize(e){this.atn=g_(e.rules),this.dfas=TS(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:t,rule:r,hasPredicates:n,dynamicTokensEnabled:i}=e,a=this.dfas,s=this.logging,o=gk(r,"Alternation",t),l=this.atn.decisionMap[o].decision,u=gA(du({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),e=>gA(e,e=>e[0]));if(TC(u,!1)&&!i){let e=T$(u,(e,t,r)=>(Th(t,t=>{t&&(e[t.tokenTypeIdx]=r,Th(t.categoryMatches,t=>{e[t]=r}))}),e),{});return n?function(t){var r;let n=e[this.LA(1).tokenTypeIdx];if(void 0!==t&&void 0!==n){let e=null==(r=t[n])?void 0:r.GATE;if(void 0!==e&&!1===e.call(this))return}return n}:function(){return e[this.LA(1).tokenTypeIdx]}}return n?function(e){let t=new TE,r=void 0===e?0:e.length;for(let n=0;n<r;n++){let r=null==e?void 0:e[n].GATE;t.set(n,void 0===r||r.call(this))}let n=Tk.call(this,a,l,t,s);return"number"==typeof n?n:void 0}:function(){let e=Tk.call(this,a,l,Tb,s);return"number"==typeof e?e:void 0}}buildLookaheadForOptional(e){let{prodOccurrence:t,rule:r,prodType:n,dynamicTokensEnabled:i}=e,a=this.dfas,s=this.logging,o=gk(r,n,t),l=this.atn.decisionMap[o].decision,u=gA(du({maxLookahead:1,occurrence:t,prodType:n,rule:r}),e=>gA(e,e=>e[0]));if(TC(u)&&u[0][0]&&!i){let e=Tf(u[0]);if(1===e.length&&Tg(e[0].categoryMatches)){let t=e[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===t}}{let t=T$(e,(e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,Th(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){return!0===t[this.LA(1).tokenTypeIdx]}}}return function(){let e=Tk.call(this,a,l,Tb,s);return"object"!=typeof e&&0===e}}};function TC(e,t=!0){let r=new Set;for(let n of e){let e=new Set;for(let i of n){if(void 0===i)if(!t)return!1;else break;for(let t of[i.tokenTypeIdx].concat(i.categoryMatches))if(r.has(t)){if(!e.has(t))return!1}else r.add(t),e.add(t)}}return!0}function TS(e){let t=e.decisionStates.length,r=Array(t);for(let n=0;n<t;n++)r[n]=TR(e.decisionStates[n],n);return r}function Tk(e,t,r,n){let i=e[t](r),a=i.start;if(void 0===a){let e=Tz(i.atnStartState);a=TG(i,Tj(e)),i.start=a}return Tx.apply(this,[i,a,r,n])}function Tx(e,t,r,n){let i=t,a=1,s=[],o=this.LA(a++);for(;;){let t=TO(i,o);if(void 0===t&&(t=TN.apply(this,[e,i,o,a,r,n])),t===g2)return TP(s,i,o);if(!0===t.isAcceptState)return t.prediction;i=t,s.push(o),o=this.LA(a++)}}function TN(e,t,r,n,i,a){let s=TD(t.configs,r,i);if(0===s.size)return TF(e,t,r,g2),g2;let o=Tj(s),l=TM(s,i);if(void 0!==l)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(TW(s)){let t=g6(s.alts);o.isAcceptState=!0,o.prediction=t,o.configs.uniqueAlt=t,Tw.apply(this,[e,n,s.alts,a])}return TF(e,t,r,o)}function Tw(e,t,r,n){let i=[];for(let e=1;e<=t;e++)i.push(this.LA(e).tokenType);let a=e.atnStartState;n(TI({topLevelRule:a.rule,ambiguityIndices:r,production:a.production,prefixPath:i}))}function TI(e){let t=gA(e.prefixPath,e=>fz(e)).join(", "),r=0===e.production.idx?"":e.production.idx,n=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${T_(e.production)}${r}> inside <${e.topLevelRule.name}> Rule, <${t}> may appears as a prefix path in all these alternatives. `;return n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`}function T_(e){if(e instanceof pc)return"SUBRULE";if(e instanceof pd)return"OPTION";if(e instanceof pT)return"OR";if(e instanceof pm)return"AT_LEAST_ONE";if(e instanceof ph)return"AT_LEAST_ONE_SEP";else if(e instanceof pg)return"MANY_SEP";else if(e instanceof py)return"MANY";else if(e instanceof pv)return"CONSUME";else throw Error("non exhaustive match")}function TP(e,t,r){return{actualToken:r,possibleTokenTypes:Tp(Tt(t.configs.elements,e=>e.state.transitions).filter(e=>e instanceof gN).map(e=>e.tokenType),e=>e.tokenTypeIdx),tokenPath:e}}function TO(e,t){return e.edges[t.tokenTypeIdx]}function TD(e,t,r){let n,i=new g3,a=[];for(let n of e.elements){if(!1===r.is(n.alt))continue;if(7===n.state.type){a.push(n);continue}let e=n.state.transitions.length;for(let r=0;r<e;r++){let e=TL(n.state.transitions[r],t);void 0!==e&&i.add({state:e,alt:n.alt,stack:n.stack})}}if(0===a.length&&1===i.size&&(n=i),void 0===n)for(let e of(n=new g3,i.elements))TK(e,n);if(a.length>0&&!TU(n))for(let e of a)n.add(e);return n}function TL(e,t){if(e instanceof gN&&f1(t,e.tokenType))return e.target}function TM(e,t){let r;for(let n of e.elements)if(!0===t.is(n.alt)){if(void 0===r)r=n.alt;else if(r!==n.alt)return}return r}function Tj(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function TF(e,t,r,n){return n=TG(e,n),t.edges[r.tokenTypeIdx]=n,n}function TG(e,t){if(t===g2)return t;let r=t.configs.key,n=e.states[r];return void 0!==n?n:(t.configs.finalize(),e.states[r]=t,t)}function Tz(e){let t=new g3,r=e.transitions.length;for(let n=0;n<r;n++)TK({state:e.transitions[n].target,alt:n,stack:[]},t);return t}function TK(e,t){let r=e.state;if(7===r.type){if(e.stack.length>0){let r=[...e.stack];TK({state:r.pop(),alt:e.alt,stack:r},t)}else t.add(e);return}r.epsilonOnlyTransitions||t.add(e);let n=r.transitions.length;for(let i=0;i<n;i++){let n=Tq(e,r.transitions[i]);void 0!==n&&TK(n,t)}}function Tq(e,t){if(t instanceof gw)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof gI){let r=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:r}}}function TU(e){for(let t of e.elements)if(7===t.state.type)return!0;return!1}function TB(e){for(let t of e.elements)if(7!==t.state.type)return!1;return!0}function TW(e){if(TB(e))return!0;let t=TV(e.elements);return TH(t)&&!TY(t)}function TV(e){let t=new Map;for(let r of e){let e=g4(r,!1),n=t.get(e);void 0===n&&(n={},t.set(e,n)),n[r.alt]=!0}return t}function TH(e){for(let t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}function TY(e){for(let t of Array.from(e.values()))if(1===Object.keys(t).length)return!0;return!1}tD(TC,"isLL1Sequence"),tD(TS,"initATNSimulator"),tD(Tk,"adaptivePredict"),tD(Tx,"performLookahead"),tD(TN,"computeLookaheadTarget"),tD(Tw,"reportLookaheadAmbiguity"),tD(TI,"buildAmbiguityError"),tD(T_,"getProductionDslName"),tD(TP,"buildAdaptivePredictError"),tD(TO,"getExistingTargetState"),tD(TD,"computeReachSet"),tD(TL,"getReachableTarget"),tD(TM,"getUniqueAlt"),tD(Tj,"newDFAState"),tD(TF,"addDFAEdge"),tD(TG,"addDFAState"),tD(Tz,"computeStartState"),tD(TK,"closure"),tD(Tq,"getEpsilonTarget"),tD(TU,"hasConfigInRuleStopState"),tD(TB,"allConfigsInRuleStopStates"),tD(TW,"hasConflictTerminatingPrediction"),tD(TV,"getConflictingAltSets"),tD(TH,"hasConflictingAltSet"),tD(TY,"hasStateAssociatedWithOneAlt"),tq();var TQ=class{static{tD(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(e){return this.rootNode=new T1(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let t=new TJ;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){let r=new TX(e.startOffset,e.image.length,iz(e),e.tokenType,!t);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){let t=e.container;if(t){let r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}addHiddenNodes(e){let t=[];for(let r of e){let e=new TX(r.startOffset,r.image.length,iz(r),r.tokenType,!0);e.root=this.rootNode,t.push(e)}let r=this.current,n=!1;if(r.content.length>0)return void r.content.push(...t);for(;r.container;){let e=r.container.content.indexOf(r);if(e>0){r.container.content.splice(e,0,...t),n=!0;break}r=r.container}n||this.rootNode.content.unshift(...t)}construct(e){let t=this.current;"string"!=typeof e.$type||e.$infixName||(this.current.astNode=e),e.$cstNode=t;let r=this.nodeStack.pop();r?.content.length===0&&this.removeNode(r)}},TZ=class{static{tD(this,"AbstractCstNode")}get hidden(){return!1}get astNode(){let e="string"==typeof this._astNode?.$type?this._astNode:this.container?.astNode;if(!e)throw Error("This node has no associated AST element");return e}set astNode(e){this._astNode=e}get text(){return this.root.fullText.substring(this.offset,this.end)}},TX=class extends TZ{static{tD(this,"LeafCstNodeImpl")}get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,r,n,i=!1){super(),this._hidden=i,this._offset=e,this._tokenType=n,this._length=t,this._range=r}},TJ=class extends TZ{static{tD(this,"CompositeCstNodeImpl")}constructor(){super(...arguments),this.content=new T0(this)}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(!e||!t)return{start:$.create(0,0),end:$.create(0,0)};if(void 0===this._rangeCache){let{range:r}=e,{range:n}=t;this._rangeCache={start:r.start,end:n.end.line<r.start.line?r.start:n.end}}return this._rangeCache}get firstNonHiddenNode(){for(let e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){let t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}},T0=class e extends Array{static{tD(this,"CstNodeContainer")}constructor(t){super(),this.parent=t,Object.setPrototypeOf(this,e.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(let t of e)t.container=this.parent}},T1=class extends TJ{static{tD(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}},T2=Symbol("Datatype");function T3(e){return e.$type===T2}tD(T3,"isDataTypeNode");var T4=tD(e=>e.endsWith("\u200B")?e:e+"\u200B","withRuleSuffix"),T5=class{static{tD(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;let t=this.lexer.definition,r="production"===e.LanguageMetaData.mode;e.shared.profilers.LangiumProfiler?.isActive("parsing")?this.wrapper=new vr(t,{...e.parser.ParserConfig,skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider},e.shared.profilers.LangiumProfiler.createTask("parsing",e.LanguageMetaData.languageId)):this.wrapper=new vt(t,{...e.parser.ParserConfig,skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider})}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},T9=class extends T5{static{tD(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new TQ,this.stack=[],this.assignmentMap=new Map,this.operatorPrecedence=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){let r,n=this.computeRuleType(e);nL(e)&&(r=e.name,this.registerPrecedenceMap(e));let i=this.wrapper.DEFINE_RULE(T4(e.name),this.startImplementation(n,r,t).bind(this));return this.allRules.set(e.name,i),n4(e)&&e.entry&&(this.mainRule=i),i}registerPrecedenceMap(e){let t=e.name,r=new Map;for(let t=0;t<e.operators.precedences.length;t++){let n=e.operators.precedences[t];for(let e of n.operators)r.set(e.value,{precedence:t,rightAssoc:"right"===n.associativity})}this.operatorPrecedence.set(t,r)}computeRuleType(e){if(nL(e))return aH(e);if(!e.fragment)if(aq(e))return T2;else return aH(e)}parse(e,t={}){this.nodeBuilder.buildRootNode(e);let r=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=r.tokens;let n=t.rule?this.allRules.get(t.rule):this.mainRule;if(!n)throw Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");let i=this.doParse(n);return this.nodeBuilder.addHiddenNodes(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,rq(i,{deep:!0}),{value:i,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}doParse(e){let t=this.wrapper.rule(e);if(this.stack.length>0&&(t=this.construct()),void 0===t)throw Error("No result from parser");if(this.stack.length>0)throw Error("Parser stack is not empty after parsing");return t}startImplementation(e,t,r){return n=>{let i=!this.isRecording()&&void 0!==e;if(i){let r={$type:e};this.stack.push(r),e===T2?r.value="":void 0!==t&&(r.$infixName=t)}return r(n),i?this.construct():void 0}}extractHiddenTokens(e){let t=this.lexerResult.hidden;if(!t.length)return[];let r=e.startOffset;for(let e=0;e<t.length;e++)if(t[e].startOffset>r)return t.splice(0,e);return t.splice(0,t.length)}consume(e,t,r){let n=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(n)){let e=this.extractHiddenTokens(n);this.nodeBuilder.addHiddenNodes(e);let t=this.nodeBuilder.buildLeafNode(n,r),{assignment:i,crossRef:a}=this.getAssignment(r),s=this.current;if(i){let e=nU(r)?n.image:this.converter.convert(n.image,t);this.assign(i.operator,i.feature,e,t,a)}else if(T3(s)){let e=n.image;nU(r)||(e=this.converter.convert(e,t).toString()),s.value+=e}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&"number"==typeof e.endOffset&&!isNaN(e.endOffset)}subrule(e,t,r,n,i){let a,s;this.isRecording()||r||(a=this.nodeBuilder.buildCompositeNode(n));try{s=this.wrapper.wrapSubrule(e,t,i)}finally{!this.isRecording()&&(void 0!==s||r||(s=this.construct()),void 0!==s&&a&&a.length>0&&this.performSubruleAssignment(s,n,a))}}performSubruleAssignment(e,t,r){let{assignment:n,crossRef:i}=this.getAssignment(t);if(n)this.assign(n.operator,n.feature,e,r,i);else if(!n){let t=this.current;if(T3(t))t.value+=e.toString();else if("object"==typeof e&&e){let r=this.assignWithoutOverride(e,t);this.stack.pop(),this.stack.push(r)}}}action(e,t){if(!this.isRecording()){let r=this.current;t.feature&&t.operator?(r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(r.$cstNode),this.stack.push({$type:e}),this.assign(t.operator,t.feature,r,r.$cstNode)):r.$type=e}}construct(){if(this.isRecording())return;let e=this.stack.pop();return(this.nodeBuilder.construct(e),"$infixName"in e)?this.constructInfix(e,this.operatorPrecedence.get(e.$infixName)):T3(e)?this.converter.convert(e.value,e.$cstNode):(r0(this.astReflection,e),e)}constructInfix(e,t){let r=e.parts;if(!Array.isArray(r)||0===r.length)return;let n=e.operators;if(!Array.isArray(n)||r.length<2)return r[0];let i=0,a=-1;for(let e=0;e<n.length;e++){let r=n[e],s=t.get(r)??{precedence:1/0,rightAssoc:!1};s.precedence>a?(a=s.precedence,i=e):s.precedence!==a||s.rightAssoc||(i=e)}let s=n.slice(0,i),o=n.slice(i+1),l=r.slice(0,i+1),u=r.slice(i+1),c={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:l,operators:s},p={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:u,operators:o},f=this.constructInfix(c,t),d=this.constructInfix(p,t);return{$type:e.$type,$cstNode:e.$cstNode,left:f,operator:n[i],right:d}}getAssignment(e){if(!this.assignmentMap.has(e)){let t=rU(e,nf);this.assignmentMap.set(e,{assignment:t,crossRef:t&&nE(t.terminal)?t.terminal.isMulti?"multi":"single":void 0})}return this.assignmentMap.get(e)}assign(e,t,r,n,i){let a,s=this.current;switch(a="single"===i&&"string"==typeof r?this.linker.buildReference(s,t,n,r):"multi"===i&&"string"==typeof r?this.linker.buildMultiReference(s,t,n,r):r,e){case"=":s[t]=a;break;case"?=":s[t]=!0;break;case"+=":Array.isArray(s[t])||(s[t]=[]),s[t].push(a)}}assignWithoutOverride(e,t){for(let[r,n]of Object.entries(t)){let t=e[r];void 0===t?e[r]=n:Array.isArray(t)&&Array.isArray(n)&&(n.push(...t),e[r]=n)}let r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}},T6=class{static{tD(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return f2.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return f2.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return f2.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return f2.buildEarlyExitMessage(e)}},T7=class extends T6{static{tD(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:t}){let r=e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`;return`Expecting ${r} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},T8=class extends T5{static{tD(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){let r=this.wrapper.DEFINE_RULE(T4(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{let r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,n,i){this.before(n),this.wrapper.wrapSubrule(e,t,i),this.after(n)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}},ve={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new T7},vt=class extends mD{static{tD(this,"ChevrotainWrapper")}constructor(e,t){let r=t&&"maxLookahead"in t;super(e,{...ve,lookaheadStrategy:r?new d8({maxLookahead:t.maxLookahead}):new TA({logging:t.skipValidations?()=>{}:void 0}),...t})}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t,r){return this.RULE(e,t,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t,void 0)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}rule(e){return e.call(this,{})}},vr=class extends vt{static{tD(this,"ProfilerWrapper")}constructor(e,t,r){super(e,t),this.task=r}rule(e){this.task.start(),this.task.startSubTask(this.ruleName(e));try{return super.rule(e)}finally{this.task.stopSubTask(this.ruleName(e)),this.task.stop()}}ruleName(e){return e.ruleName}subrule(e,t,r){this.task.startSubTask(this.ruleName(t));try{return super.subrule(e,t,r)}finally{this.task.stopSubTask(this.ruleName(t))}}};function vn(e,t,r){return vi({parser:t,tokens:r,ruleNames:new Map},e),t}function vi(e,t){let r=aC(t,!1);for(let n of rG(t.rules).filter(n4).filter(e=>r.has(e))){let t={...e,consume:1,optional:1,subrule:1,many:1,or:1};e.parser.rule(n,vs(t,n.definition))}for(let n of rG(t.rules).filter(nL).filter(e=>r.has(e)))e.parser.rule(n,va(e,n))}function va(e,t){let r,n=t.call.rule.ref;if(!n)throw Error("Could not resolve reference to infix operator rule: "+t.call.rule.$refText);if(iy(n))throw Error("Cannot use terminal rule in infix expression");let i=t.operators.precedences.flatMap(e=>e.operators),a={$type:"Group",elements:[]},s={$container:a,$type:"Assignment",feature:"parts",operator:"+=",terminal:t.call},o={$container:a,$type:"Group",elements:[],cardinality:"*"};a.elements.push(s,o);let l={$container:o,$type:"Assignment",feature:"operators",operator:"+=",terminal:{$type:"Alternatives",elements:i}},u={...s,$container:o};o.elements.push(l,u);let c=i.map(t=>e.tokens[t.value]).map((t,r)=>({ALT:tD(()=>e.parser.consume(r,t,l),"ALT")}));return t=>{r??(r=vT(e,n)),e.parser.subrule(0,r,!1,s,t),e.parser.many(0,{DEF:tD(()=>{e.parser.alternatives(0,c),e.parser.subrule(1,r,!1,u,t)},"DEF")})}}function vs(e,t,r=!1){let n;if(nU(t))n=vy(e,t);else if(ni(t))n=vo(e,t);else if(nf(t))n=vs(e,t.terminal);else if(nE(t))n=vh(e,t);else if(ir(t))n=vl(e,t);else if(ns(t))n=vp(e,t);else if(ix(t))n=vf(e,t);else if(n_(t))n=vd(e,t);else if(nS(t)){let r=e.consume++;n=tD(()=>e.parser.consume(r,fJ,t),"method")}else throw new i5(t.$cstNode,`Unexpected element type: ${t.$type}`);return vg(e,r?void 0:vm(t),n,t.cardinality)}function vo(e,t){let r=aH(t);return()=>e.parser.action(r,t)}function vl(e,t){let r=t.rule.ref;if(r7(r)){let n,i=e.subrule++,a=n4(r)&&r.fragment,s=t.arguments.length>0?vu(r,t.arguments):()=>({});return o=>{n??(n=vT(e,r)),e.parser.subrule(i,n,a,t,s(o))}}if(iy(r)){let n=e.consume++,i=v$(e,r.name);return()=>e.parser.consume(n,i,t)}if(r)i9(r);else throw new i5(t.$cstNode,`Undefined rule: ${t.rule.$refText}`)}function vu(e,t){if(t.some(e=>e.calledByName)){let e=t.map(e=>({parameterName:e.parameter?.ref?.name,predicate:vc(e.value)}));return t=>{let r={};for(let{parameterName:n,predicate:i}of e)n&&(r[n]=i(t));return r}}{let r=t.map(e=>vc(e.value));return t=>{let n={};for(let i=0;i<r.length;i++)if(i<e.parameters.length){let a=e.parameters[i].name,s=r[i];n[a]=s(t)}return n}}}function vc(e){if(nA(e)){let t=vc(e.left),r=vc(e.right);return e=>t(e)||r(e)}if(n$(e)){let t=vc(e.left),r=vc(e.right);return e=>t(e)&&r(e)}if(nQ(e)){let t=vc(e.value);return e=>!t(e)}if(n2(e)){let t=e.parameter.ref.name;return e=>void 0!==e&&!0===e[t]}if(nm(e)){let t=!!e.true;return()=>t}i9(e)}function vp(e,t){if(1===t.elements.length)return vs(e,t.elements[0]);{let r=[];for(let n of t.elements){let t={ALT:vs(e,n,!0)},i=vm(n);i&&(t.GATE=vc(i)),r.push(t)}let n=e.or++;return t=>e.parser.alternatives(n,r.map(e=>{let r={ALT:tD(()=>e.ALT(t),"ALT")},n=e.GATE;return n&&(r.GATE=()=>n(t)),r}))}}function vf(e,t){if(1===t.elements.length)return vs(e,t.elements[0]);let r=[];for(let n of t.elements){let t={ALT:vs(e,n,!0)},i=vm(n);i&&(t.GATE=vc(i)),r.push(t)}let n=e.or++,i=tD((e,t)=>{let r=t.getRuleStack().join("-");return`uGroup_${e}_${r}`},"idFunc"),a=tD(t=>e.parser.alternatives(n,r.map((r,a)=>{let s={ALT:tD(()=>!0,"ALT")},o=e.parser;s.ALT=()=>{if(r.ALT(t),!o.isRecording()){let e=i(n,o);o.unorderedGroups.get(e)||o.unorderedGroups.set(e,[]);let t=o.unorderedGroups.get(e);void 0===t?.[a]&&(t[a]=!0)}};let l=r.GATE;return l?s.GATE=()=>l(t):s.GATE=()=>{let e=o.unorderedGroups.get(i(n,o));return!e?.[a]},s})),"alternatives"),s=vg(e,vm(t),a,"*");return t=>{s(t),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(n,e.parser))}}function vd(e,t){let r=t.elements.map(t=>vs(e,t));return e=>r.forEach(t=>t(e))}function vm(e){if(n_(e))return e.guardCondition}function vh(e,t,r=t.terminal){if(r)if(ir(r)&&n4(r.rule.ref)){let n,i=r.rule.ref,a=e.subrule++;return r=>{n??(n=vT(e,i)),e.parser.subrule(a,n,!1,t,r)}}else if(ir(r)&&iy(r.rule.ref)){let n=e.consume++,i=v$(e,r.rule.ref.name);return()=>e.parser.consume(n,i,t)}else if(nU(r)){let n=e.consume++,i=v$(e,r.value);return()=>e.parser.consume(n,i,t)}else throw Error("Could not build cross reference parser");{if(!t.type.ref)throw Error("Could not resolve reference to type: "+t.type.$refText);let r=aM(t.type.ref),n=r?.terminal;if(!n)throw Error("Could not find name assignment for type: "+aH(t.type.ref));return vh(e,t,n)}}function vy(e,t){let r=e.consume++,n=e.tokens[t.value];if(!n)throw Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(r,n,t)}function vg(e,t,r,n){let i=t&&vc(t);if(!n)if(!i)return r;else{let t=e.or++;return n=>e.parser.alternatives(t,[{ALT:tD(()=>r(n),"ALT"),GATE:tD(()=>i(n),"GATE")},{ALT:mP(),GATE:tD(()=>!i(n),"GATE")}])}if("*"===n){let t=e.many++;return n=>e.parser.many(t,{DEF:tD(()=>r(n),"DEF"),GATE:i?()=>i(n):void 0})}if("+"===n){let t=e.many++;if(!i)return n=>e.parser.atLeastOne(t,{DEF:tD(()=>r(n),"DEF")});{let n=e.or++;return a=>e.parser.alternatives(n,[{ALT:tD(()=>e.parser.atLeastOne(t,{DEF:tD(()=>r(a),"DEF")}),"ALT"),GATE:tD(()=>i(a),"GATE")},{ALT:mP(),GATE:tD(()=>!i(a),"GATE")}])}}if("?"===n){let t=e.optional++;return n=>e.parser.optional(t,{DEF:tD(()=>r(n),"DEF"),GATE:i?()=>i(n):void 0})}i9(n)}function vT(e,t){let r=vv(e,t),n=e.parser.getRule(r);if(!n)throw Error(`Rule "${r}" not found."`);return n}function vv(e,t){if(r7(t))return t.name;{if(e.ruleNames.has(t))return e.ruleNames.get(t);let r=t,n=r.$container,i=t.$type;for(;!n4(n);)(n_(n)||ns(n)||ix(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,e.ruleNames.set(t,i),i}}function v$(e,t){let r=e.tokens[t];if(!r)throw Error(`Token "${t}" not found."`);return r}function vR(e){let t=e.Grammar,r=e.parser.Lexer,n=new T8(e);return vn(t,n,r.definition),n.finalize(),n}function vE(e){let t=vb(e);return t.finalize(),t}function vb(e){let t=e.Grammar,r=e.parser.Lexer;return vn(t,new T9(e),r.definition)}tD(vn,"createParser"),tD(vi,"buildRules"),tD(va,"buildInfixRule"),tD(vs,"buildElement"),tD(vo,"buildAction"),tD(vl,"buildRuleCall"),tD(vu,"buildRuleCallPredicate"),tD(vc,"buildPredicate"),tD(vp,"buildAlternatives"),tD(vf,"buildUnorderedGroup"),tD(vd,"buildGroup"),tD(vm,"getGuardCondition"),tD(vh,"buildCrossReference"),tD(vy,"buildKeyword"),tD(vg,"wrap"),tD(vT,"getRule"),tD(vv,"getRuleName"),tD(v$,"getToken"),tD(vR,"createCompletionParser"),tD(vE,"createLangiumParser"),tD(vb,"prepareLangiumParser");var vA=class{static{tD(this,"DefaultTokenBuilder")}constructor(){this.diagnostics=[]}buildTokens(e,t){let r=rG(aC(e,!1)),n=this.buildTerminalTokens(r),i=this.buildKeywordTokens(r,n,t);return i.push(...n),i}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(iy).filter(e=>!e.fragment).map(e=>this.buildTerminalToken(e)).toArray()}buildTerminalToken(e){let t=aX(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,n={name:e.name,PATTERN:r};return"function"==typeof r&&(n.LINE_BREAKS=!0),e.hidden&&(n.GROUP=av(t)?fG.SKIPPED:"hidden"),n}requiresCustomPattern(e){return!!(e.flags.includes("u")||e.flags.includes("s"))}regexPatternFunction(e){let t=RegExp(e,e.flags+"y");return(e,r)=>(t.lastIndex=r,t.exec(e))}buildKeywordTokens(e,t,r){return e.filter(r7).flatMap(e=>rQ(e).filter(nU)).distinct(e=>e.value).toArray().sort((e,t)=>t.value.length-e.value.length).map(e=>this.buildKeywordToken(e,t,!!r?.caseInsensitive))}buildKeywordToken(e,t,r){let n=this.buildKeywordPattern(e,r),i={name:e.value,PATTERN:n,LONGER_ALT:this.findLongerAlt(e,t)};return"function"==typeof n&&(i.LINE_BREAKS=!0),i}buildKeywordPattern(e,t){return t?RegExp(a$(e.value),"i"):e.value}findLongerAlt(e,t){return t.reduce((t,r)=>{let n=r?.PATTERN;return n?.source&&aR("^"+n.source+"$",e.value)&&t.push(r),t},[])}},vC=class{static{tD(this,"DefaultValueConverter")}convert(e,t){let r=t.grammarSource;if(nE(r)&&(r=ax(r)),ir(r)){let n=r.rule.ref;if(!n)throw Error("This cst node was not parsed by a rule.");return this.runConverter(n,e,t)}return e}runConverter(e,t,r){switch(e.name.toUpperCase()){case"INT":return eJ.convertInt(t);case"STRING":return eJ.convertString(t);case"ID":return eJ.convertID(t)}switch(aZ(e)?.toLowerCase()){case"number":return eJ.convertNumber(t);case"boolean":return eJ.convertBoolean(t);case"bigint":return eJ.convertBigint(t);case"date":return eJ.convertDate(t);default:return t}}};!function(e){function t(e){let t="";for(let n=1;n<e.length-1;n++){let i=e.charAt(n);"\\"===i?t+=r(e.charAt(++n)):t+=i}return t}function r(e){switch(e){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return e}}function n(e){return"^"===e.charAt(0)?e.substring(1):e}function i(e){return parseInt(e)}function a(e){return BigInt(e)}function s(e){return new Date(e)}function o(e){return Number(e)}function l(e){return"true"===e.toLowerCase()}tD(t,"convertString"),e.convertString=t,tD(r,"convertEscapeCharacter"),tD(n,"convertID"),e.convertID=n,tD(i,"convertInt"),e.convertInt=i,tD(a,"convertBigint"),e.convertBigint=a,tD(s,"convertDate"),e.convertDate=s,tD(o,"convertNumber"),e.convertNumber=o,tD(l,"convertBoolean"),e.convertBoolean=l}(eJ||(eJ={}));var vS={};function vk(){return new Promise(e=>{"u"<typeof setImmediate?setTimeout(e,0):setImmediate(e)})}tF(vS,tG(tV(),1)),tD(vk,"delayNextTick");var vx=0,vN=10;function vw(){return vx=performance.now(),new vS.CancellationTokenSource}function vI(e){vN=e}tD(vw,"startCancelableOperation"),tD(vI,"setInterruptionPeriod");var v_=Symbol("OperationCancelled");function vP(e){return e===v_}async function vO(e){if(e===vS.CancellationToken.None)return;let t=performance.now();if(t-vx>=vN&&(vx=t,await vk(),vx=performance.now()),e.isCancellationRequested)throw v_}tD(vP,"isOperationCancelled"),tD(vO,"interruptAndCheck");var vD=class{static{tD(this,"Deferred")}constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)})}},vL=class e{static{tD(this,"FullTextDocument")}constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(t,r){for(let r of t)if(e.isIncremental(r)){let e=vG(r.range),t=this.offsetAt(e.start),n=this.offsetAt(e.end);this._content=this._content.substring(0,t)+r.text+this._content.substring(n,this._content.length);let i=Math.max(e.start.line,0),a=Math.max(e.end.line,0),s=this._lineOffsets,o=vj(r.text,!1,t);if(a-i===o.length)for(let e=0,t=o.length;e<t;e++)s[e+i+1]=o[e];else o.length<1e4?s.splice(i+1,a-i,...o):this._lineOffsets=s=s.slice(0,i+1).concat(o,s.slice(a+1));let l=r.text.length-(n-t);if(0!==l)for(let e=i+1+o.length,t=s.length;e<t;e++)s[e]=s[e]+l}else if(e.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw Error("Unknown change event received");this._version=r}getLineOffsets(){return void 0===this._lineOffsets&&(this._lineOffsets=vj(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(0===n)return{line:0,character:e};for(;r<n;){let i=Math.floor((r+n)/2);t[i]>e?n=i:r=i+1}let i=r-1;return e=this.ensureBeforeEOL(e,t[i]),{line:i,character:e-t[i]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line];if(e.character<=0)return r;let n=e.line+1<t.length?t[e.line+1]:this._content.length,i=Math.min(r+e.character,n);return this.ensureBeforeEOL(i,r)}ensureBeforeEOL(e,t){for(;e>t&&vF(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){return null!=e&&"string"==typeof e.text&&void 0!==e.range&&(void 0===e.rangeLength||"number"==typeof e.rangeLength)}static isFull(e){return null!=e&&"string"==typeof e.text&&void 0===e.range&&void 0===e.rangeLength}};function vM(e,t){if(e.length<=1)return e;let r=e.length/2|0,n=e.slice(0,r),i=e.slice(r);vM(n,t),vM(i,t);let a=0,s=0,o=0;for(;a<n.length&&s<i.length;)0>=t(n[a],i[s])?e[o++]=n[a++]:e[o++]=i[s++];for(;a<n.length;)e[o++]=n[a++];for(;s<i.length;)e[o++]=i[s++];return e}function vj(e,t,r=0){let n=t?[r]:[];for(let t=0;t<e.length;t++){let i=e.charCodeAt(t);vF(i)&&(13===i&&t+1<e.length&&10===e.charCodeAt(t+1)&&t++,n.push(r+t+1))}return n}function vF(e){return 13===e||10===e}function vG(e){let t=e.start,r=e.end;return t.line>r.line||t.line===r.line&&t.character>r.character?{start:r,end:t}:e}function vz(e){let t=vG(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){function t(e,t,r,n){return new vL(e,t,r,n)}function r(e,t,r){if(e instanceof vL)return e.update(t,r),e;throw Error("TextDocument.update: document must be created by TextDocument.create")}function n(e,t){let r=e.getText(),n=vM(t.map(vz),(e,t)=>{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),i=0,a=[];for(let t of n){let n=e.offsetAt(t.range.start);if(n<i)throw Error("Overlapping edit");n>i&&a.push(r.substring(i,n)),t.newText.length&&a.push(t.newText),i=e.offsetAt(t.range.end)}return a.push(r.substr(i)),a.join("")}tD(t,"create"),e.create=t,tD(r,"update"),e.update=r,tD(n,"applyEdits"),e.applyEdits=n}(e0||(e0={})),tD(vM,"mergeSort"),tD(vj,"computeLineOffsets"),tD(vF,"isEOL"),tD(vG,"getWellformedRange"),tD(vz,"getWellformedEdit"),(()=>{let e;var t,r,n={975:e=>{function t(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function r(e,t){for(var r,n="",i=0,a=-1,s=0,o=0;o<=e.length;++o){if(o<e.length)r=e.charCodeAt(o);else{if(47===r)break;r=47}if(47===r){if(a===o-1||1===s);else if(a!==o-1&&2===s){if(n.length<2||2!==i||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2)){if(n.length>2){var l=n.lastIndexOf("/");if(l!==n.length-1){-1===l?(n="",i=0):i=(n=n.slice(0,l)).length-1-n.lastIndexOf("/"),a=o,s=0;continue}}else if(2===n.length||1===n.length){n="",i=0,a=o,s=0;continue}}t&&(n.length>0?n+="/..":n="..",i=2)}else n.length>0?n+="/"+e.slice(a+1,o):n=e.slice(a+1,o),i=o-a-1;a=o,s=0}else 46===r&&-1!==s?++s:s=-1}return n}tD(t,"e"),tD(r,"r");var n={resolve:tD(function(){for(var e,n,i="",a=!1,s=arguments.length-1;s>=-1&&!a;s--)s>=0?e=arguments[s]:(void 0===n&&(n=process.cwd()),e=n),t(e),0!==e.length&&(i=e+"/"+i,a=47===e.charCodeAt(0));return i=r(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},"resolve"),normalize:tD(function(e){if(t(e),0===e.length)return".";var n=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=r(e,!n)).length||n||(e="."),e.length>0&&i&&(e+="/"),n?"/"+e:e},"normalize"),isAbsolute:tD(function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},"isAbsolute"),join:tD(function(){if(0==arguments.length)return".";for(var e,r=0;r<arguments.length;++r){var i=arguments[r];t(i),i.length>0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":n.normalize(e)},"join"),relative:tD(function(e,r){if(t(e),t(r),e===r||(e=n.resolve(e))===(r=n.resolve(r)))return"";for(var i=1;i<e.length&&47===e.charCodeAt(i);++i);for(var a=e.length,s=a-i,o=1;o<r.length&&47===r.charCodeAt(o);++o);for(var l=r.length-o,u=s<l?s:l,c=-1,p=0;p<=u;++p){if(p===u){if(l>u){if(47===r.charCodeAt(o+p))return r.slice(o+p+1);if(0===p)return r.slice(o+p)}else s>u&&(47===e.charCodeAt(i+p)?c=p:0===p&&(c=0));break}var f=e.charCodeAt(i+p);if(f!==r.charCodeAt(o+p))break;47===f&&(c=p)}var d="";for(p=i+c+1;p<=a;++p)p!==a&&47!==e.charCodeAt(p)||(0===d.length?d+="..":d+="/..");return d.length>0?d+r.slice(o+c):(o+=c,47===r.charCodeAt(o)&&++o,r.slice(o))},"relative"),_makeLong:tD(function(e){return e},"_makeLong"),dirname:tD(function(e){if(t(e),0===e.length)return".";for(var r=e.charCodeAt(0),n=47===r,i=-1,a=!0,s=e.length-1;s>=1;--s)if(47===(r=e.charCodeAt(s))){if(!a){i=s;break}}else a=!1;return -1===i?n?"/":".":n&&1===i?"//":e.slice(0,i)},"dirname"),basename:tD(function(e,r){if(void 0!==r&&"string"!=typeof r)throw TypeError('"ext" argument must be a string');t(e);var n,i=0,a=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var o=r.length-1,l=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!s){i=n+1;break}}else -1===l&&(s=!1,l=n+1),o>=0&&(u===r.charCodeAt(o)?-1==--o&&(a=n):(o=-1,a=l))}return i===a?a=l:-1===a&&(a=e.length),e.slice(i,a)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!s){i=n+1;break}}else -1===a&&(s=!1,a=n+1);return -1===a?"":e.slice(i,a)},"basename"),extname:tD(function(e){t(e);for(var r=-1,n=0,i=-1,a=!0,s=0,o=e.length-1;o>=0;--o){var l=e.charCodeAt(o);if(47!==l)-1===i&&(a=!1,i=o+1),46===l?-1===r?r=o:1!==s&&(s=1):-1!==r&&(s=-1);else if(!a){n=o+1;break}}return -1===r||-1===i||0===s||1===s&&r===i-1&&r===n+1?"":e.slice(r,i)},"extname"),format:tD(function(e){var t,r;if(null===e||"object"!=typeof e)throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return t=e.dir||e.root,r=e.base||(e.name||"")+(e.ext||""),t?t===e.root?t+r:t+"/"+r:r},"format"),parse:tD(function(e){t(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return r;var n,i=e.charCodeAt(0),a=47===i;a?(r.root="/",n=1):n=0;for(var s=-1,o=0,l=-1,u=!0,c=e.length-1,p=0;c>=n;--c)if(47!==(i=e.charCodeAt(c)))-1===l&&(u=!1,l=c+1),46===i?-1===s?s=c:1!==p&&(p=1):-1!==s&&(p=-1);else if(!u){o=c+1;break}return -1===s||-1===l||0===p||1===p&&s===l-1&&s===o+1?-1!==l&&(r.base=r.name=0===o&&a?e.slice(1,l):e.slice(o,l)):(0===o&&a?(r.name=e.slice(1,s),r.base=e.slice(1,l)):(r.name=e.slice(o,s),r.base=e.slice(o,l)),r.ext=e.slice(s,l)),o>0?r.dir=e.slice(0,o-1):a&&(r.dir="/"),r},"parse"),sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,e.exports=n}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return n[e](r,r.exports,a),r.exports}tD(a,"r"),a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};(a.r(s),a.d(s,{URI:tD(()=>f,"URI"),Utils:tD(()=>r,"Utils")}),"object"==typeof process)?e="win32"===process.platform:"object"==typeof navigator&&(e=navigator.userAgent.indexOf("Windows")>=0);let o=/^\w[\w\d+.-]*$/,l=/^\//,u=/^\/\//;function c(e,t){if(!e.scheme&&t)throw Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!o.test(e.scheme))throw Error("[UriError]: Scheme contains illegal characters.");if(e.path){if(e.authority){if(!l.test(e.path))throw Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(u.test(e.path))throw Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}tD(c,"a");let p=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{static{tD(this,"l")}static isUri(e){return e instanceof f||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}scheme;authority;path;query;fragment;constructor(e,t,r,n,i,a=!1){"object"==typeof e?(this.scheme=e.scheme||"",this.authority=e.authority||"",this.path=e.path||"",this.query=e.query||"",this.fragment=e.fragment||""):(this.scheme=e||a?e:"file",this.authority=t||"",this.path=function(e,t){switch(e){case"https":case"http":case"file":t?"/"!==t[0]&&(t="/"+t):t="/"}return t}(this.scheme,r||""),this.query=n||"",this.fragment=i||"",c(this,a))}get fsPath(){return T(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:r,path:n,query:i,fragment:a}=e;return void 0===t?t=this.scheme:null===t&&(t=""),void 0===r?r=this.authority:null===r&&(r=""),void 0===n?n=this.path:null===n&&(n=""),void 0===i?i=this.query:null===i&&(i=""),void 0===a?a=this.fragment:null===a&&(a=""),t===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&a===this.fragment?this:new m(t,r,n,i,a)}static parse(e,t=!1){let r=p.exec(e);return r?new m(r[2]||"",E(r[4]||""),E(r[5]||""),E(r[7]||""),E(r[9]||""),t):new m("","","","","")}static file(t){let r="";if(e&&(t=t.replace(/\\/g,"/")),"/"===t[0]&&"/"===t[1]){let e=t.indexOf("/",2);-1===e?(r=t.substring(2),t="/"):(r=t.substring(2,e),t=t.substring(e)||"/")}return new m("file",r,t,"","")}static from(e){let t=new m(e.scheme,e.authority,e.path,e.query,e.fragment);return c(t,!0),t}toString(e=!1){return v(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof f)return e;{let t=new m(e);return t._formatted=e.external,t._fsPath=e._sep===d?e.fsPath:null,t}}return e}}let d=e?1:void 0;class m extends f{static{tD(this,"d")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=T(this,!1)),this._fsPath}toString(e=!1){return e?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=d),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}let h={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function y(e,t,r){let n,i=-1;for(let a=0;a<e.length;a++){let s=e.charCodeAt(a);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||t&&47===s||r&&91===s||r&&93===s||r&&58===s)-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),void 0!==n&&(n+=e.charAt(a));else{void 0===n&&(n=e.substr(0,a));let t=h[s];void 0!==t?(-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),n+=t):-1===i&&(i=a)}}return -1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function g(e){let t;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);35===n||63===n?(void 0===t&&(t=e.substr(0,r)),t+=h[n]):void 0!==t&&(t+=e[r])}return void 0!==t?t:e}function T(t,r){let n;return n=t.authority&&t.path.length>1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&90>=t.path.charCodeAt(1)||t.path.charCodeAt(1)>=97&&122>=t.path.charCodeAt(1))&&58===t.path.charCodeAt(2)?r?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(n=n.replace(/\//g,"\\")),n}function v(e,t){let r=t?g:y,n="",{scheme:i,authority:a,path:s,query:o,fragment:l}=e;if(i&&(n+=i,n+=":"),(a||"file"===i)&&(n+="/",n+="/"),a){let e=a.indexOf("@");if(-1!==e){let t=a.substr(0,e);a=a.substr(e+1),-1===(e=t.lastIndexOf(":"))?n+=r(t,!1,!1):(n+=r(t.substr(0,e),!1,!1),n+=":",n+=r(t.substr(e+1),!1,!0)),n+="@"}-1===(e=(a=a.toLowerCase()).lastIndexOf(":"))?n+=r(a,!1,!0):(n+=r(a.substr(0,e),!1,!0),n+=a.substr(e))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){let e=s.charCodeAt(1);e>=65&&e<=90&&(s=`/${String.fromCharCode(e+32)}:${s.substr(3)}`)}else if(s.length>=2&&58===s.charCodeAt(1)){let e=s.charCodeAt(0);e>=65&&e<=90&&(s=`${String.fromCharCode(e+32)}:${s.substr(2)}`)}n+=r(s,!0,!1)}return o&&(n+="?",n+=r(o,!1,!1)),l&&(n+="#",n+=t?l:y(l,!1,!1)),n}function $(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+$(e.substr(3)):e}}tD(y,"m"),tD(g,"y"),tD(T,"v"),tD(v,"b"),tD($,"C");let R=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(e){return e.match(R)?e.replace(R,e=>$(e)):e}tD(E,"w");var b=a(975);let A=b.posix||b;(t=r||(r={})).joinPath=function(e,...t){return e.with({path:A.join(e.path,...t)})},t.resolvePath=function(e,...t){let r=e.path,n=!1;"/"!==r[0]&&(r="/"+r,n=!0);let i=A.resolve(r,...t);return n&&"/"===i[0]&&!e.authority&&(i=i.substring(1)),e.with({path:i})},t.dirname=function(e){if(0===e.path.length||"/"===e.path)return e;let t=A.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},t.basename=function(e){return A.basename(e.path)},t.extname=function(e){return A.extname(e.path)},e1=s})();var{URI:vK,Utils:vq}=e1;!function(e){e.basename=vq.basename,e.dirname=vq.dirname,e.extname=vq.extname,e.joinPath=vq.joinPath,e.resolvePath=vq.resolvePath;let t="object"==typeof process&&process?.platform==="win32";function r(e,t){return e?.toString()===t?.toString()}function n(e,r){let n="string"==typeof e?vK.parse(e).path:e.path,i="string"==typeof r?vK.parse(r).path:r.path,a=n.split("/").filter(e=>e.length>0),s=i.split("/").filter(e=>e.length>0);if(t){let e=/^[A-Z]:$/;if(a[0]&&e.test(a[0])&&(a[0]=a[0].toLowerCase()),s[0]&&e.test(s[0])&&(s[0]=s[0].toLowerCase()),a[0]!==s[0])return i.substring(1)}let o=0;for(;o<a.length&&a[o]===s[o];o++);return"../".repeat(a.length-o)+s.slice(o).join("/")}function i(e){return vK.parse(e.toString()).toString()}function a(e,t){let r="string"==typeof e?e:e.path,n="string"==typeof t?t:t.path;return"/"===n.charAt(n.length-1)&&(n=n.slice(0,-1)),"/"===r.charAt(r.length-1)&&(r=r.slice(0,-1)),n===r||!(n.length<r.length)&&"/"===n.charAt(r.length)&&n.startsWith(r)}tD(r,"equals"),e.equals=r,tD(n,"relative"),e.relative=n,tD(i,"normalize"),e.normalize=i,tD(a,"contains"),e.contains=a}(e2||(e2={}));var vU=class{static{tD(this,"UriTrie")}constructor(){this.root={name:"",children:new Map}}normalizeUri(e){return e2.normalize(e)}clear(){this.root.children.clear()}insert(e,t){this.getNode(this.normalizeUri(e),!0).element=t}delete(e){let t=this.getNode(this.normalizeUri(e),!1);t?.parent&&t.parent.children.delete(t.name)}has(e){return this.getNode(this.normalizeUri(e),!1)?.element!==void 0}hasNode(e){return void 0!==this.getNode(this.normalizeUri(e),!1)}find(e){return this.getNode(this.normalizeUri(e),!1)?.element}findNode(e){let t=this.normalizeUri(e),r=this.getNode(t,!1);if(r)return{name:r.name,uri:e2.joinPath(vK.parse(t),r.name).toString(),element:r.element}}findChildren(e){let t=this.normalizeUri(e),r=this.getNode(t,!1);return r?Array.from(r.children.values()).map(e=>({name:e.name,uri:e2.joinPath(vK.parse(t),e.name).toString(),element:e.element})):[]}all(){return this.collectValues(this.root)}findAll(e){let t=this.getNode(e2.normalize(e),!1);return t?this.collectValues(t):[]}getNode(e,t){let r=e.split("/");"/"===e.charAt(e.length-1)&&r.pop();let n=this.root;for(let e of r){let r=n.children.get(e);if(!r)if(!t)return;else r={name:e,children:new Map,parent:n},n.children.set(e,r);n=r}return n}collectValues(e){let t=[];for(let r of(e.element&&t.push(e.element),e.children.values()))t.push(...this.collectValues(r));return t}};(f=e3||(e3={}))[f.Changed=0]="Changed",f[f.Parsed=1]="Parsed",f[f.IndexedContent=2]="IndexedContent",f[f.ComputedScopes=3]="ComputedScopes",f[f.Linked=4]="Linked",f[f.IndexedReferences=5]="IndexedReferences",f[f.Validated=6]="Validated";var vB=class{static{tD(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=vS.CancellationToken.None){let r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return(t=t??vK.parse(e.uri),vS.CancellationToken.is(r))?this.createAsync(t,e,r):this.create(t,e,r)}fromString(e,t,r){return vS.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,r){if("string"==typeof t){let n=this.parse(e,t,r);return this.createLangiumDocument(n,e,void 0,t)}if("$model"in t){let r={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(r,e)}{let n=this.parse(e,t.getText(),r);return this.createLangiumDocument(n,e,t)}}async createAsync(e,t,r){if("string"==typeof t){let n=await this.parseAsync(e,t,r);return this.createLangiumDocument(n,e,void 0,t)}{let n=await this.parseAsync(e,t.getText(),r);return this.createLangiumDocument(n,e,t)}}createLangiumDocument(e,t,r,n){let i;if(r)i={parseResult:e,uri:t,state:e3.Parsed,references:[],textDocument:r};else{let r=this.createTextDocumentGetter(t,n);i={parseResult:e,uri:t,state:e3.Parsed,references:[],get textDocument(){return r()}}}return e.value.$document=i,i}async update(e,t){let r=e.parseResult.value.$cstNode?.root.fullText,n=this.textDocuments?.get(e.uri.toString()),i=n?n.getText():await this.fileSystemProvider.readFile(e.uri);if(n)Object.defineProperty(e,"textDocument",{value:n});else{let t=this.createTextDocumentGetter(e.uri,i);Object.defineProperty(e,"textDocument",{get:t})}return r!==i&&(e.parseResult=await this.parseAsync(e.uri,i,t),e.parseResult.value.$document=e),e.state=e3.Parsed,e}parse(e,t,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,r)}parseAsync(e,t,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,r)}createTextDocumentGetter(e,t){let r,n=this.serviceRegistry;return()=>r??(r=e0.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t??""))}},vW=class{static{tD(this,"DefaultLangiumDocuments")}constructor(e){this.documentTrie=new vU,this.services=e,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.documentBuilder=()=>e.workspace.DocumentBuilder}get all(){return rG(this.documentTrie.all())}addDocument(e){let t=e.uri.toString();if(this.documentTrie.has(t))throw Error(`A document with the URI '${t}' is already present.`);this.documentTrie.insert(t,e)}getDocument(e){let t=e.toString();return this.documentTrie.find(t)}getDocuments(e){let t=e.toString();return this.documentTrie.findAll(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r)),r}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(e=>(this.addDocument(e),e));{let r=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(r),r}}hasDocument(e){return this.documentTrie.has(e.toString())}invalidateDocument(e){let t=e.toString(),r=this.documentTrie.find(t);return r&&this.documentBuilder().resetToState(r,e3.Changed),r}deleteDocument(e){let t=e.toString(),r=this.documentTrie.find(t);return r&&(r.state=e3.Changed,this.documentTrie.delete(t)),r}deleteDocuments(e){let t=e.toString(),r=this.documentTrie.findAll(t);for(let e of r)e.state=e3.Changed;return this.documentTrie.delete(t),r}},vV=Symbol("RefResolving"),vH=class{static{tD(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async link(e,t=vS.CancellationToken.None){if(this.profiler?.isActive("linking")){let r=this.profiler.createTask("linking",this.languageId);r.start();try{for(let n of rZ(e.parseResult.value))await vO(t),rJ(n).forEach(t=>{let i=`${n.$type}:${t.property}`;r.startSubTask(i);try{this.doLink(t,e)}finally{r.stopSubTask(i)}})}finally{r.stop()}}else for(let r of rZ(e.parseResult.value))await vO(t),rJ(r).forEach(t=>this.doLink(t,e))}doLink(e,t){let r=e.reference;if("_ref"in r&&void 0===r._ref){r._ref=vV;try{let t=this.getCandidate(e);rw(t)?r._ref=t:(r._nodeDescription=t,r._ref=this.loadAstNode(t)??this.createLinkingError(e,t))}catch(n){console.error(`An error occurred while resolving reference to '${r.$refText}':`,n);let t=n.message??String(n);r._ref={info:e,message:`An error occurred while resolving reference to '${r.$refText}': ${t}`}}t.references.push(r)}else if("_items"in r&&void 0===r._items){r._items=vV;try{let t=this.getCandidates(e),n=[];if(rw(t))r._linkingError=t;else for(let e of t){let t=this.loadAstNode(e);t&&n.push({ref:t,$nodeDescription:e})}r._items=n}catch(t){r._linkingError={info:e,message:`An error occurred while resolving reference to '${r.$refText}': ${t}`},r._items=[]}t.references.push(r)}}unlink(e){for(let t of e.references)"_ref"in t?(t._ref=void 0,delete t._nodeDescription):"_items"in t&&(t._items=void 0,delete t._linkingError);e.references=[]}getCandidate(e){return this.scopeProvider.getScope(e).getElement(e.reference.$refText)??this.createLinkingError(e)}getCandidates(e){let t=this.scopeProvider.getScope(e).getElements(e.reference.$refText).distinct(e=>`${e.documentUri}#${e.path}`).toArray();return t.length>0?t:this.createLinkingError(e)}buildReference(e,t,r,n){let i=this,a={$refNode:r,$refText:n,_ref:void 0,get ref(){if(rS(this._ref))return this._ref;if(rN(this._nodeDescription)){let r=i.loadAstNode(this._nodeDescription);this._ref=r??i.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(void 0===this._ref){this._ref=vV;let r=rV(e).$document,n=i.getLinkedNode({reference:a,container:e,property:t});if(n.error&&r&&r.state<e3.ComputedScopes)return this._ref=void 0;this._ref=n.node??n.error,this._nodeDescription=n.descr,r?.references.push(this)}else this._ref===vV&&i.throwCyclicReferenceError(e,t,n);return rS(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return rw(this._ref)?this._ref:void 0}};return a}buildMultiReference(e,t,r,n){let i=this,a={$refNode:r,$refText:n,_items:void 0,get items(){if(Array.isArray(this._items))return this._items;if(void 0===this._items){this._items=vV;let r=rV(e).$document,n=i.getCandidates({reference:a,container:e,property:t}),s=[];if(rw(n))this._linkingError=n;else for(let e of n){let t=i.loadAstNode(e);t&&s.push({ref:t,$nodeDescription:e})}this._items=s,r?.references.push(this)}else this._items===vV&&i.throwCyclicReferenceError(e,t,n);return Array.isArray(this._items)?this._items:[]},get error(){if(this._linkingError)return this._linkingError;if(this.items.length>0)return;return this._linkingError=i.createLinkingError({reference:a,container:e,property:t})}};return a}throwCyclicReferenceError(e,t,r){throw Error(`Cyclic reference resolution detected: ${this.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${r}')`)}getLinkedNode(e){try{let t=this.getCandidate(e);if(rw(t))return{error:t};let r=this.loadAstNode(t);if(r)return{node:r,descr:t};return{descr:t,error:this.createLinkingError(e,t)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);let t=r.message??String(r);return{error:{info:e,message:`An error occurred while resolving reference to '${e.reference.$refText}': ${t}`}}}}loadAstNode(e){if(e.node)return e.node;let t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){let r=rV(e.container).$document;r&&r.state<e3.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);let n=this.reflection.getReferenceType(e);return{info:e,message:`Could not resolve reference to ${n} named '${e.reference.$refText}'.`,targetDescription:t}}};function vY(e){return"string"==typeof e.name}tD(vY,"isNamed");var vQ=class{static{tD(this,"DefaultNameProvider")}getName(e){if(vY(e))return e.name}getNameNode(e){return aI(e.$cstNode,"name")}},vZ=class{static{tD(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator,this.documents=e.shared.workspace.LangiumDocuments,this.hasMultiReference=rZ(e.Grammar).some(e=>nE(e)&&e.isMulti)}findDeclarations(e){if(e){let t=aL(e),r=e.astNode;if(t&&r){let n=r[t.feature];if(rk(n)||rx(n))return rH(n);if(Array.isArray(n)){for(let t of n)if((rk(t)||rx(t))&&t.$refNode&&t.$refNode.offset<=e.offset&&t.$refNode.end>=e.end)return rH(t)}}if(r){let t=this.nameProvider.getNameNode(r);if(t&&(t===e||iG(e,t)))return this.getSelfNodes(r)}}return[]}getSelfNodes(e){if(!this.hasMultiReference)return[e];{let t=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e)),r=this.getNodeFromReferenceDescription(t.head());if(r){for(let t of rJ(r))if(rx(t.reference)&&t.reference.items.some(t=>t.ref===e))return t.reference.items.map(e=>e.ref)}return[e]}}getNodeFromReferenceDescription(e){if(!e)return;let t=this.documents.getDocument(e.sourceUri);if(t)return this.nodeLocator.getAstNode(t.parseResult.value,e.sourcePath)}findDeclarationNodes(e){let t=this.findDeclarations(e),r=[];for(let e of t){let t=this.nameProvider.getNameNode(e)??e.$cstNode;t&&r.push(t)}return r}findReferences(e,t){let r=[];t.includeDeclaration&&r.push(...this.getSelfReferences(e));let n=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(n=n.filter(e=>e2.equals(e.sourceUri,t.documentUri))),r.push(...n),rG(r)}getSelfReferences(e){let t=this.getSelfNodes(e),r=[];for(let e of t){let t=this.nameProvider.getNameNode(e);if(t){let n=rW(e),i=this.nodeLocator.getAstNodePath(e);r.push({sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:iK(t),local:!0})}}return r}},vX=class{static{tD(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[t,r]of e)this.add(t,r)}get size(){return eV.sum(rG(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(void 0===t)return this.map.delete(e);{let r=this.map.get(e);if(r){let n=r.indexOf(t);if(n>=0)return 1===r.length?this.map.delete(e):r.splice(n,1),!0}return!1}}get(e){return this.map.get(e)??[]}getStream(e){let t=this.map.get(e);return t?rG(t):rj}has(e,t){if(void 0===t)return this.map.has(e);{let r=this.map.get(e);return!!r&&r.indexOf(t)>=0}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(t=>e(t,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return rG(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return rG(this.map.keys())}values(){return rG(this.map.values()).flat()}entriesGroupedByKey(){return rG(this.map.entries())}},vJ=class{static{tD(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let t=this.map.get(e);return void 0!==t&&(this.map.delete(e),this.inverse.delete(t),!0)}},v0=class{static{tD(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async collectExportedSymbols(e,t=vS.CancellationToken.None){return this.collectExportedSymbolsForNode(e.parseResult.value,e,void 0,t)}async collectExportedSymbolsForNode(e,t,r=rY,n=vS.CancellationToken.None){let i=[];for(let a of(this.addExportedSymbol(e,i,t),r(e)))await vO(n),this.addExportedSymbol(a,i,t);return i}addExportedSymbol(e,t,r){let n=this.nameProvider.getName(e);n&&t.push(this.descriptions.createDescription(e,n,r))}async collectLocalSymbols(e,t=vS.CancellationToken.None){let r=e.parseResult.value,n=new vX;for(let i of rQ(r))await vO(t),this.addLocalSymbol(i,e,n);return n}addLocalSymbol(e,t,r){let n=e.$container;if(n){let i=this.nameProvider.getName(e);i&&r.add(n,this.descriptions.createDescription(e,i,t))}}},v1=class{static{tD(this,"StreamScope")}constructor(e,t,r){this.elements=e,this.outerScope=t,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.caseInsensitive?this.elements.find(e=>e.name.toLowerCase()===t):this.elements.find(t=>t.name===e);return r||(this.outerScope?this.outerScope.getElement(e):void 0)}getElements(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.caseInsensitive?this.elements.filter(e=>e.name.toLowerCase()===t):this.elements.filter(t=>t.name===e);return(this.concatOuterScope||r.isEmpty())&&this.outerScope?r.concat(this.outerScope.getElements(e)):r}},v2=class{static{tD(this,"MapScope")}constructor(e,t,r){for(let t of(this.elements=new Map,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0,e)){let e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.set(e,t)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);return r||(this.outerScope?this.outerScope.getElement(e):void 0)}getElements(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t),n=r?[r]:[];return(this.concatOuterScope||n.length>0)&&this.outerScope?rG(n).concat(this.outerScope.getElements(e)):rG(n)}getAllElements(){let e=rG(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},v3=class{static{tD(this,"MultiMapScope")}constructor(e,t,r){for(let t of(this.elements=new vX,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0,e)){let e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.add(e,t)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t)[0];return r||(this.outerScope?this.outerScope.getElement(e):void 0)}getElements(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);return(this.concatOuterScope||0===r.length)&&this.outerScope?rG(r).concat(this.outerScope.getElements(e)):rG(r)}getAllElements(){let e=rG(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},v4={getElement(){},getElements:()=>rj,getAllElements:()=>rj},v5=class{static{tD(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw Error("This cache has already been disposed")}},v9=class extends v5{static{tD(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){let r=t();return this.cache.set(e,r),r}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},v6=class extends v5{static{tD(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(e=>e)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();let n=this.cacheForContext(e);if(n.has(t))return n.get(t);if(r){let e=r();return n.set(t,e),e}}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){let t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){let t=this.converter(e),r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}},v7=class extends v6{static{tD(this,"DocumentCache")}constructor(e,t){super(e=>e.toString()),t?(this.toDispose.push(e.workspace.DocumentBuilder.onDocumentPhase(t,e=>{this.clear(e.uri.toString())})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{for(let e of t)this.clear(e)}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{for(let r of e.concat(t))this.clear(r)}))}},v8=class extends v9{static{tD(this,"WorkspaceCache")}constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{t.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}},$e=class{static{tD(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new v8(e.shared)}getScope(e){let t=[],r=this.reflection.getReferenceType(e),n=rW(e.container).localSymbols;if(n){let i=e.container;do n.has(i)&&t.push(n.getStream(i).filter(e=>this.reflection.isSubtype(e.type,r))),i=i.$container;while(i)}let i=this.getGlobalScope(r,e);for(let e=t.length-1;e>=0;e--)i=this.createScope(t[e],i);return i}createScope(e,t,r){return new v1(rG(e),t,r)}createScopeForNodes(e,t,r){return new v1(rG(e).map(e=>{let t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)}).nonNullable(),t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new v3(this.indexManager.allElements(e)))}};function $t(e){return"string"==typeof e.$comment}function $r(e){return"object"==typeof e&&!!e&&("$ref"in e||"$error"in e)}tD($t,"isAstNodeWithComment"),tD($r,"isIntermediateReference");var $n=class{static{tD(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){let r=t??{},n=t?.replacer,i=tD((e,t)=>this.replacer(e,t,r),"defaultReplacer"),a=n?(e,t)=>n(e,t,i):i;try{return this.currentDocument=rW(e),JSON.stringify(e,a,t?.space)}finally{this.currentDocument=void 0}}deserialize(e,t){let r=JSON.parse(e);return this.linkNode(r,r,t??{}),r}replacer(e,t,{refText:r,sourceText:n,textRegions:i,comments:a,uriConverter:s}){if(!this.ignoreProperties.has(e)){if(rk(t)){let e=t.ref,n=r?t.$refText:void 0;if(!e)return{$error:t.error?.message??"Could not resolve reference",$refText:n};{let t=rW(e),r="";this.currentDocument&&this.currentDocument!==t&&(r=s?s(t.uri,e):t.uri.toString());let i=this.astNodeLocator.getAstNodePath(e);return{$ref:`${r}#${i}`,$refText:n}}}if(rx(t)){let e=r?t.$refText:void 0,n=[];for(let e of t.items){let t=e.ref,r=rW(e.ref),i="";this.currentDocument&&this.currentDocument!==r&&(i=s?s(r.uri,t):r.uri.toString());let a=this.astNodeLocator.getAstNodePath(t);n.push(`${i}#${a}`)}return{$refs:n,$refText:e}}{let r;if(!rS(t))return t;if(i&&(r=this.addAstNodeRegionWithAssignmentsTo({...t}),(!e||t.$document)&&r?.$textRegion&&(r.$textRegion.documentURI=this.currentDocument?.uri.toString())),n&&!e&&(r??(r={...t}),r.$sourceText=t.$cstNode?.text),a){r??(r={...t});let e=this.commentProvider.getComment(t);e&&(r.$comment=e.replace(/\r/g,""))}return r??t}}}addAstNodeRegionWithAssignmentsTo(e){let t=tD(e=>({offset:e.offset,end:e.end,length:e.length,range:e.range}),"createDocumentSegment");if(e.$cstNode){let r=(e.$textRegion=t(e.$cstNode)).assignments={};return Object.keys(e).filter(e=>!e.startsWith("$")).forEach(n=>{let i=aw(e.$cstNode,n).map(t);0!==i.length&&(r[n]=i)}),e}}linkNode(e,t,r,n,i,a){for(let[n,i]of Object.entries(e))if(Array.isArray(i))for(let a=0;a<i.length;a++){let s=i[a];$r(s)?i[a]=this.reviveReference(e,n,t,s,r):rS(s)&&this.linkNode(s,t,r,e,n,a)}else $r(i)?e[n]=this.reviveReference(e,n,t,i,r):rS(i)&&this.linkNode(i,t,r,e,n);e.$container=n,e.$containerProperty=i,e.$containerIndex=a}reviveReference(e,t,r,n,i){let a,s=n.$refText,o=n.$error;if(n.$ref){let e=this.getRefNode(r,n.$ref,i.uriConverter);if(rS(e))return s||(s=this.nameProvider.getName(e)),{$refText:s??"",ref:e};o=e}else if(n.$refs){let e=[];for(let t of n.$refs){let n=this.getRefNode(r,t,i.uriConverter);rS(n)&&e.push({ref:n})}if(0!==e.length)return{$refText:s??"",items:e};a={$refText:s??"",items:e},o??(o="Could not resolve multi-reference")}return o?(a??(a={$refText:s??"",ref:void 0}),a.error={info:{container:e,property:t,reference:a},message:o},a):void 0}getRefNode(e,t,r){try{let n=t.indexOf("#");if(0===n){let r=this.astNodeLocator.getAstNode(e,t.substring(1));if(!r)return"Could not resolve path: "+t;return r}if(n<0){let e=r?r(t):vK.parse(t),n=this.langiumDocuments.getDocument(e);if(!n)return"Could not find document for URI: "+t;return n.parseResult.value}let i=r?r(t.substring(0,n)):vK.parse(t.substring(0,n)),a=this.langiumDocuments.getDocument(i);if(!a)return"Could not find document for URI: "+t;if(n===t.length-1)return a.parseResult.value;let s=this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(n+1));if(!s)return"Could not resolve URI: "+t;return s}catch(e){return String(e)}}},$i=class{static{tD(this,"DefaultServiceRegistry")}get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.fileNameMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){let t=e.LanguageMetaData;for(let r of t.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(r,e);if(t.fileNames)for(let r of t.fileNames)this.fileNameMap.has(r)&&console.warn(`The file name ${r} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileNameMap.set(r,e);this.languageIdMap.set(t.languageId,e)}getServices(e){if(0===this.languageIdMap.size)throw Error("The service registry is empty. Use `register` to register the services of a language.");let t=this.textDocuments?.get(e)?.languageId;if(void 0!==t){let e=this.languageIdMap.get(t);if(e)return e}let r=e2.extname(e),n=e2.basename(e),i=this.fileNameMap.get(n)??this.fileExtensionMap.get(r);if(!i)if(t)throw Error(`The service registry contains no services for the extension '${r}' for language '${t}'.`);else throw Error(`The service registry contains no services for the extension '${r}'.`);return i}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}};function $a(e){return{code:e}}tD($a,"diagnosticData"),(d=e4||(e4={})).defaults=["fast","slow","built-in"],d.all=d.defaults;var $s=class{static{tD(this,"ValidationRegistry")}constructor(e){this.entries=new vX,this.knownCategories=new Set(e4.defaults),this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,r="fast"){if("built-in"===r)throw Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[n,i]of(this.knownCategories.add(r),Object.entries(e)))if(Array.isArray(i))for(let e of i){let i={check:this.wrapValidationException(e,t),category:r};this.addEntry(n,i)}else if("function"==typeof i){let e={check:this.wrapValidationException(i,t),category:r};this.addEntry(n,e)}else i9(i)}wrapValidationException(e,t){return async(r,n,i)=>{await this.handleException(()=>e.call(t,r,n,i),"An error occurred during validation",n,r)}}async handleException(e,t,r,n){try{await e()}catch(i){if(vP(i))throw i;console.error(`${t}:`,i),i instanceof Error&&i.stack&&console.error(i.stack);let e=i instanceof Error?i.message:String(i);r("error",`${t}: ${e}`,{node:n})}}addEntry(e,t){if("AstNode"===e)return void this.entries.add("AstNode",t);for(let r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=rG(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(e=>t.includes(e.category))),r.map(e=>e.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,r){return async(n,i,a,s)=>{await this.handleException(()=>e.call(r,n,i,a,s),t,i,n)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}getAllValidationCategories(e){return this.knownCategories}},$o=Object.freeze({validateNode:!0,validateChildren:!0}),$l=class{static{tD(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async validateDocument(e,t={},r=vS.CancellationToken.None){let n=e.parseResult,i=[];if((await vO(r),!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(n,i,t),t.stopAfterLexingErrors&&i.some(e=>e.data?.code===e5.LexingError)||(this.processParsingErrors(n,i,t),t.stopAfterParsingErrors&&i.some(e=>e.data?.code===e5.ParsingError))||(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some(e=>e.data?.code===e5.LinkingError))))return i;try{i.push(...await this.validateAst(n.value,t,r))}catch(e){if(vP(e))throw e;console.error("An error occurred during validation:",e)}return await vO(r),i}processLexingErrors(e,t,r){for(let r of[...e.lexerErrors,...e.lexerReport?.diagnostics??[]]){let e=r.severity??"error",n={severity:$c(e),range:{start:{line:r.line-1,character:r.column-1},end:{line:r.line-1,character:r.column+r.length-1}},message:r.message,data:$p(e),source:this.getSource()};t.push(n)}}processParsingErrors(e,t,r){for(let r of e.parserErrors){let e;if(isNaN(r.token.startOffset)){if("previousToken"in r){let t=r.previousToken;if(isNaN(t.startOffset)){let t={line:0,character:0};e={start:t,end:t}}else{let r={line:t.endLine-1,character:t.endColumn};e={start:r,end:r}}}}else e=iz(r.token);if(e){let n={severity:$c("error"),range:e,message:r.message,data:$a(e5.ParsingError),source:this.getSource()};t.push(n)}}}processLinkingErrors(e,t,r){for(let r of e.references){let e=r.error;if(e){let n={node:e.info.container,range:r.$refNode?.range,property:e.info.property,index:e.info.index,data:{code:e5.LinkingError,containerType:e.info.container.$type,property:e.info.property,refText:e.info.reference.$refText}};t.push(this.toDiagnostic("error",e.message,n))}}}async validateAst(e,t,r=vS.CancellationToken.None){let n=[],i=tD((e,t,r)=>{n.push(this.toDiagnostic(e,t,r))},"acceptor");return await this.validateAstBefore(e,t,i,r),await this.validateAstNodes(e,t,i,r),await this.validateAstAfter(e,t,i,r),n}async validateAstBefore(e,t,r,n=vS.CancellationToken.None){for(let i of this.validationRegistry.checksBefore)await vO(n),await i(e,r,t.categories??[],n)}async validateAstNodes(e,t,r,n=vS.CancellationToken.None){if(this.profiler?.isActive("validating")){let i=this.profiler.createTask("validating",this.languageId);i.start();try{let a=rZ(e).iterator();for(let e of a){i.startSubTask(e.$type);let s=this.validateSingleNodeOptions(e,t);if(s.validateNode)try{for(let i of this.validationRegistry.getChecks(e.$type,t.categories))await i(e,r,n)}finally{i.stopSubTask(e.$type)}s.validateChildren||a.prune()}}finally{i.stop()}}else{let i=rZ(e).iterator();for(let e of i){await vO(n);let a=this.validateSingleNodeOptions(e,t);if(a.validateNode)for(let i of this.validationRegistry.getChecks(e.$type,t.categories))await i(e,r,n);a.validateChildren||i.prune()}}}validateSingleNodeOptions(e,t){return $o}async validateAstAfter(e,t,r,n=vS.CancellationToken.None){for(let i of this.validationRegistry.checksAfter)await vO(n),await i(e,r,t.categories??[],n)}toDiagnostic(e,t,r){return{message:t,range:$u(r),severity:$c(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function $u(e){let t;return e.range?e.range:("string"==typeof e.property?t=aI(e.node.$cstNode,e.property,e.index):"string"==typeof e.keyword&&(t=aO(e.node.$cstNode,e.keyword,e.index)),t??(t=e.node.$cstNode),t)?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function $c(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw Error("Invalid diagnostic severity: "+e)}}function $p(e){switch(e){case"error":return $a(e5.LexingError);case"warning":return $a(e5.LexingWarning);case"info":return $a(e5.LexingInfo);case"hint":return $a(e5.LexingHint);default:throw Error("Invalid diagnostic severity: "+e)}}tD($u,"getDiagnosticRange"),tD($c,"toDiagnosticSeverity"),tD($p,"toDiagnosticData"),(m=e5||(e5={})).LexingError="lexing-error",m.LexingWarning="lexing-warning",m.LexingInfo="lexing-info",m.LexingHint="lexing-hint",m.ParsingError="parsing-error",m.LinkingError="linking-error";var $f=class{static{tD(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r){let n,i=r??rW(e);t??(t=this.nameProvider.getName(e));let a=this.astNodeLocator.getAstNodePath(e);if(!t)throw Error(`Node at path ${a} has no name.`);let s=tD(()=>n??(n=iK(this.nameProvider.getNameNode(e)??e.$cstNode)),"nameSegmentGetter");return{node:e,name:t,get nameSegment(){return s()},selectionSegment:iK(e.$cstNode),type:e.$type,documentUri:i.uri,path:a}}},$d=class{static{tD(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=vS.CancellationToken.None){let r=[];for(let n of rZ(e.parseResult.value))await vO(t),rJ(n).forEach(e=>{e.reference.error||r.push(...this.createInfoDescriptions(e))});return r}createInfoDescriptions(e){let t=e.reference;if(t.error||!t.$refNode)return[];let r=[];rk(t)&&t.$nodeDescription?r=[t.$nodeDescription]:rx(t)&&(r=t.items.map(e=>e.$nodeDescription).filter(e=>void 0!==e));let n=rW(e.container).uri,i=this.nodeLocator.getAstNodePath(e.container),a=[],s=iK(t.$refNode);for(let e of r)a.push({sourceUri:n,sourcePath:i,targetUri:e.documentUri,targetPath:e.path,segment:s,local:e2.equals(e.documentUri,n)});return a}},$m=class{static{tD(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw Error("Missing '$containerProperty' in AST node.");return void 0!==t?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((e,t)=>{if(!e||0===t.length)return e;let r=t.indexOf(this.indexSeparator);if(r>0){let n=t.substring(0,r),i=parseInt(t.substring(r+1)),a=e[n];return a?.[i]}return e[t]},e)}},$h={};tF($h,tG(tW(),1));var $y=class{static{tD(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new vD,this.onConfigurationSectionUpdateEmitter=new $h.Emitter,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){this.workspaceConfig=e.capabilities.workspace?.configuration??!1}async initialized(e){if(this.workspaceConfig){if(e.register){let t=this.serviceRegistry.all;e.register({section:t.map(e=>this.toSectionName(e.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let t=this.serviceRegistry.all.map(e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((e,t)=>{this.updateSectionConfiguration(e.section,r[t])})}}this._ready.resolve()}updateConfiguration(e){"object"==typeof e.settings&&null!==e.settings&&Object.entries(e.settings).forEach(([e,t])=>{this.updateSectionConfiguration(e,t),this.onConfigurationSectionUpdateEmitter.fire({section:e,configuration:t})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;let r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}},$g=tG(rb(),1),$T=e9||(e9={});function $v(e){return{dispose:tD(async()=>await e(),"dispose")}}tD($v,"create"),$T.create=$v;var $$=class{static{tD(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new vX,this.documentPhaseListeners=new vX,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=e3.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.fileSystemProvider=e.workspace.FileSystemProvider,this.workspaceManager=()=>e.workspace.WorkspaceManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=vS.CancellationToken.None){for(let r of e){let e=r.uri.toString();if(r.state===e3.Validated){if("boolean"==typeof t.validation&&t.validation)this.resetToState(r,e3.IndexedReferences);else if("object"==typeof t.validation){let n=this.findMissingValidationCategories(r,t);n.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:{categories:n}},result:this.buildState.get(e)?.result}),r.state=e3.IndexedReferences)}}else this.buildState.delete(e)}this.currentState=e3.Changed,await this.emitUpdate(e.map(e=>e.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=vS.CancellationToken.None){this.currentState=e3.Changed;let n=[];for(let e of t)for(let t of this.langiumDocuments.deleteDocuments(e))n.push(t.uri),this.cleanUpDeleted(t);let i=(await Promise.all(e.map(e=>this.findChangedUris(e)))).flat();for(let e of i){let t=this.langiumDocuments.getDocument(e);void 0===t&&((t=this.langiumDocumentFactory.fromModel({$type:"INVALID"},e)).state=e3.Changed,this.langiumDocuments.addDocument(t)),this.resetToState(t,e3.Changed)}let a=rG(i).concat(n).map(e=>e.toString()).toSet();this.langiumDocuments.all.filter(e=>!a.has(e.uri.toString())&&this.shouldRelink(e,a)).forEach(e=>this.resetToState(e,e3.ComputedScopes)),await this.emitUpdate(i,n),await vO(r);let s=this.sortDocuments(this.langiumDocuments.all.filter(e=>e.state<e3.Validated||!this.buildState.get(e.uri.toString())?.completed||this.resultsAreIncomplete(e,this.updateBuildOptions)).toArray());await this.buildDocuments(s,this.updateBuildOptions,r)}resultsAreIncomplete(e,t){return this.findMissingValidationCategories(e,t).length>=1}findMissingValidationCategories(e,t){let r=this.buildState.get(e.uri.toString()),n=this.serviceRegistry.getServices(e.uri).validation.ValidationRegistry.getAllValidationCategories(e),i=r?.result?.validationChecks?new Set(r?.result?.validationChecks):r?.completed?n:new Set;return rG(void 0===t||!0===t.validation?n:"object"==typeof t.validation?t.validation.categories??n:[]).filter(e=>!i.has(e)).toArray()}async findChangedUris(e){if(this.langiumDocuments.getDocument(e)??this.textDocuments?.get(e))return[e];try{let t=await this.fileSystemProvider.stat(e);if(t.isDirectory)return await this.workspaceManager().searchFolder(e);if(this.workspaceManager().shouldIncludeEntry(t))return[e]}catch{}return[]}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(r=>r(e,t)))}sortDocuments(e){let t=0,r=e.length-1;for(;t<r;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;r>=0&&!this.hasTextDocument(e[r]);)r--;t<r&&([e[t],e[r]]=[e[r],e[t]])}return e}hasTextDocument(e){return!!this.textDocuments?.get(e.uri)}shouldRelink(e,t){return!!e.references.some(e=>void 0!==e.error)||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),e9.create(()=>{let t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}resetToState(e,t){switch(t){case e3.Changed:case e3.Parsed:this.indexManager.removeContent(e.uri);case e3.IndexedContent:e.localSymbols=void 0;case e3.ComputedScopes:this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e);case e3.Linked:this.indexManager.removeReferences(e.uri);case e3.IndexedReferences:e.diagnostics=void 0,this.buildState.delete(e.uri.toString());case e3.Validated:}e.state>t&&(e.state=t)}cleanUpDeleted(e){this.buildState.delete(e.uri.toString()),this.indexManager.remove(e.uri),e.state=e3.Changed}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,e3.Parsed,r,e=>this.langiumDocumentFactory.update(e,r)),await this.runCancelable(e,e3.IndexedContent,r,e=>this.indexManager.updateContent(e,r)),await this.runCancelable(e,e3.ComputedScopes,r,async e=>{let t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.localSymbols=await t.collectLocalSymbols(e,r)});let n=e.filter(e=>this.shouldLink(e));await this.runCancelable(n,e3.Linked,r,e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,r)),await this.runCancelable(n,e3.IndexedReferences,r,e=>this.indexManager.updateReferences(e,r));let i=e.filter(e=>!!this.shouldValidate(e)||(this.markAsCompleted(e),!1));await this.runCancelable(i,e3.Validated,r,async e=>{await this.validate(e,r),this.markAsCompleted(e)})}markAsCompleted(e){let t=this.buildState.get(e.uri.toString());t&&(t.completed=!0)}prepareBuild(e,t){for(let r of e){let e=r.uri.toString(),n=this.buildState.get(e);(!n||n.completed)&&this.buildState.set(e,{completed:!1,options:t,result:n?.result})}}async runCancelable(e,t,r,n){for(let i of e)i.state<t&&(await vO(r),await n(i),i.state=t,await this.notifyDocumentPhase(i,t,r));let i=e.filter(e=>e.state===t);await this.notifyBuildPhase(i,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),e9.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),e9.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let n;return(t&&"path"in t?n=t:r=t,r??(r=vS.CancellationToken.None),n)?this.awaitDocumentState(e,n,r):this.awaitBuilderState(e,r)}awaitDocumentState(e,t,r){let n=this.langiumDocuments.getDocument(t);return n?n.state>=e?Promise.resolve(t):r.isCancellationRequested?Promise.reject(v_):this.currentState>=e&&e>n.state?Promise.reject(new $g.ResponseError($g.LSPErrorCodes.RequestFailed,`Document state of ${t.toString()} is ${e3[n.state]}, requiring ${e3[e]}, but workspace state is already ${e3[this.currentState]}. Returning undefined.`)):new Promise((n,i)=>{let a=this.onDocumentPhase(e,e=>{e2.equals(e.uri,t)&&(a.dispose(),s.dispose(),n(e.uri))}),s=r.onCancellationRequested(()=>{a.dispose(),s.dispose(),i(v_)})}):Promise.reject(new $g.ResponseError($g.LSPErrorCodes.ServerCancelled,`No document found for URI: ${t.toString()}`))}awaitBuilderState(e,t){return this.currentState>=e?Promise.resolve():t.isCancellationRequested?Promise.reject(v_):new Promise((r,n)=>{let i=this.onBuildPhase(e,()=>{i.dispose(),a.dispose(),r()}),a=t.onCancellationRequested(()=>{i.dispose(),a.dispose(),n(v_)})})}async notifyDocumentPhase(e,t,r){for(let n of this.documentPhaseListeners.get(t).slice())try{await vO(r),await n(e,r)}catch(e){if(!vP(e))throw e}}async notifyBuildPhase(e,t,r){if(0!==e.length)for(let n of this.buildPhaseListeners.get(t).slice())await vO(r),await n(e,r)}shouldLink(e){return this.getBuildOptions(e).eagerLinking??!0}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){let r=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,n=this.getBuildOptions(e),i="object"==typeof n.validation?{...n.validation}:{};i.categories=this.findMissingValidationCategories(e,n);let a=await r.validateDocument(e,i,t);e.diagnostics?e.diagnostics.push(...a):e.diagnostics=a;let s=this.buildState.get(e.uri.toString());s&&(s.result??(s.result={}),s.result.validationChecks?s.result.validationChecks=rG(s.result.validationChecks).concat(i.categories).distinct().toArray():s.result.validationChecks=[...i.categories])}getBuildOptions(e){return this.buildState.get(e.uri.toString())?.options??{}}},$R=class{static{tD(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new v6,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){let r=rW(e).uri,n=[];return this.referenceIndex.forEach(e=>{e.forEach(e=>{e2.equals(e.targetUri,r)&&e.targetPath===t&&n.push(e)})}),rG(n)}allElements(e,t){let r=rG(this.symbolIndex.keys());return t&&(r=r.filter(e=>!t||t.has(e))),r.map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,t){return t?this.symbolByTypeIndex.get(e,t,()=>(this.symbolIndex.get(e)??[]).filter(e=>this.astReflection.isSubtype(e.type,t))):this.symbolIndex.get(e)??[]}remove(e){this.removeContent(e),this.removeReferences(e)}removeContent(e){let t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t)}removeReferences(e){let t=e.toString();this.referenceIndex.delete(t)}async updateContent(e,t=vS.CancellationToken.None){let r=this.serviceRegistry.getServices(e.uri),n=await r.references.ScopeComputation.collectExportedSymbols(e,t),i=e.uri.toString();this.symbolIndex.set(i,n),this.symbolByTypeIndex.clear(i)}async updateReferences(e,t=vS.CancellationToken.None){let r=this.serviceRegistry.getServices(e.uri),n=await r.workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),n)}isAffected(e,t){let r=this.referenceIndex.get(e.uri.toString());return!!r&&r.some(e=>!e.local&&t.has(e.targetUri.toString()))}},$E=class{static{tD(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new vD,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){this.folders=e.workspaceFolders??void 0}initialized(e){return this.mutex.write(e=>this.initializeWorkspace(this.folders??[],e))}async initializeWorkspace(e,t=vS.CancellationToken.None){let r=await this.performStartup(e);await vO(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){let t=[],r=tD(e=>{t.push(e),this.langiumDocuments.hasDocument(e.uri)||this.langiumDocuments.addDocument(e)},"collector");await this.loadAdditionalDocuments(e,r);let n=[];await Promise.all(e.map(e=>this.getRootFolder(e)).map(async e=>this.traverseFolder(e,n)));let i=rG(n).distinct(e=>e.toString()).filter(e=>!this.langiumDocuments.hasDocument(e));return await this.loadWorkspaceDocuments(i,r),this._ready.resolve(),t}async loadWorkspaceDocuments(e,t){await Promise.all(e.map(async e=>{t(await this.langiumDocuments.getOrCreateDocument(e))}))}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return vK.parse(e.uri)}async traverseFolder(e,t){try{let r=await this.fileSystemProvider.readDirectory(e);await Promise.all(r.map(async e=>{this.shouldIncludeEntry(e)&&(e.isDirectory?await this.traverseFolder(e.uri,t):e.isFile&&t.push(e.uri))}))}catch(t){console.error("Failure to read directory content of "+e.toString(!0),t)}}async searchFolder(e){let t=[];return await this.traverseFolder(e,t),t}shouldIncludeEntry(e){let t=e2.basename(e.uri);return!t.startsWith(".")&&(e.isDirectory?"node_modules"!==t&&"out"!==t:!!e.isFile&&this.serviceRegistry.hasServices(e.uri))}},$b=class{static{tD(this,"DefaultLexerErrorMessageProvider")}buildUnexpectedCharactersMessage(e,t,r,n,i){return fj.buildUnexpectedCharactersMessage(e,t,r,n,i)}buildUnableToPopLexerModeMessage(e){return fj.buildUnableToPopLexerModeMessage(e)}},$A={mode:"full"},$C=class{static{tD(this,"DefaultLexer")}constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;let t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);let r=$x(t)?Object.values(t):t,n="production"===e.LanguageMetaData.mode;this.chevrotainLexer=new fG(r,{positionTracking:"full",skipValidations:n,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=$A){let r=this.chevrotainLexer.tokenize(e);return{tokens:r.tokens,errors:r.errors,hidden:r.groups.hidden??[],report:this.tokenBuilder.flushLexingReport?.(e)}}toTokenTypeDictionary(e){if($x(e))return e;let t=$k(e)?Object.values(e.modes).flat():e,r={};return t.forEach(e=>r[e.name]=e),r}};function $S(e){return Array.isArray(e)&&(0===e.length||"name"in e[0])}function $k(e){return e&&"modes"in e&&"defaultMode"in e}function $x(e){return!$S(e)&&!$k(e)}function $N(e,t,r){let n,i;return"string"==typeof e?(i=t,n=r):(i=e.range.start,n=t),i||(i=$.create(0,0)),$G({index:0,tokens:$O({lines:$I(e),position:i,options:$V(n)}),position:i})}function $w(e,t){let r=$V(t),n=$I(e);if(0===n.length)return!1;let i=n[0],a=n[n.length-1],s=r.start,o=r.end;return!!s?.exec(i)&&!!o?.exec(a)}function $I(e){return("string"==typeof e?e:e.text).split(ad)}tD($S,"isTokenTypeArray"),tD($k,"isIMultiModeLexerDefinition"),tD($x,"isTokenTypeDictionary"),tq(),tD($N,"parseJSDoc"),tD($w,"isJSDoc"),tD($I,"getLines");var $_=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,$P=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function $O(e){let t=[],r=e.position.line,n=e.position.character;for(let i=0;i<e.lines.length;i++){let a=0===i,s=i===e.lines.length-1,o=e.lines[i],l=0;if(a&&e.options.start){let t=e.options.start?.exec(o);t&&(l=t.index+t[0].length)}else{let t=e.options.line?.exec(o);t&&(l=t.index+t[0].length)}if(s){let t=e.options.end?.exec(o);t&&(o=o.substring(0,t.index))}if($j(o=o.substring(0,$F(o)),l)>=o.length){if(t.length>0){let e=$.create(r,n);t.push({type:"break",content:"",range:R.create(e,e)})}}else{$_.lastIndex=l;let e=$_.exec(o);if(e){let i=e[0],a=e[1],s=$.create(r,n+l),u=$.create(r,n+l+i.length);t.push({type:"tag",content:a,range:R.create(s,u)}),l+=i.length,l=$j(o,l)}if(l<o.length){let e=o.substring(l),i=Array.from(e.matchAll($P));t.push(...$D(i,e,r,n+l))}}r++,n=0}return t.length>0&&"break"===t[t.length-1].type?t.slice(0,-1):t}function $D(e,t,r,n){let i=[];if(0===e.length){let e=$.create(r,n),a=$.create(r,n+t.length);i.push({type:"text",content:t,range:R.create(e,a)})}else{let a=0;for(let s of e){let e=s.index,o=t.substring(a,e);o.length>0&&i.push({type:"text",content:t.substring(a,e),range:R.create($.create(r,a+n),$.create(r,e+n))});let l=o.length+1,u=s[1];if(i.push({type:"inline-tag",content:u,range:R.create($.create(r,a+l+n),$.create(r,a+l+u.length+n))}),l+=u.length,4===s.length){l+=s[2].length;let e=s[3];i.push({type:"text",content:e,range:R.create($.create(r,a+l+n),$.create(r,a+l+e.length+n))})}else i.push({type:"text",content:"",range:R.create($.create(r,a+l+n),$.create(r,a+l+n))});a=e+s[0].length}let s=t.substring(a);s.length>0&&i.push({type:"text",content:s,range:R.create($.create(r,a+n),$.create(r,a+n+s.length))})}return i}tD($O,"tokenize"),tD($D,"buildInlineTokens");var $L=/\S/,$M=/\s*$/;function $j(e,t){let r=e.substring(t).match($L);return r?t+r.index:e.length}function $F(e){let t=e.match($M);if(t&&"number"==typeof t.index)return t.index}function $G(e){let t=$.create(e.position.line,e.position.character);if(0===e.tokens.length)return new $Y([],R.create(t,t));let r=[];for(;e.index<e.tokens.length;){let t=$z(e,r[r.length-1]);t&&r.push(t)}let n=r[0]?.range.start??t,i=r[r.length-1]?.range.end??t;return new $Y(r,R.create(n,i))}function $z(e,t){let r=e.tokens[e.index];return"tag"===r.type?$B(e,!1):"text"===r.type||"inline-tag"===r.type?$q(e):($K(r,t),void e.index++)}function $K(e,t){if(t){let r=new $0("",e.range);"inlines"in t?t.inlines.push(r):t.content.inlines.push(r)}}function $q(e){let t=e.tokens[e.index],r=t,n=t,i=[];for(;t&&"break"!==t.type&&"tag"!==t.type;)i.push($U(e)),n=t,t=e.tokens[e.index];return new $J(i,R.create(r.range.start,n.range.end))}function $U(e){return"inline-tag"===e.tokens[e.index].type?$B(e,!0):$W(e)}function $B(e,t){let r=e.tokens[e.index++],n=r.content.substring(1),i=e.tokens[e.index];if(i?.type==="text")if(t){let i=$W(e);return new $Q(n,new $J([i],i.range),t,R.create(r.range.start,i.range.end))}else{let i=$q(e);return new $Q(n,i,t,R.create(r.range.start,i.range.end))}{let e=r.range;return new $Q(n,new $J([],e),t,e)}}function $W(e){let t=e.tokens[e.index++];return new $0(t.content,t.range)}function $V(e){if(!e)return $V({start:"/**",end:"*/",line:"*"});let{start:t,end:r,line:n}=e;return{start:$H(t,!0),end:$H(r,!1),line:$H(n,!0)}}function $H(e,t){if("string"!=typeof e&&"object"!=typeof e)return e;{let r="string"==typeof e?a$(e):e.source;return t?RegExp(`^\\s*${r}`):RegExp(`\\s*${r}\\s*$`)}}tD($j,"skipWhitespace"),tD($F,"lastCharacter"),tD($G,"parseJSDocComment"),tD($z,"parseJSDocElement"),tD($K,"appendEmptyLine"),tD($q,"parseJSDocText"),tD($U,"parseJSDocInline"),tD($B,"parseJSDocTag"),tD($W,"parseJSDocLine"),tD($V,"normalizeOptions"),tD($H,"normalizeOption");var $Y=class{static{tD(this,"JSDocCommentImpl")}constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let t of this.elements)if(0===e.length)e=t.toString();else{let r=t.toString();e+=$1(e)+r}return e.trim()}toMarkdown(e){let t="";for(let r of this.elements)if(0===t.length)t=r.toMarkdown(e);else{let n=r.toMarkdown(e);t+=$1(t)+n}return t.trim()}},$Q=class{static{tD(this,"JSDocTagImpl")}constructor(e,t,r,n){this.name=e,this.content=t,this.inline=r,this.range=n}toString(){let e=`@${this.name}`,t=this.content.toString();return(1===this.content.inlines.length?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e} +For Further details.`}function T_(e){if(e instanceof pc)return"SUBRULE";if(e instanceof pd)return"OPTION";if(e instanceof pT)return"OR";if(e instanceof pm)return"AT_LEAST_ONE";if(e instanceof ph)return"AT_LEAST_ONE_SEP";else if(e instanceof pg)return"MANY_SEP";else if(e instanceof py)return"MANY";else if(e instanceof pv)return"CONSUME";else throw Error("non exhaustive match")}function TP(e,t,r){return{actualToken:r,possibleTokenTypes:Tp(Tt(t.configs.elements,e=>e.state.transitions).filter(e=>e instanceof gN).map(e=>e.tokenType),e=>e.tokenTypeIdx),tokenPath:e}}function TO(e,t){return e.edges[t.tokenTypeIdx]}function TD(e,t,r){let n,i=new g3,a=[];for(let n of e.elements){if(!1===r.is(n.alt))continue;if(7===n.state.type){a.push(n);continue}let e=n.state.transitions.length;for(let r=0;r<e;r++){let e=TL(n.state.transitions[r],t);void 0!==e&&i.add({state:e,alt:n.alt,stack:n.stack})}}if(0===a.length&&1===i.size&&(n=i),void 0===n)for(let e of(n=new g3,i.elements))TK(e,n);if(a.length>0&&!TU(n))for(let e of a)n.add(e);return n}function TL(e,t){if(e instanceof gN&&f1(t,e.tokenType))return e.target}function TM(e,t){let r;for(let n of e.elements)if(!0===t.is(n.alt)){if(void 0===r)r=n.alt;else if(r!==n.alt)return}return r}function Tj(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function TF(e,t,r,n){return n=TG(e,n),t.edges[r.tokenTypeIdx]=n,n}function TG(e,t){if(t===g2)return t;let r=t.configs.key,n=e.states[r];return void 0!==n?n:(t.configs.finalize(),e.states[r]=t,t)}function Tz(e){let t=new g3,r=e.transitions.length;for(let n=0;n<r;n++)TK({state:e.transitions[n].target,alt:n,stack:[]},t);return t}function TK(e,t){let r=e.state;if(7===r.type){if(e.stack.length>0){let r=[...e.stack];TK({state:r.pop(),alt:e.alt,stack:r},t)}else t.add(e);return}r.epsilonOnlyTransitions||t.add(e);let n=r.transitions.length;for(let i=0;i<n;i++){let n=Tq(e,r.transitions[i]);void 0!==n&&TK(n,t)}}function Tq(e,t){if(t instanceof gw)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof gI){let r=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:r}}}function TU(e){for(let t of e.elements)if(7===t.state.type)return!0;return!1}function TB(e){for(let t of e.elements)if(7!==t.state.type)return!1;return!0}function TW(e){if(TB(e))return!0;let t=TV(e.elements);return TH(t)&&!TY(t)}function TV(e){let t=new Map;for(let r of e){let e=g4(r,!1),n=t.get(e);void 0===n&&(n={},t.set(e,n)),n[r.alt]=!0}return t}function TH(e){for(let t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}function TY(e){for(let t of Array.from(e.values()))if(1===Object.keys(t).length)return!0;return!1}tD(TC,"isLL1Sequence"),tD(TS,"initATNSimulator"),tD(Tk,"adaptivePredict"),tD(Tx,"performLookahead"),tD(TN,"computeLookaheadTarget"),tD(Tw,"reportLookaheadAmbiguity"),tD(TI,"buildAmbiguityError"),tD(T_,"getProductionDslName"),tD(TP,"buildAdaptivePredictError"),tD(TO,"getExistingTargetState"),tD(TD,"computeReachSet"),tD(TL,"getReachableTarget"),tD(TM,"getUniqueAlt"),tD(Tj,"newDFAState"),tD(TF,"addDFAEdge"),tD(TG,"addDFAState"),tD(Tz,"computeStartState"),tD(TK,"closure"),tD(Tq,"getEpsilonTarget"),tD(TU,"hasConfigInRuleStopState"),tD(TB,"allConfigsInRuleStopStates"),tD(TW,"hasConflictTerminatingPrediction"),tD(TV,"getConflictingAltSets"),tD(TH,"hasConflictingAltSet"),tD(TY,"hasStateAssociatedWithOneAlt"),tq();var TQ=class{static{tD(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(e){return this.rootNode=new T1(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let t=new TJ;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){let r=new TX(e.startOffset,e.image.length,iz(e),e.tokenType,!t);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){let t=e.container;if(t){let r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}addHiddenNodes(e){let t=[];for(let r of e){let e=new TX(r.startOffset,r.image.length,iz(r),r.tokenType,!0);e.root=this.rootNode,t.push(e)}let r=this.current,n=!1;if(r.content.length>0)return void r.content.push(...t);for(;r.container;){let e=r.container.content.indexOf(r);if(e>0){r.container.content.splice(e,0,...t),n=!0;break}r=r.container}n||this.rootNode.content.unshift(...t)}construct(e){let t=this.current;"string"!=typeof e.$type||e.$infixName||(this.current.astNode=e),e.$cstNode=t;let r=this.nodeStack.pop();r?.content.length===0&&this.removeNode(r)}},TZ=class{static{tD(this,"AbstractCstNode")}get hidden(){return!1}get astNode(){let e="string"==typeof this._astNode?.$type?this._astNode:this.container?.astNode;if(!e)throw Error("This node has no associated AST element");return e}set astNode(e){this._astNode=e}get text(){return this.root.fullText.substring(this.offset,this.end)}},TX=class extends TZ{static{tD(this,"LeafCstNodeImpl")}get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,r,n,i=!1){super(),this._hidden=i,this._offset=e,this._tokenType=n,this._length=t,this._range=r}},TJ=class extends TZ{static{tD(this,"CompositeCstNodeImpl")}constructor(){super(...arguments),this.content=new T0(this)}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(!e||!t)return{start:$.create(0,0),end:$.create(0,0)};if(void 0===this._rangeCache){let{range:r}=e,{range:n}=t;this._rangeCache={start:r.start,end:n.end.line<r.start.line?r.start:n.end}}return this._rangeCache}get firstNonHiddenNode(){for(let e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){let t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}},T0=class e extends Array{static{tD(this,"CstNodeContainer")}constructor(t){super(),this.parent=t,Object.setPrototypeOf(this,e.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(let t of e)t.container=this.parent}},T1=class extends TJ{static{tD(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}},T2=Symbol("Datatype");function T3(e){return e.$type===T2}tD(T3,"isDataTypeNode");var T4=tD(e=>e.endsWith("\u200B")?e:e+"\u200B","withRuleSuffix"),T9=class{static{tD(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;let t=this.lexer.definition,r="production"===e.LanguageMetaData.mode;e.shared.profilers.LangiumProfiler?.isActive("parsing")?this.wrapper=new vr(t,{...e.parser.ParserConfig,skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider},e.shared.profilers.LangiumProfiler.createTask("parsing",e.LanguageMetaData.languageId)):this.wrapper=new vt(t,{...e.parser.ParserConfig,skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider})}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},T5=class extends T9{static{tD(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new TQ,this.stack=[],this.assignmentMap=new Map,this.operatorPrecedence=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){let r,n=this.computeRuleType(e);nL(e)&&(r=e.name,this.registerPrecedenceMap(e));let i=this.wrapper.DEFINE_RULE(T4(e.name),this.startImplementation(n,r,t).bind(this));return this.allRules.set(e.name,i),n4(e)&&e.entry&&(this.mainRule=i),i}registerPrecedenceMap(e){let t=e.name,r=new Map;for(let t=0;t<e.operators.precedences.length;t++){let n=e.operators.precedences[t];for(let e of n.operators)r.set(e.value,{precedence:t,rightAssoc:"right"===n.associativity})}this.operatorPrecedence.set(t,r)}computeRuleType(e){if(nL(e))return aH(e);if(!e.fragment)if(aq(e))return T2;else return aH(e)}parse(e,t={}){this.nodeBuilder.buildRootNode(e);let r=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=r.tokens;let n=t.rule?this.allRules.get(t.rule):this.mainRule;if(!n)throw Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");let i=this.doParse(n);return this.nodeBuilder.addHiddenNodes(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,rq(i,{deep:!0}),{value:i,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}doParse(e){let t=this.wrapper.rule(e);if(this.stack.length>0&&(t=this.construct()),void 0===t)throw Error("No result from parser");if(this.stack.length>0)throw Error("Parser stack is not empty after parsing");return t}startImplementation(e,t,r){return n=>{let i=!this.isRecording()&&void 0!==e;if(i){let r={$type:e};this.stack.push(r),e===T2?r.value="":void 0!==t&&(r.$infixName=t)}return r(n),i?this.construct():void 0}}extractHiddenTokens(e){let t=this.lexerResult.hidden;if(!t.length)return[];let r=e.startOffset;for(let e=0;e<t.length;e++)if(t[e].startOffset>r)return t.splice(0,e);return t.splice(0,t.length)}consume(e,t,r){let n=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(n)){let e=this.extractHiddenTokens(n);this.nodeBuilder.addHiddenNodes(e);let t=this.nodeBuilder.buildLeafNode(n,r),{assignment:i,crossRef:a}=this.getAssignment(r),s=this.current;if(i){let e=nU(r)?n.image:this.converter.convert(n.image,t);this.assign(i.operator,i.feature,e,t,a)}else if(T3(s)){let e=n.image;nU(r)||(e=this.converter.convert(e,t).toString()),s.value+=e}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&"number"==typeof e.endOffset&&!isNaN(e.endOffset)}subrule(e,t,r,n,i){let a,s;this.isRecording()||r||(a=this.nodeBuilder.buildCompositeNode(n));try{s=this.wrapper.wrapSubrule(e,t,i)}finally{!this.isRecording()&&(void 0!==s||r||(s=this.construct()),void 0!==s&&a&&a.length>0&&this.performSubruleAssignment(s,n,a))}}performSubruleAssignment(e,t,r){let{assignment:n,crossRef:i}=this.getAssignment(t);if(n)this.assign(n.operator,n.feature,e,r,i);else if(!n){let t=this.current;if(T3(t))t.value+=e.toString();else if("object"==typeof e&&e){let r=this.assignWithoutOverride(e,t);this.stack.pop(),this.stack.push(r)}}}action(e,t){if(!this.isRecording()){let r=this.current;t.feature&&t.operator?(r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(r.$cstNode),this.stack.push({$type:e}),this.assign(t.operator,t.feature,r,r.$cstNode)):r.$type=e}}construct(){if(this.isRecording())return;let e=this.stack.pop();return(this.nodeBuilder.construct(e),"$infixName"in e)?this.constructInfix(e,this.operatorPrecedence.get(e.$infixName)):T3(e)?this.converter.convert(e.value,e.$cstNode):(r0(this.astReflection,e),e)}constructInfix(e,t){let r=e.parts;if(!Array.isArray(r)||0===r.length)return;let n=e.operators;if(!Array.isArray(n)||r.length<2)return r[0];let i=0,a=-1;for(let e=0;e<n.length;e++){let r=n[e],s=t.get(r)??{precedence:1/0,rightAssoc:!1};s.precedence>a?(a=s.precedence,i=e):s.precedence!==a||s.rightAssoc||(i=e)}let s=n.slice(0,i),o=n.slice(i+1),l=r.slice(0,i+1),u=r.slice(i+1),c={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:l,operators:s},p={$infixName:e.$infixName,$type:e.$type,$cstNode:e.$cstNode,parts:u,operators:o},f=this.constructInfix(c,t),d=this.constructInfix(p,t);return{$type:e.$type,$cstNode:e.$cstNode,left:f,operator:n[i],right:d}}getAssignment(e){if(!this.assignmentMap.has(e)){let t=rU(e,nf);this.assignmentMap.set(e,{assignment:t,crossRef:t&&nE(t.terminal)?t.terminal.isMulti?"multi":"single":void 0})}return this.assignmentMap.get(e)}assign(e,t,r,n,i){let a,s=this.current;switch(a="single"===i&&"string"==typeof r?this.linker.buildReference(s,t,n,r):"multi"===i&&"string"==typeof r?this.linker.buildMultiReference(s,t,n,r):r,e){case"=":s[t]=a;break;case"?=":s[t]=!0;break;case"+=":Array.isArray(s[t])||(s[t]=[]),s[t].push(a)}}assignWithoutOverride(e,t){for(let[r,n]of Object.entries(t)){let t=e[r];void 0===t?e[r]=n:Array.isArray(t)&&Array.isArray(n)&&(n.push(...t),e[r]=n)}let r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}},T6=class{static{tD(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return f2.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return f2.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return f2.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return f2.buildEarlyExitMessage(e)}},T7=class extends T6{static{tD(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:t}){let r=e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`;return`Expecting ${r} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},T8=class extends T9{static{tD(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){let r=this.wrapper.DEFINE_RULE(T4(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{let r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,n,i){this.before(n),this.wrapper.wrapSubrule(e,t,i),this.after(n)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}},ve={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new T7},vt=class extends mD{static{tD(this,"ChevrotainWrapper")}constructor(e,t){let r=t&&"maxLookahead"in t;super(e,{...ve,lookaheadStrategy:r?new d8({maxLookahead:t.maxLookahead}):new TA({logging:t.skipValidations?()=>{}:void 0}),...t})}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t,r){return this.RULE(e,t,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t,void 0)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}rule(e){return e.call(this,{})}},vr=class extends vt{static{tD(this,"ProfilerWrapper")}constructor(e,t,r){super(e,t),this.task=r}rule(e){this.task.start(),this.task.startSubTask(this.ruleName(e));try{return super.rule(e)}finally{this.task.stopSubTask(this.ruleName(e)),this.task.stop()}}ruleName(e){return e.ruleName}subrule(e,t,r){this.task.startSubTask(this.ruleName(t));try{return super.subrule(e,t,r)}finally{this.task.stopSubTask(this.ruleName(t))}}};function vn(e,t,r){return vi({parser:t,tokens:r,ruleNames:new Map},e),t}function vi(e,t){let r=aC(t,!1);for(let n of rG(t.rules).filter(n4).filter(e=>r.has(e))){let t={...e,consume:1,optional:1,subrule:1,many:1,or:1};e.parser.rule(n,vs(t,n.definition))}for(let n of rG(t.rules).filter(nL).filter(e=>r.has(e)))e.parser.rule(n,va(e,n))}function va(e,t){let r,n=t.call.rule.ref;if(!n)throw Error("Could not resolve reference to infix operator rule: "+t.call.rule.$refText);if(iy(n))throw Error("Cannot use terminal rule in infix expression");let i=t.operators.precedences.flatMap(e=>e.operators),a={$type:"Group",elements:[]},s={$container:a,$type:"Assignment",feature:"parts",operator:"+=",terminal:t.call},o={$container:a,$type:"Group",elements:[],cardinality:"*"};a.elements.push(s,o);let l={$container:o,$type:"Assignment",feature:"operators",operator:"+=",terminal:{$type:"Alternatives",elements:i}},u={...s,$container:o};o.elements.push(l,u);let c=i.map(t=>e.tokens[t.value]).map((t,r)=>({ALT:tD(()=>e.parser.consume(r,t,l),"ALT")}));return t=>{r??(r=vT(e,n)),e.parser.subrule(0,r,!1,s,t),e.parser.many(0,{DEF:tD(()=>{e.parser.alternatives(0,c),e.parser.subrule(1,r,!1,u,t)},"DEF")})}}function vs(e,t,r=!1){let n;if(nU(t))n=vy(e,t);else if(ni(t))n=vo(e,t);else if(nf(t))n=vs(e,t.terminal);else if(nE(t))n=vh(e,t);else if(ir(t))n=vl(e,t);else if(ns(t))n=vp(e,t);else if(ix(t))n=vf(e,t);else if(n_(t))n=vd(e,t);else if(nS(t)){let r=e.consume++;n=tD(()=>e.parser.consume(r,fJ,t),"method")}else throw new i9(t.$cstNode,`Unexpected element type: ${t.$type}`);return vg(e,r?void 0:vm(t),n,t.cardinality)}function vo(e,t){let r=aH(t);return()=>e.parser.action(r,t)}function vl(e,t){let r=t.rule.ref;if(r7(r)){let n,i=e.subrule++,a=n4(r)&&r.fragment,s=t.arguments.length>0?vu(r,t.arguments):()=>({});return o=>{n??(n=vT(e,r)),e.parser.subrule(i,n,a,t,s(o))}}if(iy(r)){let n=e.consume++,i=v$(e,r.name);return()=>e.parser.consume(n,i,t)}if(r)i5(r);else throw new i9(t.$cstNode,`Undefined rule: ${t.rule.$refText}`)}function vu(e,t){if(t.some(e=>e.calledByName)){let e=t.map(e=>({parameterName:e.parameter?.ref?.name,predicate:vc(e.value)}));return t=>{let r={};for(let{parameterName:n,predicate:i}of e)n&&(r[n]=i(t));return r}}{let r=t.map(e=>vc(e.value));return t=>{let n={};for(let i=0;i<r.length;i++)if(i<e.parameters.length){let a=e.parameters[i].name,s=r[i];n[a]=s(t)}return n}}}function vc(e){if(nA(e)){let t=vc(e.left),r=vc(e.right);return e=>t(e)||r(e)}if(n$(e)){let t=vc(e.left),r=vc(e.right);return e=>t(e)&&r(e)}if(nQ(e)){let t=vc(e.value);return e=>!t(e)}if(n2(e)){let t=e.parameter.ref.name;return e=>void 0!==e&&!0===e[t]}if(nm(e)){let t=!!e.true;return()=>t}i5(e)}function vp(e,t){if(1===t.elements.length)return vs(e,t.elements[0]);{let r=[];for(let n of t.elements){let t={ALT:vs(e,n,!0)},i=vm(n);i&&(t.GATE=vc(i)),r.push(t)}let n=e.or++;return t=>e.parser.alternatives(n,r.map(e=>{let r={ALT:tD(()=>e.ALT(t),"ALT")},n=e.GATE;return n&&(r.GATE=()=>n(t)),r}))}}function vf(e,t){if(1===t.elements.length)return vs(e,t.elements[0]);let r=[];for(let n of t.elements){let t={ALT:vs(e,n,!0)},i=vm(n);i&&(t.GATE=vc(i)),r.push(t)}let n=e.or++,i=tD((e,t)=>{let r=t.getRuleStack().join("-");return`uGroup_${e}_${r}`},"idFunc"),a=tD(t=>e.parser.alternatives(n,r.map((r,a)=>{let s={ALT:tD(()=>!0,"ALT")},o=e.parser;s.ALT=()=>{if(r.ALT(t),!o.isRecording()){let e=i(n,o);o.unorderedGroups.get(e)||o.unorderedGroups.set(e,[]);let t=o.unorderedGroups.get(e);void 0===t?.[a]&&(t[a]=!0)}};let l=r.GATE;return l?s.GATE=()=>l(t):s.GATE=()=>{let e=o.unorderedGroups.get(i(n,o));return!e?.[a]},s})),"alternatives"),s=vg(e,vm(t),a,"*");return t=>{s(t),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(n,e.parser))}}function vd(e,t){let r=t.elements.map(t=>vs(e,t));return e=>r.forEach(t=>t(e))}function vm(e){if(n_(e))return e.guardCondition}function vh(e,t,r=t.terminal){if(r)if(ir(r)&&n4(r.rule.ref)){let n,i=r.rule.ref,a=e.subrule++;return r=>{n??(n=vT(e,i)),e.parser.subrule(a,n,!1,t,r)}}else if(ir(r)&&iy(r.rule.ref)){let n=e.consume++,i=v$(e,r.rule.ref.name);return()=>e.parser.consume(n,i,t)}else if(nU(r)){let n=e.consume++,i=v$(e,r.value);return()=>e.parser.consume(n,i,t)}else throw Error("Could not build cross reference parser");{if(!t.type.ref)throw Error("Could not resolve reference to type: "+t.type.$refText);let r=aM(t.type.ref),n=r?.terminal;if(!n)throw Error("Could not find name assignment for type: "+aH(t.type.ref));return vh(e,t,n)}}function vy(e,t){let r=e.consume++,n=e.tokens[t.value];if(!n)throw Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(r,n,t)}function vg(e,t,r,n){let i=t&&vc(t);if(!n)if(!i)return r;else{let t=e.or++;return n=>e.parser.alternatives(t,[{ALT:tD(()=>r(n),"ALT"),GATE:tD(()=>i(n),"GATE")},{ALT:mP(),GATE:tD(()=>!i(n),"GATE")}])}if("*"===n){let t=e.many++;return n=>e.parser.many(t,{DEF:tD(()=>r(n),"DEF"),GATE:i?()=>i(n):void 0})}if("+"===n){let t=e.many++;if(!i)return n=>e.parser.atLeastOne(t,{DEF:tD(()=>r(n),"DEF")});{let n=e.or++;return a=>e.parser.alternatives(n,[{ALT:tD(()=>e.parser.atLeastOne(t,{DEF:tD(()=>r(a),"DEF")}),"ALT"),GATE:tD(()=>i(a),"GATE")},{ALT:mP(),GATE:tD(()=>!i(a),"GATE")}])}}if("?"===n){let t=e.optional++;return n=>e.parser.optional(t,{DEF:tD(()=>r(n),"DEF"),GATE:i?()=>i(n):void 0})}i5(n)}function vT(e,t){let r=vv(e,t),n=e.parser.getRule(r);if(!n)throw Error(`Rule "${r}" not found."`);return n}function vv(e,t){if(r7(t))return t.name;{if(e.ruleNames.has(t))return e.ruleNames.get(t);let r=t,n=r.$container,i=t.$type;for(;!n4(n);)(n_(n)||ns(n)||ix(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,e.ruleNames.set(t,i),i}}function v$(e,t){let r=e.tokens[t];if(!r)throw Error(`Token "${t}" not found."`);return r}function vR(e){let t=e.Grammar,r=e.parser.Lexer,n=new T8(e);return vn(t,n,r.definition),n.finalize(),n}function vE(e){let t=vb(e);return t.finalize(),t}function vb(e){let t=e.Grammar,r=e.parser.Lexer;return vn(t,new T5(e),r.definition)}tD(vn,"createParser"),tD(vi,"buildRules"),tD(va,"buildInfixRule"),tD(vs,"buildElement"),tD(vo,"buildAction"),tD(vl,"buildRuleCall"),tD(vu,"buildRuleCallPredicate"),tD(vc,"buildPredicate"),tD(vp,"buildAlternatives"),tD(vf,"buildUnorderedGroup"),tD(vd,"buildGroup"),tD(vm,"getGuardCondition"),tD(vh,"buildCrossReference"),tD(vy,"buildKeyword"),tD(vg,"wrap"),tD(vT,"getRule"),tD(vv,"getRuleName"),tD(v$,"getToken"),tD(vR,"createCompletionParser"),tD(vE,"createLangiumParser"),tD(vb,"prepareLangiumParser");var vA=class{static{tD(this,"DefaultTokenBuilder")}constructor(){this.diagnostics=[]}buildTokens(e,t){let r=rG(aC(e,!1)),n=this.buildTerminalTokens(r),i=this.buildKeywordTokens(r,n,t);return i.push(...n),i}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(iy).filter(e=>!e.fragment).map(e=>this.buildTerminalToken(e)).toArray()}buildTerminalToken(e){let t=aX(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,n={name:e.name,PATTERN:r};return"function"==typeof r&&(n.LINE_BREAKS=!0),e.hidden&&(n.GROUP=av(t)?fG.SKIPPED:"hidden"),n}requiresCustomPattern(e){return!!(e.flags.includes("u")||e.flags.includes("s"))}regexPatternFunction(e){let t=RegExp(e,e.flags+"y");return(e,r)=>(t.lastIndex=r,t.exec(e))}buildKeywordTokens(e,t,r){return e.filter(r7).flatMap(e=>rQ(e).filter(nU)).distinct(e=>e.value).toArray().sort((e,t)=>t.value.length-e.value.length).map(e=>this.buildKeywordToken(e,t,!!r?.caseInsensitive))}buildKeywordToken(e,t,r){let n=this.buildKeywordPattern(e,r),i={name:e.value,PATTERN:n,LONGER_ALT:this.findLongerAlt(e,t)};return"function"==typeof n&&(i.LINE_BREAKS=!0),i}buildKeywordPattern(e,t){return t?RegExp(a$(e.value),"i"):e.value}findLongerAlt(e,t){return t.reduce((t,r)=>{let n=r?.PATTERN;return n?.source&&aR("^"+n.source+"$",e.value)&&t.push(r),t},[])}},vC=class{static{tD(this,"DefaultValueConverter")}convert(e,t){let r=t.grammarSource;if(nE(r)&&(r=ax(r)),ir(r)){let n=r.rule.ref;if(!n)throw Error("This cst node was not parsed by a rule.");return this.runConverter(n,e,t)}return e}runConverter(e,t,r){switch(e.name.toUpperCase()){case"INT":return eJ.convertInt(t);case"STRING":return eJ.convertString(t);case"ID":return eJ.convertID(t)}switch(aZ(e)?.toLowerCase()){case"number":return eJ.convertNumber(t);case"boolean":return eJ.convertBoolean(t);case"bigint":return eJ.convertBigint(t);case"date":return eJ.convertDate(t);default:return t}}};!function(e){function t(e){let t="";for(let n=1;n<e.length-1;n++){let i=e.charAt(n);"\\"===i?t+=r(e.charAt(++n)):t+=i}return t}function r(e){switch(e){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return e}}function n(e){return"^"===e.charAt(0)?e.substring(1):e}function i(e){return parseInt(e)}function a(e){return BigInt(e)}function s(e){return new Date(e)}function o(e){return Number(e)}function l(e){return"true"===e.toLowerCase()}tD(t,"convertString"),e.convertString=t,tD(r,"convertEscapeCharacter"),tD(n,"convertID"),e.convertID=n,tD(i,"convertInt"),e.convertInt=i,tD(a,"convertBigint"),e.convertBigint=a,tD(s,"convertDate"),e.convertDate=s,tD(o,"convertNumber"),e.convertNumber=o,tD(l,"convertBoolean"),e.convertBoolean=l}(eJ||(eJ={}));var vS={};function vk(){return new Promise(e=>{"u"<typeof setImmediate?setTimeout(e,0):setImmediate(e)})}tF(vS,tG(tV(),1)),tD(vk,"delayNextTick");var vx=0,vN=10;function vw(){return vx=performance.now(),new vS.CancellationTokenSource}function vI(e){vN=e}tD(vw,"startCancelableOperation"),tD(vI,"setInterruptionPeriod");var v_=Symbol("OperationCancelled");function vP(e){return e===v_}async function vO(e){if(e===vS.CancellationToken.None)return;let t=performance.now();if(t-vx>=vN&&(vx=t,await vk(),vx=performance.now()),e.isCancellationRequested)throw v_}tD(vP,"isOperationCancelled"),tD(vO,"interruptAndCheck");var vD=class{static{tD(this,"Deferred")}constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)})}},vL=class e{static{tD(this,"FullTextDocument")}constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(t,r){for(let r of t)if(e.isIncremental(r)){let e=vG(r.range),t=this.offsetAt(e.start),n=this.offsetAt(e.end);this._content=this._content.substring(0,t)+r.text+this._content.substring(n,this._content.length);let i=Math.max(e.start.line,0),a=Math.max(e.end.line,0),s=this._lineOffsets,o=vj(r.text,!1,t);if(a-i===o.length)for(let e=0,t=o.length;e<t;e++)s[e+i+1]=o[e];else o.length<1e4?s.splice(i+1,a-i,...o):this._lineOffsets=s=s.slice(0,i+1).concat(o,s.slice(a+1));let l=r.text.length-(n-t);if(0!==l)for(let e=i+1+o.length,t=s.length;e<t;e++)s[e]=s[e]+l}else if(e.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw Error("Unknown change event received");this._version=r}getLineOffsets(){return void 0===this._lineOffsets&&(this._lineOffsets=vj(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(0===n)return{line:0,character:e};for(;r<n;){let i=Math.floor((r+n)/2);t[i]>e?n=i:r=i+1}let i=r-1;return e=this.ensureBeforeEOL(e,t[i]),{line:i,character:e-t[i]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line];if(e.character<=0)return r;let n=e.line+1<t.length?t[e.line+1]:this._content.length,i=Math.min(r+e.character,n);return this.ensureBeforeEOL(i,r)}ensureBeforeEOL(e,t){for(;e>t&&vF(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){return null!=e&&"string"==typeof e.text&&void 0!==e.range&&(void 0===e.rangeLength||"number"==typeof e.rangeLength)}static isFull(e){return null!=e&&"string"==typeof e.text&&void 0===e.range&&void 0===e.rangeLength}};function vM(e,t){if(e.length<=1)return e;let r=e.length/2|0,n=e.slice(0,r),i=e.slice(r);vM(n,t),vM(i,t);let a=0,s=0,o=0;for(;a<n.length&&s<i.length;)0>=t(n[a],i[s])?e[o++]=n[a++]:e[o++]=i[s++];for(;a<n.length;)e[o++]=n[a++];for(;s<i.length;)e[o++]=i[s++];return e}function vj(e,t,r=0){let n=t?[r]:[];for(let t=0;t<e.length;t++){let i=e.charCodeAt(t);vF(i)&&(13===i&&t+1<e.length&&10===e.charCodeAt(t+1)&&t++,n.push(r+t+1))}return n}function vF(e){return 13===e||10===e}function vG(e){let t=e.start,r=e.end;return t.line>r.line||t.line===r.line&&t.character>r.character?{start:r,end:t}:e}function vz(e){let t=vG(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){function t(e,t,r,n){return new vL(e,t,r,n)}function r(e,t,r){if(e instanceof vL)return e.update(t,r),e;throw Error("TextDocument.update: document must be created by TextDocument.create")}function n(e,t){let r=e.getText(),n=vM(t.map(vz),(e,t)=>{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),i=0,a=[];for(let t of n){let n=e.offsetAt(t.range.start);if(n<i)throw Error("Overlapping edit");n>i&&a.push(r.substring(i,n)),t.newText.length&&a.push(t.newText),i=e.offsetAt(t.range.end)}return a.push(r.substr(i)),a.join("")}tD(t,"create"),e.create=t,tD(r,"update"),e.update=r,tD(n,"applyEdits"),e.applyEdits=n}(e0||(e0={})),tD(vM,"mergeSort"),tD(vj,"computeLineOffsets"),tD(vF,"isEOL"),tD(vG,"getWellformedRange"),tD(vz,"getWellformedEdit"),(()=>{let e;var t,r,n={975:e=>{function t(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function r(e,t){for(var r,n="",i=0,a=-1,s=0,o=0;o<=e.length;++o){if(o<e.length)r=e.charCodeAt(o);else{if(47===r)break;r=47}if(47===r){if(a===o-1||1===s);else if(a!==o-1&&2===s){if(n.length<2||2!==i||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2)){if(n.length>2){var l=n.lastIndexOf("/");if(l!==n.length-1){-1===l?(n="",i=0):i=(n=n.slice(0,l)).length-1-n.lastIndexOf("/"),a=o,s=0;continue}}else if(2===n.length||1===n.length){n="",i=0,a=o,s=0;continue}}t&&(n.length>0?n+="/..":n="..",i=2)}else n.length>0?n+="/"+e.slice(a+1,o):n=e.slice(a+1,o),i=o-a-1;a=o,s=0}else 46===r&&-1!==s?++s:s=-1}return n}tD(t,"e"),tD(r,"r");var n={resolve:tD(function(){for(var e,n,i="",a=!1,s=arguments.length-1;s>=-1&&!a;s--)s>=0?e=arguments[s]:(void 0===n&&(n=process.cwd()),e=n),t(e),0!==e.length&&(i=e+"/"+i,a=47===e.charCodeAt(0));return i=r(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},"resolve"),normalize:tD(function(e){if(t(e),0===e.length)return".";var n=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=r(e,!n)).length||n||(e="."),e.length>0&&i&&(e+="/"),n?"/"+e:e},"normalize"),isAbsolute:tD(function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},"isAbsolute"),join:tD(function(){if(0==arguments.length)return".";for(var e,r=0;r<arguments.length;++r){var i=arguments[r];t(i),i.length>0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":n.normalize(e)},"join"),relative:tD(function(e,r){if(t(e),t(r),e===r||(e=n.resolve(e))===(r=n.resolve(r)))return"";for(var i=1;i<e.length&&47===e.charCodeAt(i);++i);for(var a=e.length,s=a-i,o=1;o<r.length&&47===r.charCodeAt(o);++o);for(var l=r.length-o,u=s<l?s:l,c=-1,p=0;p<=u;++p){if(p===u){if(l>u){if(47===r.charCodeAt(o+p))return r.slice(o+p+1);if(0===p)return r.slice(o+p)}else s>u&&(47===e.charCodeAt(i+p)?c=p:0===p&&(c=0));break}var f=e.charCodeAt(i+p);if(f!==r.charCodeAt(o+p))break;47===f&&(c=p)}var d="";for(p=i+c+1;p<=a;++p)p!==a&&47!==e.charCodeAt(p)||(0===d.length?d+="..":d+="/..");return d.length>0?d+r.slice(o+c):(o+=c,47===r.charCodeAt(o)&&++o,r.slice(o))},"relative"),_makeLong:tD(function(e){return e},"_makeLong"),dirname:tD(function(e){if(t(e),0===e.length)return".";for(var r=e.charCodeAt(0),n=47===r,i=-1,a=!0,s=e.length-1;s>=1;--s)if(47===(r=e.charCodeAt(s))){if(!a){i=s;break}}else a=!1;return -1===i?n?"/":".":n&&1===i?"//":e.slice(0,i)},"dirname"),basename:tD(function(e,r){if(void 0!==r&&"string"!=typeof r)throw TypeError('"ext" argument must be a string');t(e);var n,i=0,a=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var o=r.length-1,l=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!s){i=n+1;break}}else -1===l&&(s=!1,l=n+1),o>=0&&(u===r.charCodeAt(o)?-1==--o&&(a=n):(o=-1,a=l))}return i===a?a=l:-1===a&&(a=e.length),e.slice(i,a)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!s){i=n+1;break}}else -1===a&&(s=!1,a=n+1);return -1===a?"":e.slice(i,a)},"basename"),extname:tD(function(e){t(e);for(var r=-1,n=0,i=-1,a=!0,s=0,o=e.length-1;o>=0;--o){var l=e.charCodeAt(o);if(47!==l)-1===i&&(a=!1,i=o+1),46===l?-1===r?r=o:1!==s&&(s=1):-1!==r&&(s=-1);else if(!a){n=o+1;break}}return -1===r||-1===i||0===s||1===s&&r===i-1&&r===n+1?"":e.slice(r,i)},"extname"),format:tD(function(e){var t,r;if(null===e||"object"!=typeof e)throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return t=e.dir||e.root,r=e.base||(e.name||"")+(e.ext||""),t?t===e.root?t+r:t+"/"+r:r},"format"),parse:tD(function(e){t(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return r;var n,i=e.charCodeAt(0),a=47===i;a?(r.root="/",n=1):n=0;for(var s=-1,o=0,l=-1,u=!0,c=e.length-1,p=0;c>=n;--c)if(47!==(i=e.charCodeAt(c)))-1===l&&(u=!1,l=c+1),46===i?-1===s?s=c:1!==p&&(p=1):-1!==s&&(p=-1);else if(!u){o=c+1;break}return -1===s||-1===l||0===p||1===p&&s===l-1&&s===o+1?-1!==l&&(r.base=r.name=0===o&&a?e.slice(1,l):e.slice(o,l)):(0===o&&a?(r.name=e.slice(1,s),r.base=e.slice(1,l)):(r.name=e.slice(o,s),r.base=e.slice(o,l)),r.ext=e.slice(s,l)),o>0?r.dir=e.slice(0,o-1):a&&(r.dir="/"),r},"parse"),sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,e.exports=n}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return n[e](r,r.exports,a),r.exports}tD(a,"r"),a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};(a.r(s),a.d(s,{URI:tD(()=>f,"URI"),Utils:tD(()=>r,"Utils")}),"object"==typeof process)?e="win32"===process.platform:"object"==typeof navigator&&(e=navigator.userAgent.indexOf("Windows")>=0);let o=/^\w[\w\d+.-]*$/,l=/^\//,u=/^\/\//;function c(e,t){if(!e.scheme&&t)throw Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!o.test(e.scheme))throw Error("[UriError]: Scheme contains illegal characters.");if(e.path){if(e.authority){if(!l.test(e.path))throw Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(u.test(e.path))throw Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}tD(c,"a");let p=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class f{static{tD(this,"l")}static isUri(e){return e instanceof f||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}scheme;authority;path;query;fragment;constructor(e,t,r,n,i,a=!1){"object"==typeof e?(this.scheme=e.scheme||"",this.authority=e.authority||"",this.path=e.path||"",this.query=e.query||"",this.fragment=e.fragment||""):(this.scheme=e||a?e:"file",this.authority=t||"",this.path=function(e,t){switch(e){case"https":case"http":case"file":t?"/"!==t[0]&&(t="/"+t):t="/"}return t}(this.scheme,r||""),this.query=n||"",this.fragment=i||"",c(this,a))}get fsPath(){return T(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:r,path:n,query:i,fragment:a}=e;return void 0===t?t=this.scheme:null===t&&(t=""),void 0===r?r=this.authority:null===r&&(r=""),void 0===n?n=this.path:null===n&&(n=""),void 0===i?i=this.query:null===i&&(i=""),void 0===a?a=this.fragment:null===a&&(a=""),t===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&a===this.fragment?this:new m(t,r,n,i,a)}static parse(e,t=!1){let r=p.exec(e);return r?new m(r[2]||"",E(r[4]||""),E(r[5]||""),E(r[7]||""),E(r[9]||""),t):new m("","","","","")}static file(t){let r="";if(e&&(t=t.replace(/\\/g,"/")),"/"===t[0]&&"/"===t[1]){let e=t.indexOf("/",2);-1===e?(r=t.substring(2),t="/"):(r=t.substring(2,e),t=t.substring(e)||"/")}return new m("file",r,t,"","")}static from(e){let t=new m(e.scheme,e.authority,e.path,e.query,e.fragment);return c(t,!0),t}toString(e=!1){return v(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof f)return e;{let t=new m(e);return t._formatted=e.external,t._fsPath=e._sep===d?e.fsPath:null,t}}return e}}let d=e?1:void 0;class m extends f{static{tD(this,"d")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=T(this,!1)),this._fsPath}toString(e=!1){return e?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=d),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}let h={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function y(e,t,r){let n,i=-1;for(let a=0;a<e.length;a++){let s=e.charCodeAt(a);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||t&&47===s||r&&91===s||r&&93===s||r&&58===s)-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),void 0!==n&&(n+=e.charAt(a));else{void 0===n&&(n=e.substr(0,a));let t=h[s];void 0!==t?(-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),n+=t):-1===i&&(i=a)}}return -1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function g(e){let t;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);35===n||63===n?(void 0===t&&(t=e.substr(0,r)),t+=h[n]):void 0!==t&&(t+=e[r])}return void 0!==t?t:e}function T(t,r){let n;return n=t.authority&&t.path.length>1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&90>=t.path.charCodeAt(1)||t.path.charCodeAt(1)>=97&&122>=t.path.charCodeAt(1))&&58===t.path.charCodeAt(2)?r?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(n=n.replace(/\//g,"\\")),n}function v(e,t){let r=t?g:y,n="",{scheme:i,authority:a,path:s,query:o,fragment:l}=e;if(i&&(n+=i,n+=":"),(a||"file"===i)&&(n+="/",n+="/"),a){let e=a.indexOf("@");if(-1!==e){let t=a.substr(0,e);a=a.substr(e+1),-1===(e=t.lastIndexOf(":"))?n+=r(t,!1,!1):(n+=r(t.substr(0,e),!1,!1),n+=":",n+=r(t.substr(e+1),!1,!0)),n+="@"}-1===(e=(a=a.toLowerCase()).lastIndexOf(":"))?n+=r(a,!1,!0):(n+=r(a.substr(0,e),!1,!0),n+=a.substr(e))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){let e=s.charCodeAt(1);e>=65&&e<=90&&(s=`/${String.fromCharCode(e+32)}:${s.substr(3)}`)}else if(s.length>=2&&58===s.charCodeAt(1)){let e=s.charCodeAt(0);e>=65&&e<=90&&(s=`${String.fromCharCode(e+32)}:${s.substr(2)}`)}n+=r(s,!0,!1)}return o&&(n+="?",n+=r(o,!1,!1)),l&&(n+="#",n+=t?l:y(l,!1,!1)),n}function $(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+$(e.substr(3)):e}}tD(y,"m"),tD(g,"y"),tD(T,"v"),tD(v,"b"),tD($,"C");let R=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(e){return e.match(R)?e.replace(R,e=>$(e)):e}tD(E,"w");var b=a(975);let A=b.posix||b;(t=r||(r={})).joinPath=function(e,...t){return e.with({path:A.join(e.path,...t)})},t.resolvePath=function(e,...t){let r=e.path,n=!1;"/"!==r[0]&&(r="/"+r,n=!0);let i=A.resolve(r,...t);return n&&"/"===i[0]&&!e.authority&&(i=i.substring(1)),e.with({path:i})},t.dirname=function(e){if(0===e.path.length||"/"===e.path)return e;let t=A.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},t.basename=function(e){return A.basename(e.path)},t.extname=function(e){return A.extname(e.path)},e1=s})();var{URI:vK,Utils:vq}=e1;!function(e){e.basename=vq.basename,e.dirname=vq.dirname,e.extname=vq.extname,e.joinPath=vq.joinPath,e.resolvePath=vq.resolvePath;let t="object"==typeof process&&process?.platform==="win32";function r(e,t){return e?.toString()===t?.toString()}function n(e,r){let n="string"==typeof e?vK.parse(e).path:e.path,i="string"==typeof r?vK.parse(r).path:r.path,a=n.split("/").filter(e=>e.length>0),s=i.split("/").filter(e=>e.length>0);if(t){let e=/^[A-Z]:$/;if(a[0]&&e.test(a[0])&&(a[0]=a[0].toLowerCase()),s[0]&&e.test(s[0])&&(s[0]=s[0].toLowerCase()),a[0]!==s[0])return i.substring(1)}let o=0;for(;o<a.length&&a[o]===s[o];o++);return"../".repeat(a.length-o)+s.slice(o).join("/")}function i(e){return vK.parse(e.toString()).toString()}function a(e,t){let r="string"==typeof e?e:e.path,n="string"==typeof t?t:t.path;return"/"===n.charAt(n.length-1)&&(n=n.slice(0,-1)),"/"===r.charAt(r.length-1)&&(r=r.slice(0,-1)),n===r||!(n.length<r.length)&&"/"===n.charAt(r.length)&&n.startsWith(r)}tD(r,"equals"),e.equals=r,tD(n,"relative"),e.relative=n,tD(i,"normalize"),e.normalize=i,tD(a,"contains"),e.contains=a}(e2||(e2={}));var vU=class{static{tD(this,"UriTrie")}constructor(){this.root={name:"",children:new Map}}normalizeUri(e){return e2.normalize(e)}clear(){this.root.children.clear()}insert(e,t){this.getNode(this.normalizeUri(e),!0).element=t}delete(e){let t=this.getNode(this.normalizeUri(e),!1);t?.parent&&t.parent.children.delete(t.name)}has(e){return this.getNode(this.normalizeUri(e),!1)?.element!==void 0}hasNode(e){return void 0!==this.getNode(this.normalizeUri(e),!1)}find(e){return this.getNode(this.normalizeUri(e),!1)?.element}findNode(e){let t=this.normalizeUri(e),r=this.getNode(t,!1);if(r)return{name:r.name,uri:e2.joinPath(vK.parse(t),r.name).toString(),element:r.element}}findChildren(e){let t=this.normalizeUri(e),r=this.getNode(t,!1);return r?Array.from(r.children.values()).map(e=>({name:e.name,uri:e2.joinPath(vK.parse(t),e.name).toString(),element:e.element})):[]}all(){return this.collectValues(this.root)}findAll(e){let t=this.getNode(e2.normalize(e),!1);return t?this.collectValues(t):[]}getNode(e,t){let r=e.split("/");"/"===e.charAt(e.length-1)&&r.pop();let n=this.root;for(let e of r){let r=n.children.get(e);if(!r)if(!t)return;else r={name:e,children:new Map,parent:n},n.children.set(e,r);n=r}return n}collectValues(e){let t=[];for(let r of(e.element&&t.push(e.element),e.children.values()))t.push(...this.collectValues(r));return t}};(f=e3||(e3={}))[f.Changed=0]="Changed",f[f.Parsed=1]="Parsed",f[f.IndexedContent=2]="IndexedContent",f[f.ComputedScopes=3]="ComputedScopes",f[f.Linked=4]="Linked",f[f.IndexedReferences=5]="IndexedReferences",f[f.Validated=6]="Validated";var vB=class{static{tD(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=vS.CancellationToken.None){let r=await this.fileSystemProvider.readFile(e);return this.createAsync(e,r,t)}fromTextDocument(e,t,r){return(t=t??vK.parse(e.uri),vS.CancellationToken.is(r))?this.createAsync(t,e,r):this.create(t,e,r)}fromString(e,t,r){return vS.CancellationToken.is(r)?this.createAsync(t,e,r):this.create(t,e,r)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,r){if("string"==typeof t){let n=this.parse(e,t,r);return this.createLangiumDocument(n,e,void 0,t)}if("$model"in t){let r={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(r,e)}{let n=this.parse(e,t.getText(),r);return this.createLangiumDocument(n,e,t)}}async createAsync(e,t,r){if("string"==typeof t){let n=await this.parseAsync(e,t,r);return this.createLangiumDocument(n,e,void 0,t)}{let n=await this.parseAsync(e,t.getText(),r);return this.createLangiumDocument(n,e,t)}}createLangiumDocument(e,t,r,n){let i;if(r)i={parseResult:e,uri:t,state:e3.Parsed,references:[],textDocument:r};else{let r=this.createTextDocumentGetter(t,n);i={parseResult:e,uri:t,state:e3.Parsed,references:[],get textDocument(){return r()}}}return e.value.$document=i,i}async update(e,t){let r=e.parseResult.value.$cstNode?.root.fullText,n=this.textDocuments?.get(e.uri.toString()),i=n?n.getText():await this.fileSystemProvider.readFile(e.uri);if(n)Object.defineProperty(e,"textDocument",{value:n});else{let t=this.createTextDocumentGetter(e.uri,i);Object.defineProperty(e,"textDocument",{get:t})}return r!==i&&(e.parseResult=await this.parseAsync(e.uri,i,t),e.parseResult.value.$document=e),e.state=e3.Parsed,e}parse(e,t,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,r)}parseAsync(e,t,r){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,r)}createTextDocumentGetter(e,t){let r,n=this.serviceRegistry;return()=>r??(r=e0.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t??""))}},vW=class{static{tD(this,"DefaultLangiumDocuments")}constructor(e){this.documentTrie=new vU,this.services=e,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.documentBuilder=()=>e.workspace.DocumentBuilder}get all(){return rG(this.documentTrie.all())}addDocument(e){let t=e.uri.toString();if(this.documentTrie.has(t))throw Error(`A document with the URI '${t}' is already present.`);this.documentTrie.insert(t,e)}getDocument(e){let t=e.toString();return this.documentTrie.find(t)}getDocuments(e){let t=e.toString();return this.documentTrie.findAll(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r)),r}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(e=>(this.addDocument(e),e));{let r=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(r),r}}hasDocument(e){return this.documentTrie.has(e.toString())}invalidateDocument(e){let t=e.toString(),r=this.documentTrie.find(t);return r&&this.documentBuilder().resetToState(r,e3.Changed),r}deleteDocument(e){let t=e.toString(),r=this.documentTrie.find(t);return r&&(r.state=e3.Changed,this.documentTrie.delete(t)),r}deleteDocuments(e){let t=e.toString(),r=this.documentTrie.findAll(t);for(let e of r)e.state=e3.Changed;return this.documentTrie.delete(t),r}},vV=Symbol("RefResolving"),vH=class{static{tD(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async link(e,t=vS.CancellationToken.None){if(this.profiler?.isActive("linking")){let r=this.profiler.createTask("linking",this.languageId);r.start();try{for(let n of rZ(e.parseResult.value))await vO(t),rJ(n).forEach(t=>{let i=`${n.$type}:${t.property}`;r.startSubTask(i);try{this.doLink(t,e)}finally{r.stopSubTask(i)}})}finally{r.stop()}}else for(let r of rZ(e.parseResult.value))await vO(t),rJ(r).forEach(t=>this.doLink(t,e))}doLink(e,t){let r=e.reference;if("_ref"in r&&void 0===r._ref){r._ref=vV;try{let t=this.getCandidate(e);rw(t)?r._ref=t:(r._nodeDescription=t,r._ref=this.loadAstNode(t)??this.createLinkingError(e,t))}catch(n){console.error(`An error occurred while resolving reference to '${r.$refText}':`,n);let t=n.message??String(n);r._ref={info:e,message:`An error occurred while resolving reference to '${r.$refText}': ${t}`}}t.references.push(r)}else if("_items"in r&&void 0===r._items){r._items=vV;try{let t=this.getCandidates(e),n=[];if(rw(t))r._linkingError=t;else for(let e of t){let t=this.loadAstNode(e);t&&n.push({ref:t,$nodeDescription:e})}r._items=n}catch(t){r._linkingError={info:e,message:`An error occurred while resolving reference to '${r.$refText}': ${t}`},r._items=[]}t.references.push(r)}}unlink(e){for(let t of e.references)"_ref"in t?(t._ref=void 0,delete t._nodeDescription):"_items"in t&&(t._items=void 0,delete t._linkingError);e.references=[]}getCandidate(e){return this.scopeProvider.getScope(e).getElement(e.reference.$refText)??this.createLinkingError(e)}getCandidates(e){let t=this.scopeProvider.getScope(e).getElements(e.reference.$refText).distinct(e=>`${e.documentUri}#${e.path}`).toArray();return t.length>0?t:this.createLinkingError(e)}buildReference(e,t,r,n){let i=this,a={$refNode:r,$refText:n,_ref:void 0,get ref(){if(rS(this._ref))return this._ref;if(rN(this._nodeDescription)){let r=i.loadAstNode(this._nodeDescription);this._ref=r??i.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(void 0===this._ref){this._ref=vV;let r=rV(e).$document,n=i.getLinkedNode({reference:a,container:e,property:t});if(n.error&&r&&r.state<e3.ComputedScopes)return this._ref=void 0;this._ref=n.node??n.error,this._nodeDescription=n.descr,r?.references.push(this)}else this._ref===vV&&i.throwCyclicReferenceError(e,t,n);return rS(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return rw(this._ref)?this._ref:void 0}};return a}buildMultiReference(e,t,r,n){let i=this,a={$refNode:r,$refText:n,_items:void 0,get items(){if(Array.isArray(this._items))return this._items;if(void 0===this._items){this._items=vV;let r=rV(e).$document,n=i.getCandidates({reference:a,container:e,property:t}),s=[];if(rw(n))this._linkingError=n;else for(let e of n){let t=i.loadAstNode(e);t&&s.push({ref:t,$nodeDescription:e})}this._items=s,r?.references.push(this)}else this._items===vV&&i.throwCyclicReferenceError(e,t,n);return Array.isArray(this._items)?this._items:[]},get error(){if(this._linkingError)return this._linkingError;if(this.items.length>0)return;return this._linkingError=i.createLinkingError({reference:a,container:e,property:t})}};return a}throwCyclicReferenceError(e,t,r){throw Error(`Cyclic reference resolution detected: ${this.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${r}')`)}getLinkedNode(e){try{let t=this.getCandidate(e);if(rw(t))return{error:t};let r=this.loadAstNode(t);if(r)return{node:r,descr:t};return{descr:t,error:this.createLinkingError(e,t)}}catch(r){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,r);let t=r.message??String(r);return{error:{info:e,message:`An error occurred while resolving reference to '${e.reference.$refText}': ${t}`}}}}loadAstNode(e){if(e.node)return e.node;let t=this.langiumDocuments().getDocument(e.documentUri);if(t)return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){let r=rV(e.container).$document;r&&r.state<e3.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);let n=this.reflection.getReferenceType(e);return{info:e,message:`Could not resolve reference to ${n} named '${e.reference.$refText}'.`,targetDescription:t}}};function vY(e){return"string"==typeof e.name}tD(vY,"isNamed");var vQ=class{static{tD(this,"DefaultNameProvider")}getName(e){if(vY(e))return e.name}getNameNode(e){return aI(e.$cstNode,"name")}},vZ=class{static{tD(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator,this.documents=e.shared.workspace.LangiumDocuments,this.hasMultiReference=rZ(e.Grammar).some(e=>nE(e)&&e.isMulti)}findDeclarations(e){if(e){let t=aL(e),r=e.astNode;if(t&&r){let n=r[t.feature];if(rk(n)||rx(n))return rH(n);if(Array.isArray(n)){for(let t of n)if((rk(t)||rx(t))&&t.$refNode&&t.$refNode.offset<=e.offset&&t.$refNode.end>=e.end)return rH(t)}}if(r){let t=this.nameProvider.getNameNode(r);if(t&&(t===e||iG(e,t)))return this.getSelfNodes(r)}}return[]}getSelfNodes(e){if(!this.hasMultiReference)return[e];{let t=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e)),r=this.getNodeFromReferenceDescription(t.head());if(r){for(let t of rJ(r))if(rx(t.reference)&&t.reference.items.some(t=>t.ref===e))return t.reference.items.map(e=>e.ref)}return[e]}}getNodeFromReferenceDescription(e){if(!e)return;let t=this.documents.getDocument(e.sourceUri);if(t)return this.nodeLocator.getAstNode(t.parseResult.value,e.sourcePath)}findDeclarationNodes(e){let t=this.findDeclarations(e),r=[];for(let e of t){let t=this.nameProvider.getNameNode(e)??e.$cstNode;t&&r.push(t)}return r}findReferences(e,t){let r=[];t.includeDeclaration&&r.push(...this.getSelfReferences(e));let n=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(n=n.filter(e=>e2.equals(e.sourceUri,t.documentUri))),r.push(...n),rG(r)}getSelfReferences(e){let t=this.getSelfNodes(e),r=[];for(let e of t){let t=this.nameProvider.getNameNode(e);if(t){let n=rW(e),i=this.nodeLocator.getAstNodePath(e);r.push({sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:iK(t),local:!0})}}return r}},vX=class{static{tD(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[t,r]of e)this.add(t,r)}get size(){return eV.sum(rG(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(void 0===t)return this.map.delete(e);{let r=this.map.get(e);if(r){let n=r.indexOf(t);if(n>=0)return 1===r.length?this.map.delete(e):r.splice(n,1),!0}return!1}}get(e){return this.map.get(e)??[]}getStream(e){let t=this.map.get(e);return t?rG(t):rj}has(e,t){if(void 0===t)return this.map.has(e);{let r=this.map.get(e);return!!r&&r.indexOf(t)>=0}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(t=>e(t,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return rG(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return rG(this.map.keys())}values(){return rG(this.map.values()).flat()}entriesGroupedByKey(){return rG(this.map.entries())}},vJ=class{static{tD(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let t=this.map.get(e);return void 0!==t&&(this.map.delete(e),this.inverse.delete(t),!0)}},v0=class{static{tD(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async collectExportedSymbols(e,t=vS.CancellationToken.None){return this.collectExportedSymbolsForNode(e.parseResult.value,e,void 0,t)}async collectExportedSymbolsForNode(e,t,r=rY,n=vS.CancellationToken.None){let i=[];for(let a of(this.addExportedSymbol(e,i,t),r(e)))await vO(n),this.addExportedSymbol(a,i,t);return i}addExportedSymbol(e,t,r){let n=this.nameProvider.getName(e);n&&t.push(this.descriptions.createDescription(e,n,r))}async collectLocalSymbols(e,t=vS.CancellationToken.None){let r=e.parseResult.value,n=new vX;for(let i of rQ(r))await vO(t),this.addLocalSymbol(i,e,n);return n}addLocalSymbol(e,t,r){let n=e.$container;if(n){let i=this.nameProvider.getName(e);i&&r.add(n,this.descriptions.createDescription(e,i,t))}}},v1=class{static{tD(this,"StreamScope")}constructor(e,t,r){this.elements=e,this.outerScope=t,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.caseInsensitive?this.elements.find(e=>e.name.toLowerCase()===t):this.elements.find(t=>t.name===e);return r||(this.outerScope?this.outerScope.getElement(e):void 0)}getElements(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.caseInsensitive?this.elements.filter(e=>e.name.toLowerCase()===t):this.elements.filter(t=>t.name===e);return(this.concatOuterScope||r.isEmpty())&&this.outerScope?r.concat(this.outerScope.getElements(e)):r}},v2=class{static{tD(this,"MapScope")}constructor(e,t,r){for(let t of(this.elements=new Map,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0,e)){let e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.set(e,t)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);return r||(this.outerScope?this.outerScope.getElement(e):void 0)}getElements(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t),n=r?[r]:[];return(this.concatOuterScope||n.length>0)&&this.outerScope?rG(n).concat(this.outerScope.getElements(e)):rG(n)}getAllElements(){let e=rG(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},v3=class{static{tD(this,"MultiMapScope")}constructor(e,t,r){for(let t of(this.elements=new vX,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0,e)){let e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.add(e,t)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t)[0];return r||(this.outerScope?this.outerScope.getElement(e):void 0)}getElements(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);return(this.concatOuterScope||0===r.length)&&this.outerScope?rG(r).concat(this.outerScope.getElements(e)):rG(r)}getAllElements(){let e=rG(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},v4={getElement(){},getElements:()=>rj,getAllElements:()=>rj},v9=class{static{tD(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw Error("This cache has already been disposed")}},v5=class extends v9{static{tD(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){let r=t();return this.cache.set(e,r),r}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},v6=class extends v9{static{tD(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(e=>e)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();let n=this.cacheForContext(e);if(n.has(t))return n.get(t);if(r){let e=r();return n.set(t,e),e}}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){let t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){let t=this.converter(e),r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}},v7=class extends v6{static{tD(this,"DocumentCache")}constructor(e,t){super(e=>e.toString()),t?(this.toDispose.push(e.workspace.DocumentBuilder.onDocumentPhase(t,e=>{this.clear(e.uri.toString())})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{for(let e of t)this.clear(e)}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{for(let r of e.concat(t))this.clear(r)}))}},v8=class extends v5{static{tD(this,"WorkspaceCache")}constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{t.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}},$e=class{static{tD(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new v8(e.shared)}getScope(e){let t=[],r=this.reflection.getReferenceType(e),n=rW(e.container).localSymbols;if(n){let i=e.container;do n.has(i)&&t.push(n.getStream(i).filter(e=>this.reflection.isSubtype(e.type,r))),i=i.$container;while(i)}let i=this.getGlobalScope(r,e);for(let e=t.length-1;e>=0;e--)i=this.createScope(t[e],i);return i}createScope(e,t,r){return new v1(rG(e),t,r)}createScopeForNodes(e,t,r){return new v1(rG(e).map(e=>{let t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)}).nonNullable(),t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new v3(this.indexManager.allElements(e)))}};function $t(e){return"string"==typeof e.$comment}function $r(e){return"object"==typeof e&&!!e&&("$ref"in e||"$error"in e)}tD($t,"isAstNodeWithComment"),tD($r,"isIntermediateReference");var $n=class{static{tD(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){let r=t??{},n=t?.replacer,i=tD((e,t)=>this.replacer(e,t,r),"defaultReplacer"),a=n?(e,t)=>n(e,t,i):i;try{return this.currentDocument=rW(e),JSON.stringify(e,a,t?.space)}finally{this.currentDocument=void 0}}deserialize(e,t){let r=JSON.parse(e);return this.linkNode(r,r,t??{}),r}replacer(e,t,{refText:r,sourceText:n,textRegions:i,comments:a,uriConverter:s}){if(!this.ignoreProperties.has(e)){if(rk(t)){let e=t.ref,n=r?t.$refText:void 0;if(!e)return{$error:t.error?.message??"Could not resolve reference",$refText:n};{let t=rW(e),r="";this.currentDocument&&this.currentDocument!==t&&(r=s?s(t.uri,e):t.uri.toString());let i=this.astNodeLocator.getAstNodePath(e);return{$ref:`${r}#${i}`,$refText:n}}}if(rx(t)){let e=r?t.$refText:void 0,n=[];for(let e of t.items){let t=e.ref,r=rW(e.ref),i="";this.currentDocument&&this.currentDocument!==r&&(i=s?s(r.uri,t):r.uri.toString());let a=this.astNodeLocator.getAstNodePath(t);n.push(`${i}#${a}`)}return{$refs:n,$refText:e}}{let r;if(!rS(t))return t;if(i&&(r=this.addAstNodeRegionWithAssignmentsTo({...t}),(!e||t.$document)&&r?.$textRegion&&(r.$textRegion.documentURI=this.currentDocument?.uri.toString())),n&&!e&&(r??(r={...t}),r.$sourceText=t.$cstNode?.text),a){r??(r={...t});let e=this.commentProvider.getComment(t);e&&(r.$comment=e.replace(/\r/g,""))}return r??t}}}addAstNodeRegionWithAssignmentsTo(e){let t=tD(e=>({offset:e.offset,end:e.end,length:e.length,range:e.range}),"createDocumentSegment");if(e.$cstNode){let r=(e.$textRegion=t(e.$cstNode)).assignments={};return Object.keys(e).filter(e=>!e.startsWith("$")).forEach(n=>{let i=aw(e.$cstNode,n).map(t);0!==i.length&&(r[n]=i)}),e}}linkNode(e,t,r,n,i,a){for(let[n,i]of Object.entries(e))if(Array.isArray(i))for(let a=0;a<i.length;a++){let s=i[a];$r(s)?i[a]=this.reviveReference(e,n,t,s,r):rS(s)&&this.linkNode(s,t,r,e,n,a)}else $r(i)?e[n]=this.reviveReference(e,n,t,i,r):rS(i)&&this.linkNode(i,t,r,e,n);e.$container=n,e.$containerProperty=i,e.$containerIndex=a}reviveReference(e,t,r,n,i){let a,s=n.$refText,o=n.$error;if(n.$ref){let e=this.getRefNode(r,n.$ref,i.uriConverter);if(rS(e))return s||(s=this.nameProvider.getName(e)),{$refText:s??"",ref:e};o=e}else if(n.$refs){let e=[];for(let t of n.$refs){let n=this.getRefNode(r,t,i.uriConverter);rS(n)&&e.push({ref:n})}if(0!==e.length)return{$refText:s??"",items:e};a={$refText:s??"",items:e},o??(o="Could not resolve multi-reference")}return o?(a??(a={$refText:s??"",ref:void 0}),a.error={info:{container:e,property:t,reference:a},message:o},a):void 0}getRefNode(e,t,r){try{let n=t.indexOf("#");if(0===n){let r=this.astNodeLocator.getAstNode(e,t.substring(1));if(!r)return"Could not resolve path: "+t;return r}if(n<0){let e=r?r(t):vK.parse(t),n=this.langiumDocuments.getDocument(e);if(!n)return"Could not find document for URI: "+t;return n.parseResult.value}let i=r?r(t.substring(0,n)):vK.parse(t.substring(0,n)),a=this.langiumDocuments.getDocument(i);if(!a)return"Could not find document for URI: "+t;if(n===t.length-1)return a.parseResult.value;let s=this.astNodeLocator.getAstNode(a.parseResult.value,t.substring(n+1));if(!s)return"Could not resolve URI: "+t;return s}catch(e){return String(e)}}},$i=class{static{tD(this,"DefaultServiceRegistry")}get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.fileNameMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){let t=e.LanguageMetaData;for(let r of t.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(r,e);if(t.fileNames)for(let r of t.fileNames)this.fileNameMap.has(r)&&console.warn(`The file name ${r} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileNameMap.set(r,e);this.languageIdMap.set(t.languageId,e)}getServices(e){if(0===this.languageIdMap.size)throw Error("The service registry is empty. Use `register` to register the services of a language.");let t=this.textDocuments?.get(e)?.languageId;if(void 0!==t){let e=this.languageIdMap.get(t);if(e)return e}let r=e2.extname(e),n=e2.basename(e),i=this.fileNameMap.get(n)??this.fileExtensionMap.get(r);if(!i)if(t)throw Error(`The service registry contains no services for the extension '${r}' for language '${t}'.`);else throw Error(`The service registry contains no services for the extension '${r}'.`);return i}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}};function $a(e){return{code:e}}tD($a,"diagnosticData"),(d=e4||(e4={})).defaults=["fast","slow","built-in"],d.all=d.defaults;var $s=class{static{tD(this,"ValidationRegistry")}constructor(e){this.entries=new vX,this.knownCategories=new Set(e4.defaults),this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,r="fast"){if("built-in"===r)throw Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[n,i]of(this.knownCategories.add(r),Object.entries(e)))if(Array.isArray(i))for(let e of i){let i={check:this.wrapValidationException(e,t),category:r};this.addEntry(n,i)}else if("function"==typeof i){let e={check:this.wrapValidationException(i,t),category:r};this.addEntry(n,e)}else i5(i)}wrapValidationException(e,t){return async(r,n,i)=>{await this.handleException(()=>e.call(t,r,n,i),"An error occurred during validation",n,r)}}async handleException(e,t,r,n){try{await e()}catch(i){if(vP(i))throw i;console.error(`${t}:`,i),i instanceof Error&&i.stack&&console.error(i.stack);let e=i instanceof Error?i.message:String(i);r("error",`${t}: ${e}`,{node:n})}}addEntry(e,t){if("AstNode"===e)return void this.entries.add("AstNode",t);for(let r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=rG(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(e=>t.includes(e.category))),r.map(e=>e.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,r){return async(n,i,a,s)=>{await this.handleException(()=>e.call(r,n,i,a,s),t,i,n)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}getAllValidationCategories(e){return this.knownCategories}},$o=Object.freeze({validateNode:!0,validateChildren:!0}),$l=class{static{tD(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData,this.profiler=e.shared.profilers.LangiumProfiler,this.languageId=e.LanguageMetaData.languageId}async validateDocument(e,t={},r=vS.CancellationToken.None){let n=e.parseResult,i=[];if((await vO(r),!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(n,i,t),t.stopAfterLexingErrors&&i.some(e=>e.data?.code===e9.LexingError)||(this.processParsingErrors(n,i,t),t.stopAfterParsingErrors&&i.some(e=>e.data?.code===e9.ParsingError))||(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some(e=>e.data?.code===e9.LinkingError))))return i;try{i.push(...await this.validateAst(n.value,t,r))}catch(e){if(vP(e))throw e;console.error("An error occurred during validation:",e)}return await vO(r),i}processLexingErrors(e,t,r){for(let r of[...e.lexerErrors,...e.lexerReport?.diagnostics??[]]){let e=r.severity??"error",n={severity:$c(e),range:{start:{line:r.line-1,character:r.column-1},end:{line:r.line-1,character:r.column+r.length-1}},message:r.message,data:$p(e),source:this.getSource()};t.push(n)}}processParsingErrors(e,t,r){for(let r of e.parserErrors){let e;if(isNaN(r.token.startOffset)){if("previousToken"in r){let t=r.previousToken;if(isNaN(t.startOffset)){let t={line:0,character:0};e={start:t,end:t}}else{let r={line:t.endLine-1,character:t.endColumn};e={start:r,end:r}}}}else e=iz(r.token);if(e){let n={severity:$c("error"),range:e,message:r.message,data:$a(e9.ParsingError),source:this.getSource()};t.push(n)}}}processLinkingErrors(e,t,r){for(let r of e.references){let e=r.error;if(e){let n={node:e.info.container,range:r.$refNode?.range,property:e.info.property,index:e.info.index,data:{code:e9.LinkingError,containerType:e.info.container.$type,property:e.info.property,refText:e.info.reference.$refText}};t.push(this.toDiagnostic("error",e.message,n))}}}async validateAst(e,t,r=vS.CancellationToken.None){let n=[],i=tD((e,t,r)=>{n.push(this.toDiagnostic(e,t,r))},"acceptor");return await this.validateAstBefore(e,t,i,r),await this.validateAstNodes(e,t,i,r),await this.validateAstAfter(e,t,i,r),n}async validateAstBefore(e,t,r,n=vS.CancellationToken.None){for(let i of this.validationRegistry.checksBefore)await vO(n),await i(e,r,t.categories??[],n)}async validateAstNodes(e,t,r,n=vS.CancellationToken.None){if(this.profiler?.isActive("validating")){let i=this.profiler.createTask("validating",this.languageId);i.start();try{let a=rZ(e).iterator();for(let e of a){i.startSubTask(e.$type);let s=this.validateSingleNodeOptions(e,t);if(s.validateNode)try{for(let i of this.validationRegistry.getChecks(e.$type,t.categories))await i(e,r,n)}finally{i.stopSubTask(e.$type)}s.validateChildren||a.prune()}}finally{i.stop()}}else{let i=rZ(e).iterator();for(let e of i){await vO(n);let a=this.validateSingleNodeOptions(e,t);if(a.validateNode)for(let i of this.validationRegistry.getChecks(e.$type,t.categories))await i(e,r,n);a.validateChildren||i.prune()}}}validateSingleNodeOptions(e,t){return $o}async validateAstAfter(e,t,r,n=vS.CancellationToken.None){for(let i of this.validationRegistry.checksAfter)await vO(n),await i(e,r,t.categories??[],n)}toDiagnostic(e,t,r){return{message:t,range:$u(r),severity:$c(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function $u(e){let t;return e.range?e.range:("string"==typeof e.property?t=aI(e.node.$cstNode,e.property,e.index):"string"==typeof e.keyword&&(t=aO(e.node.$cstNode,e.keyword,e.index)),t??(t=e.node.$cstNode),t)?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function $c(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw Error("Invalid diagnostic severity: "+e)}}function $p(e){switch(e){case"error":return $a(e9.LexingError);case"warning":return $a(e9.LexingWarning);case"info":return $a(e9.LexingInfo);case"hint":return $a(e9.LexingHint);default:throw Error("Invalid diagnostic severity: "+e)}}tD($u,"getDiagnosticRange"),tD($c,"toDiagnosticSeverity"),tD($p,"toDiagnosticData"),(m=e9||(e9={})).LexingError="lexing-error",m.LexingWarning="lexing-warning",m.LexingInfo="lexing-info",m.LexingHint="lexing-hint",m.ParsingError="parsing-error",m.LinkingError="linking-error";var $f=class{static{tD(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r){let n,i=r??rW(e);t??(t=this.nameProvider.getName(e));let a=this.astNodeLocator.getAstNodePath(e);if(!t)throw Error(`Node at path ${a} has no name.`);let s=tD(()=>n??(n=iK(this.nameProvider.getNameNode(e)??e.$cstNode)),"nameSegmentGetter");return{node:e,name:t,get nameSegment(){return s()},selectionSegment:iK(e.$cstNode),type:e.$type,documentUri:i.uri,path:a}}},$d=class{static{tD(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=vS.CancellationToken.None){let r=[];for(let n of rZ(e.parseResult.value))await vO(t),rJ(n).forEach(e=>{e.reference.error||r.push(...this.createInfoDescriptions(e))});return r}createInfoDescriptions(e){let t=e.reference;if(t.error||!t.$refNode)return[];let r=[];rk(t)&&t.$nodeDescription?r=[t.$nodeDescription]:rx(t)&&(r=t.items.map(e=>e.$nodeDescription).filter(e=>void 0!==e));let n=rW(e.container).uri,i=this.nodeLocator.getAstNodePath(e.container),a=[],s=iK(t.$refNode);for(let e of r)a.push({sourceUri:n,sourcePath:i,targetUri:e.documentUri,targetPath:e.path,segment:s,local:e2.equals(e.documentUri,n)});return a}},$m=class{static{tD(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw Error("Missing '$containerProperty' in AST node.");return void 0!==t?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((e,t)=>{if(!e||0===t.length)return e;let r=t.indexOf(this.indexSeparator);if(r>0){let n=t.substring(0,r),i=parseInt(t.substring(r+1)),a=e[n];return a?.[i]}return e[t]},e)}},$h={};tF($h,tG(tW(),1));var $y=class{static{tD(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new vD,this.onConfigurationSectionUpdateEmitter=new $h.Emitter,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){this.workspaceConfig=e.capabilities.workspace?.configuration??!1}async initialized(e){if(this.workspaceConfig){if(e.register){let t=this.serviceRegistry.all;e.register({section:t.map(e=>this.toSectionName(e.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let t=this.serviceRegistry.all.map(e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((e,t)=>{this.updateSectionConfiguration(e.section,r[t])})}}this._ready.resolve()}updateConfiguration(e){"object"==typeof e.settings&&null!==e.settings&&Object.entries(e.settings).forEach(([e,t])=>{this.updateSectionConfiguration(e,t),this.onConfigurationSectionUpdateEmitter.fire({section:e,configuration:t})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;let r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}},$g=tG(rb(),1),$T=e5||(e5={});function $v(e){return{dispose:tD(async()=>await e(),"dispose")}}tD($v,"create"),$T.create=$v;var $$=class{static{tD(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new vX,this.documentPhaseListeners=new vX,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=e3.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.fileSystemProvider=e.workspace.FileSystemProvider,this.workspaceManager=()=>e.workspace.WorkspaceManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=vS.CancellationToken.None){for(let r of e){let e=r.uri.toString();if(r.state===e3.Validated){if("boolean"==typeof t.validation&&t.validation)this.resetToState(r,e3.IndexedReferences);else if("object"==typeof t.validation){let n=this.findMissingValidationCategories(r,t);n.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:{categories:n}},result:this.buildState.get(e)?.result}),r.state=e3.IndexedReferences)}}else this.buildState.delete(e)}this.currentState=e3.Changed,await this.emitUpdate(e.map(e=>e.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=vS.CancellationToken.None){this.currentState=e3.Changed;let n=[];for(let e of t)for(let t of this.langiumDocuments.deleteDocuments(e))n.push(t.uri),this.cleanUpDeleted(t);let i=(await Promise.all(e.map(e=>this.findChangedUris(e)))).flat();for(let e of i){let t=this.langiumDocuments.getDocument(e);void 0===t&&((t=this.langiumDocumentFactory.fromModel({$type:"INVALID"},e)).state=e3.Changed,this.langiumDocuments.addDocument(t)),this.resetToState(t,e3.Changed)}let a=rG(i).concat(n).map(e=>e.toString()).toSet();this.langiumDocuments.all.filter(e=>!a.has(e.uri.toString())&&this.shouldRelink(e,a)).forEach(e=>this.resetToState(e,e3.ComputedScopes)),await this.emitUpdate(i,n),await vO(r);let s=this.sortDocuments(this.langiumDocuments.all.filter(e=>e.state<e3.Validated||!this.buildState.get(e.uri.toString())?.completed||this.resultsAreIncomplete(e,this.updateBuildOptions)).toArray());await this.buildDocuments(s,this.updateBuildOptions,r)}resultsAreIncomplete(e,t){return this.findMissingValidationCategories(e,t).length>=1}findMissingValidationCategories(e,t){let r=this.buildState.get(e.uri.toString()),n=this.serviceRegistry.getServices(e.uri).validation.ValidationRegistry.getAllValidationCategories(e),i=r?.result?.validationChecks?new Set(r?.result?.validationChecks):r?.completed?n:new Set;return rG(void 0===t||!0===t.validation?n:"object"==typeof t.validation?t.validation.categories??n:[]).filter(e=>!i.has(e)).toArray()}async findChangedUris(e){if(this.langiumDocuments.getDocument(e)??this.textDocuments?.get(e))return[e];try{let t=await this.fileSystemProvider.stat(e);if(t.isDirectory)return await this.workspaceManager().searchFolder(e);if(this.workspaceManager().shouldIncludeEntry(t))return[e]}catch{}return[]}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(r=>r(e,t)))}sortDocuments(e){let t=0,r=e.length-1;for(;t<r;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;r>=0&&!this.hasTextDocument(e[r]);)r--;t<r&&([e[t],e[r]]=[e[r],e[t]])}return e}hasTextDocument(e){return!!this.textDocuments?.get(e.uri)}shouldRelink(e,t){return!!e.references.some(e=>void 0!==e.error)||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),e5.create(()=>{let t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}resetToState(e,t){switch(t){case e3.Changed:case e3.Parsed:this.indexManager.removeContent(e.uri);case e3.IndexedContent:e.localSymbols=void 0;case e3.ComputedScopes:this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e);case e3.Linked:this.indexManager.removeReferences(e.uri);case e3.IndexedReferences:e.diagnostics=void 0,this.buildState.delete(e.uri.toString());case e3.Validated:}e.state>t&&(e.state=t)}cleanUpDeleted(e){this.buildState.delete(e.uri.toString()),this.indexManager.remove(e.uri),e.state=e3.Changed}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,e3.Parsed,r,e=>this.langiumDocumentFactory.update(e,r)),await this.runCancelable(e,e3.IndexedContent,r,e=>this.indexManager.updateContent(e,r)),await this.runCancelable(e,e3.ComputedScopes,r,async e=>{let t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.localSymbols=await t.collectLocalSymbols(e,r)});let n=e.filter(e=>this.shouldLink(e));await this.runCancelable(n,e3.Linked,r,e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,r)),await this.runCancelable(n,e3.IndexedReferences,r,e=>this.indexManager.updateReferences(e,r));let i=e.filter(e=>!!this.shouldValidate(e)||(this.markAsCompleted(e),!1));await this.runCancelable(i,e3.Validated,r,async e=>{await this.validate(e,r),this.markAsCompleted(e)})}markAsCompleted(e){let t=this.buildState.get(e.uri.toString());t&&(t.completed=!0)}prepareBuild(e,t){for(let r of e){let e=r.uri.toString(),n=this.buildState.get(e);(!n||n.completed)&&this.buildState.set(e,{completed:!1,options:t,result:n?.result})}}async runCancelable(e,t,r,n){for(let i of e)i.state<t&&(await vO(r),await n(i),i.state=t,await this.notifyDocumentPhase(i,t,r));let i=e.filter(e=>e.state===t);await this.notifyBuildPhase(i,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),e5.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),e5.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let n;return(t&&"path"in t?n=t:r=t,r??(r=vS.CancellationToken.None),n)?this.awaitDocumentState(e,n,r):this.awaitBuilderState(e,r)}awaitDocumentState(e,t,r){let n=this.langiumDocuments.getDocument(t);return n?n.state>=e?Promise.resolve(t):r.isCancellationRequested?Promise.reject(v_):this.currentState>=e&&e>n.state?Promise.reject(new $g.ResponseError($g.LSPErrorCodes.RequestFailed,`Document state of ${t.toString()} is ${e3[n.state]}, requiring ${e3[e]}, but workspace state is already ${e3[this.currentState]}. Returning undefined.`)):new Promise((n,i)=>{let a=this.onDocumentPhase(e,e=>{e2.equals(e.uri,t)&&(a.dispose(),s.dispose(),n(e.uri))}),s=r.onCancellationRequested(()=>{a.dispose(),s.dispose(),i(v_)})}):Promise.reject(new $g.ResponseError($g.LSPErrorCodes.ServerCancelled,`No document found for URI: ${t.toString()}`))}awaitBuilderState(e,t){return this.currentState>=e?Promise.resolve():t.isCancellationRequested?Promise.reject(v_):new Promise((r,n)=>{let i=this.onBuildPhase(e,()=>{i.dispose(),a.dispose(),r()}),a=t.onCancellationRequested(()=>{i.dispose(),a.dispose(),n(v_)})})}async notifyDocumentPhase(e,t,r){for(let n of this.documentPhaseListeners.get(t).slice())try{await vO(r),await n(e,r)}catch(e){if(!vP(e))throw e}}async notifyBuildPhase(e,t,r){if(0!==e.length)for(let n of this.buildPhaseListeners.get(t).slice())await vO(r),await n(e,r)}shouldLink(e){return this.getBuildOptions(e).eagerLinking??!0}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){let r=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,n=this.getBuildOptions(e),i="object"==typeof n.validation?{...n.validation}:{};i.categories=this.findMissingValidationCategories(e,n);let a=await r.validateDocument(e,i,t);e.diagnostics?e.diagnostics.push(...a):e.diagnostics=a;let s=this.buildState.get(e.uri.toString());s&&(s.result??(s.result={}),s.result.validationChecks?s.result.validationChecks=rG(s.result.validationChecks).concat(i.categories).distinct().toArray():s.result.validationChecks=[...i.categories])}getBuildOptions(e){return this.buildState.get(e.uri.toString())?.options??{}}},$R=class{static{tD(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new v6,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){let r=rW(e).uri,n=[];return this.referenceIndex.forEach(e=>{e.forEach(e=>{e2.equals(e.targetUri,r)&&e.targetPath===t&&n.push(e)})}),rG(n)}allElements(e,t){let r=rG(this.symbolIndex.keys());return t&&(r=r.filter(e=>!t||t.has(e))),r.map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,t){return t?this.symbolByTypeIndex.get(e,t,()=>(this.symbolIndex.get(e)??[]).filter(e=>this.astReflection.isSubtype(e.type,t))):this.symbolIndex.get(e)??[]}remove(e){this.removeContent(e),this.removeReferences(e)}removeContent(e){let t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t)}removeReferences(e){let t=e.toString();this.referenceIndex.delete(t)}async updateContent(e,t=vS.CancellationToken.None){let r=this.serviceRegistry.getServices(e.uri),n=await r.references.ScopeComputation.collectExportedSymbols(e,t),i=e.uri.toString();this.symbolIndex.set(i,n),this.symbolByTypeIndex.clear(i)}async updateReferences(e,t=vS.CancellationToken.None){let r=this.serviceRegistry.getServices(e.uri),n=await r.workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),n)}isAffected(e,t){let r=this.referenceIndex.get(e.uri.toString());return!!r&&r.some(e=>!e.local&&t.has(e.targetUri.toString()))}},$E=class{static{tD(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new vD,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){this.folders=e.workspaceFolders??void 0}initialized(e){return this.mutex.write(e=>this.initializeWorkspace(this.folders??[],e))}async initializeWorkspace(e,t=vS.CancellationToken.None){let r=await this.performStartup(e);await vO(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){let t=[],r=tD(e=>{t.push(e),this.langiumDocuments.hasDocument(e.uri)||this.langiumDocuments.addDocument(e)},"collector");await this.loadAdditionalDocuments(e,r);let n=[];await Promise.all(e.map(e=>this.getRootFolder(e)).map(async e=>this.traverseFolder(e,n)));let i=rG(n).distinct(e=>e.toString()).filter(e=>!this.langiumDocuments.hasDocument(e));return await this.loadWorkspaceDocuments(i,r),this._ready.resolve(),t}async loadWorkspaceDocuments(e,t){await Promise.all(e.map(async e=>{t(await this.langiumDocuments.getOrCreateDocument(e))}))}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return vK.parse(e.uri)}async traverseFolder(e,t){try{let r=await this.fileSystemProvider.readDirectory(e);await Promise.all(r.map(async e=>{this.shouldIncludeEntry(e)&&(e.isDirectory?await this.traverseFolder(e.uri,t):e.isFile&&t.push(e.uri))}))}catch(t){console.error("Failure to read directory content of "+e.toString(!0),t)}}async searchFolder(e){let t=[];return await this.traverseFolder(e,t),t}shouldIncludeEntry(e){let t=e2.basename(e.uri);return!t.startsWith(".")&&(e.isDirectory?"node_modules"!==t&&"out"!==t:!!e.isFile&&this.serviceRegistry.hasServices(e.uri))}},$b=class{static{tD(this,"DefaultLexerErrorMessageProvider")}buildUnexpectedCharactersMessage(e,t,r,n,i){return fj.buildUnexpectedCharactersMessage(e,t,r,n,i)}buildUnableToPopLexerModeMessage(e){return fj.buildUnableToPopLexerModeMessage(e)}},$A={mode:"full"},$C=class{static{tD(this,"DefaultLexer")}constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;let t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);let r=$x(t)?Object.values(t):t,n="production"===e.LanguageMetaData.mode;this.chevrotainLexer=new fG(r,{positionTracking:"full",skipValidations:n,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=$A){let r=this.chevrotainLexer.tokenize(e);return{tokens:r.tokens,errors:r.errors,hidden:r.groups.hidden??[],report:this.tokenBuilder.flushLexingReport?.(e)}}toTokenTypeDictionary(e){if($x(e))return e;let t=$k(e)?Object.values(e.modes).flat():e,r={};return t.forEach(e=>r[e.name]=e),r}};function $S(e){return Array.isArray(e)&&(0===e.length||"name"in e[0])}function $k(e){return e&&"modes"in e&&"defaultMode"in e}function $x(e){return!$S(e)&&!$k(e)}function $N(e,t,r){let n,i;return"string"==typeof e?(i=t,n=r):(i=e.range.start,n=t),i||(i=$.create(0,0)),$G({index:0,tokens:$O({lines:$I(e),position:i,options:$V(n)}),position:i})}function $w(e,t){let r=$V(t),n=$I(e);if(0===n.length)return!1;let i=n[0],a=n[n.length-1],s=r.start,o=r.end;return!!s?.exec(i)&&!!o?.exec(a)}function $I(e){return("string"==typeof e?e:e.text).split(ad)}tD($S,"isTokenTypeArray"),tD($k,"isIMultiModeLexerDefinition"),tD($x,"isTokenTypeDictionary"),tq(),tD($N,"parseJSDoc"),tD($w,"isJSDoc"),tD($I,"getLines");var $_=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,$P=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function $O(e){let t=[],r=e.position.line,n=e.position.character;for(let i=0;i<e.lines.length;i++){let a=0===i,s=i===e.lines.length-1,o=e.lines[i],l=0;if(a&&e.options.start){let t=e.options.start?.exec(o);t&&(l=t.index+t[0].length)}else{let t=e.options.line?.exec(o);t&&(l=t.index+t[0].length)}if(s){let t=e.options.end?.exec(o);t&&(o=o.substring(0,t.index))}if($j(o=o.substring(0,$F(o)),l)>=o.length){if(t.length>0){let e=$.create(r,n);t.push({type:"break",content:"",range:R.create(e,e)})}}else{$_.lastIndex=l;let e=$_.exec(o);if(e){let i=e[0],a=e[1],s=$.create(r,n+l),u=$.create(r,n+l+i.length);t.push({type:"tag",content:a,range:R.create(s,u)}),l+=i.length,l=$j(o,l)}if(l<o.length){let e=o.substring(l),i=Array.from(e.matchAll($P));t.push(...$D(i,e,r,n+l))}}r++,n=0}return t.length>0&&"break"===t[t.length-1].type?t.slice(0,-1):t}function $D(e,t,r,n){let i=[];if(0===e.length){let e=$.create(r,n),a=$.create(r,n+t.length);i.push({type:"text",content:t,range:R.create(e,a)})}else{let a=0;for(let s of e){let e=s.index,o=t.substring(a,e);o.length>0&&i.push({type:"text",content:t.substring(a,e),range:R.create($.create(r,a+n),$.create(r,e+n))});let l=o.length+1,u=s[1];if(i.push({type:"inline-tag",content:u,range:R.create($.create(r,a+l+n),$.create(r,a+l+u.length+n))}),l+=u.length,4===s.length){l+=s[2].length;let e=s[3];i.push({type:"text",content:e,range:R.create($.create(r,a+l+n),$.create(r,a+l+e.length+n))})}else i.push({type:"text",content:"",range:R.create($.create(r,a+l+n),$.create(r,a+l+n))});a=e+s[0].length}let s=t.substring(a);s.length>0&&i.push({type:"text",content:s,range:R.create($.create(r,a+n),$.create(r,a+n+s.length))})}return i}tD($O,"tokenize"),tD($D,"buildInlineTokens");var $L=/\S/,$M=/\s*$/;function $j(e,t){let r=e.substring(t).match($L);return r?t+r.index:e.length}function $F(e){let t=e.match($M);if(t&&"number"==typeof t.index)return t.index}function $G(e){let t=$.create(e.position.line,e.position.character);if(0===e.tokens.length)return new $Y([],R.create(t,t));let r=[];for(;e.index<e.tokens.length;){let t=$z(e,r[r.length-1]);t&&r.push(t)}let n=r[0]?.range.start??t,i=r[r.length-1]?.range.end??t;return new $Y(r,R.create(n,i))}function $z(e,t){let r=e.tokens[e.index];return"tag"===r.type?$B(e,!1):"text"===r.type||"inline-tag"===r.type?$q(e):($K(r,t),void e.index++)}function $K(e,t){if(t){let r=new $0("",e.range);"inlines"in t?t.inlines.push(r):t.content.inlines.push(r)}}function $q(e){let t=e.tokens[e.index],r=t,n=t,i=[];for(;t&&"break"!==t.type&&"tag"!==t.type;)i.push($U(e)),n=t,t=e.tokens[e.index];return new $J(i,R.create(r.range.start,n.range.end))}function $U(e){return"inline-tag"===e.tokens[e.index].type?$B(e,!0):$W(e)}function $B(e,t){let r=e.tokens[e.index++],n=r.content.substring(1),i=e.tokens[e.index];if(i?.type==="text")if(t){let i=$W(e);return new $Q(n,new $J([i],i.range),t,R.create(r.range.start,i.range.end))}else{let i=$q(e);return new $Q(n,i,t,R.create(r.range.start,i.range.end))}{let e=r.range;return new $Q(n,new $J([],e),t,e)}}function $W(e){let t=e.tokens[e.index++];return new $0(t.content,t.range)}function $V(e){if(!e)return $V({start:"/**",end:"*/",line:"*"});let{start:t,end:r,line:n}=e;return{start:$H(t,!0),end:$H(r,!1),line:$H(n,!0)}}function $H(e,t){if("string"!=typeof e&&"object"!=typeof e)return e;{let r="string"==typeof e?a$(e):e.source;return t?RegExp(`^\\s*${r}`):RegExp(`\\s*${r}\\s*$`)}}tD($j,"skipWhitespace"),tD($F,"lastCharacter"),tD($G,"parseJSDocComment"),tD($z,"parseJSDocElement"),tD($K,"appendEmptyLine"),tD($q,"parseJSDocText"),tD($U,"parseJSDocInline"),tD($B,"parseJSDocTag"),tD($W,"parseJSDocLine"),tD($V,"normalizeOptions"),tD($H,"normalizeOption");var $Y=class{static{tD(this,"JSDocCommentImpl")}constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let t of this.elements)if(0===e.length)e=t.toString();else{let r=t.toString();e+=$1(e)+r}return e.trim()}toMarkdown(e){let t="";for(let r of this.elements)if(0===t.length)t=r.toMarkdown(e);else{let n=r.toMarkdown(e);t+=$1(t)+n}return t.trim()}},$Q=class{static{tD(this,"JSDocTagImpl")}constructor(e,t,r,n){this.name=e,this.content=t,this.inline=r,this.range=n}toString(){let e=`@${this.name}`,t=this.content.toString();return(1===this.content.inlines.length?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e} ${t}`),this.inline)?`{${e}}`:e}toMarkdown(e){return e?.renderTag?.(this)??this.toMarkdownDefault(e)}toMarkdownDefault(e){let t=this.content.toMarkdown(e);if(this.inline){let r=$Z(this.name,t,e??{});if("string"==typeof r)return r}let r="";e?.tag==="italic"||e?.tag===void 0?r="*":e?.tag==="bold"?r="**":e?.tag==="bold-italic"&&(r="***");let n=`${r}@${this.name}${r}`;return(1===this.content.inlines.length?n=`${n} \u2014 ${t}`:this.content.inlines.length>1&&(n=`${n} -${t}`),this.inline)?`{${n}}`:n}};function $Z(e,t,r){if("linkplain"===e||"linkcode"===e||"link"===e){let n=t.indexOf(" "),i=t;if(n>0){let e=$j(t,n);i=t.substring(e),t=t.substring(0,n)}return("linkcode"===e||"link"===e&&"code"===r.link)&&(i=`\`${i}\``),r.renderLink?.(t,i)??$X(t,i)}}function $X(e,t){try{return vK.parse(e,!0),`[${t}](${e})`}catch{return e}}tD($Z,"renderInlineTag"),tD($X,"renderLinkDefault");var $J=class{static{tD(this,"JSDocTextImpl")}constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){let r=this.inlines[t],n=this.inlines[t+1];e+=r.toString(),n&&n.range.start.line>r.range.start.line&&(e+="\n")}return e}toMarkdown(e){let t="";for(let r=0;r<this.inlines.length;r++){let n=this.inlines[r],i=this.inlines[r+1];t+=n.toMarkdown(e),i&&i.range.start.line>n.range.start.line&&(t+="\n")}return t}},$0=class{static{tD(this,"JSDocLineImpl")}constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}};function $1(e){return e.endsWith("\n")?"\n":"\n\n"}tD($1,"fillNewlines");var $2=class{static{tD(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let t=this.commentProvider.getComment(e);if(t&&$w(t))return $N(t).toMarkdown({renderLink:tD((t,r)=>this.documentationLinkRenderer(e,t,r),"renderLink"),renderTag:tD(t=>this.documentationTagRenderer(e,t),"renderTag")})}documentationLinkRenderer(e,t,r){let n=this.findNameInLocalSymbols(e,t)??this.findNameInGlobalScope(e,t);if(n&&n.nameSegment){let e=n.nameSegment.range.start.line+1,t=n.nameSegment.range.start.character+1,i=n.documentUri.with({fragment:`L${e},${t}`});return`[${r}](${i.toString()})`}}documentationTagRenderer(e,t){}findNameInLocalSymbols(e,t){let r=rW(e).localSymbols;if(!r)return;let n=e;do{let e=r.getStream(n).find(e=>e.name===t);if(e)return e;n=n.$container}while(n)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(e=>e.name===t)}},$3=class{static{tD(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){return $t(e)?e.$comment:iV(e.$cstNode,this.grammarConfig().multilineCommentRules)?.text}},$4=class{static{tD(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}},$5=class{static{tD(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length<this.threadCount;){let e=this.createWorker();e.onReady(()=>{if(this.queue.length>0){let t=this.queue.shift();t&&(e.lock(),t.resolve(e))}}),this.workerPool.push(e)}}async parse(e,t){let r,n=await this.acquireParserWorker(t),i=new vD,a=t.onCancellationRequested(()=>{r=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(e=>{let t=this.hydrator.hydrate(e);i.resolve(t)}).catch(e=>{i.reject(e)}).finally(()=>{a.dispose(),clearTimeout(r)}),i.promise}terminateWorker(e){e.terminate();let t=this.workerPool.indexOf(e);t>=0&&this.workerPool.splice(t,1)}async acquireParserWorker(e){for(let e of(this.initializeWorkers(),this.workerPool))if(e.ready)return e.lock(),e;let t=new vD;return e.onCancellationRequested(()=>{let e=this.queue.indexOf(t);e>=0&&this.queue.splice(e,1),t.reject(v_)}),this.queue.push(t),t.promise}},$9=class{static{tD(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,t,r,n){this.onReadyEmitter=new $h.Emitter,this.deferred=new vD,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=n,t(e=>{this.deferred.resolve(e),this.unlock()}),r(e=>{this.deferred.reject(e),this.unlock()})}terminate(){this.deferred.reject(v_),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw Error("Parser worker is busy");return this._parsing=!0,this.deferred=new vD,this.sendMessage(e),this.deferred.promise}},$6=class{static{tD(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new vS.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let t=vw();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r=vS.CancellationToken.None){let n=new vD;return e.push({action:t,deferred:n,cancellationToken:r}),this.performNextOperation(),n.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else{if(!(this.readQueue.length>0))return;e.push(...this.readQueue.splice(0,this.readQueue.length))}this.done=!1,await Promise.all(e.map(async({action:e,deferred:t,cancellationToken:r})=>{try{let n=await Promise.resolve().then(()=>e(r));t.resolve(n)}catch(e){vP(e)?t.resolve(void 0):t.reject(e)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}},$7=class{static{tD(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new vJ,this.tokenTypeIdMap=new vJ,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(e=>({...e,message:e.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let t=new Map,r=new Map;for(let r of rZ(e))t.set(r,{});if(e.$cstNode)for(let t of ij(e.$cstNode))r.set(t,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){let r=t.astNodes.get(e);for(let[n,i]of(r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,void 0!==e.$cstNode&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t)),Object.entries(e)))if(!n.startsWith("$"))if(Array.isArray(i)){let e=[];for(let a of(r[n]=e,i))rS(a)?e.push(this.dehydrateAstNode(a,t)):rk(a)?e.push(this.dehydrateReference(a,t)):e.push(a)}else rS(i)?r[n]=this.dehydrateAstNode(i,t):rk(i)?r[n]=this.dehydrateReference(i,t):void 0!==i&&(r[n]=i);return r}dehydrateReference(e,t){let r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){let r=t.cstNodes.get(e);return rO(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),r_(e)?r.content=e.content.map(e=>this.dehydrateCstNode(e,t)):rP(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){let t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){let t,r=new Map,n=new Map;for(let t of rZ(e))r.set(t,{});if(e.$cstNode)for(let r of ij(e.$cstNode)){let e;"fullText"in r?t=e=new T1(r.fullText):"content"in r?e=new TJ:"tokenType"in r&&(e=this.hydrateCstLeafNode(r)),e&&(n.set(r,e),e.root=t)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,t){let r=t.astNodes.get(e);for(let[n,i]of(r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode)),Object.entries(e)))if(!n.startsWith("$"))if(Array.isArray(i)){let e=[];for(let a of(r[n]=e,i))rS(a)?e.push(this.setParent(this.hydrateAstNode(a,t),r)):rk(a)?e.push(this.hydrateReference(a,r,n,t)):e.push(a)}else rS(i)?r[n]=this.setParent(this.hydrateAstNode(i,t),r):rk(i)?r[n]=this.hydrateReference(i,r,n,t):void 0!==i&&(r[n]=i);return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,n){return this.linker.buildReference(t,r,n.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){let n=t.cstNodes.get(e);if("number"==typeof e.grammarSource&&(n.grammarSource=this.getGrammarElement(e.grammarSource)),n.astNode=t.astNodes.get(e.astNode),r_(n))for(let i of e.content){let e=this.hydrateCstNode(i,t,r++);n.content.push(e)}return n}hydrateCstLeafNode(e){let t=this.getTokenType(e.tokenType);return new TX(e.offset,e.length,{start:{line:e.startLine,character:e.startColumn},end:{line:e.endLine,character:e.endColumn}},t,e.hidden)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(let t of rZ(this.grammar))r9(t)&&this.grammarElementIdMap.set(t,e++)}};function $8(e){return{documentation:{CommentProvider:tD(e=>new $3(e),"CommentProvider"),DocumentationProvider:tD(e=>new $2(e),"DocumentationProvider")},parser:{AsyncParser:tD(e=>new $4(e),"AsyncParser"),GrammarConfig:tD(e=>a7(e),"GrammarConfig"),LangiumParser:tD(e=>vE(e),"LangiumParser"),CompletionParser:tD(e=>vR(e),"CompletionParser"),ValueConverter:tD(()=>new vC,"ValueConverter"),TokenBuilder:tD(()=>new vA,"TokenBuilder"),Lexer:tD(e=>new $C(e),"Lexer"),ParserErrorMessageProvider:tD(()=>new T7,"ParserErrorMessageProvider"),LexerErrorMessageProvider:tD(()=>new $b,"LexerErrorMessageProvider")},workspace:{AstNodeLocator:tD(()=>new $m,"AstNodeLocator"),AstNodeDescriptionProvider:tD(e=>new $f(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:tD(e=>new $d(e),"ReferenceDescriptionProvider")},references:{Linker:tD(e=>new vH(e),"Linker"),NameProvider:tD(()=>new vQ,"NameProvider"),ScopeProvider:tD(e=>new $e(e),"ScopeProvider"),ScopeComputation:tD(e=>new v0(e),"ScopeComputation"),References:tD(e=>new vZ(e),"References")},serializer:{Hydrator:tD(e=>new $7(e),"Hydrator"),JsonSerializer:tD(e=>new $n(e),"JsonSerializer")},validation:{DocumentValidator:tD(e=>new $l(e),"DocumentValidator"),ValidationRegistry:tD(e=>new $s(e),"ValidationRegistry")},shared:tD(()=>e.shared,"shared")}}function Re(e){return{ServiceRegistry:tD(e=>new $i(e),"ServiceRegistry"),workspace:{LangiumDocuments:tD(e=>new vW(e),"LangiumDocuments"),LangiumDocumentFactory:tD(e=>new vB(e),"LangiumDocumentFactory"),DocumentBuilder:tD(e=>new $$(e),"DocumentBuilder"),IndexManager:tD(e=>new $R(e),"IndexManager"),WorkspaceManager:tD(e=>new $E(e),"WorkspaceManager"),FileSystemProvider:tD(t=>e.fileSystemProvider(t),"FileSystemProvider"),WorkspaceLock:tD(()=>new $6,"WorkspaceLock"),ConfigurationProvider:tD(e=>new $y(e),"ConfigurationProvider")},profilers:{}}}function Rt(e,t,r,n,i,a,s,o,l){return Ri([e,t,r,n,i,a,s,o,l].reduce(Ro,{}))}tD($8,"createDefaultCoreModule"),tD(Re,"createDefaultSharedCoreModule"),(e6||(e6={})).merge=(e,t)=>Ro(Ro({},e),t),tD(Rt,"inject");var Rr=Symbol("isProxy");function Rn(e){if(e&&e[Rr])for(let t of Object.values(e))Rn(t);return e}function Ri(e,t){let r=new Proxy({},{deleteProperty:tD(()=>!1,"deleteProperty"),set:tD(()=>{throw Error("Cannot set property on injected service container")},"set"),get:tD((n,i)=>i===Rr||Rs(n,i,e,t||r),"get"),getOwnPropertyDescriptor:tD((n,i)=>(Rs(n,i,e,t||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:tD((t,r)=>r in e,"has"),ownKeys:tD(()=>[...Object.getOwnPropertyNames(e)],"ownKeys")});return r}tD(Rn,"eagerLoad"),tD(Ri,"_inject");var Ra=Symbol();function Rs(e,t,r,n){if(t in e){if(e[t]instanceof Error)throw Error("Construction failure. Please make sure that your dependencies are constructable. Cause: "+e[t]);if(e[t]===Ra)throw Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return e[t]}if(t in r){let i=r[t];e[t]=Ra;try{e[t]="function"==typeof i?i(n):Ri(i,n)}catch(r){throw e[t]=r instanceof Error?r:void 0,r}return e[t]}}function Ro(e,t){if(t){for(let[r,n]of Object.entries(t))if(null!=n)if("object"==typeof n){let t=e[r];"object"==typeof t&&null!==t?e[r]=Ro(t,n):e[r]=Ro({},n)}else e[r]=n}return e}tD(Rs,"_resolve"),tD(Ro,"_merge");var Rl={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]};(h=e7||(e7={})).REGULAR="indentation-sensitive",h.IGNORE_INDENTATION="ignore-indentation";var Ru=class extends vA{static{tD(this,"IndentationAwareTokenBuilder")}constructor(e=Rl){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options={...Rl,...e},this.indentTokenType=fZ({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=fZ({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(e,t){let r,n,i,a=super.buildTokens(e,t);if(!$S(a))throw Error("Invalid tokens built by default builder");let{indentTokenName:s,dedentTokenName:o,whitespaceTokenName:l,ignoreIndentationDelimiters:u}=this.options,c=[];for(let e of a){for(let[t,r]of u)e.name===t?e.PUSH_MODE=e7.IGNORE_INDENTATION:e.name===r&&(e.POP_MODE=!0);e.name===o?r=e:e.name===s?n=e:e.name===l?i=e:c.push(e)}if(!r||!n||!i)throw Error("Some indentation/whitespace tokens not found!");return u.length>0?{modes:{[e7.REGULAR]:[r,n,...c,i],[e7.IGNORE_INDENTATION]:[...c,i]},defaultMode:e7.REGULAR}:[r,n,i,...c]}flushLexingReport(e){return{...super.flushLexingReport(e),remainingDedents:this.flushRemainingDedents(e)}}isStartOfLine(e,t){return 0===t||"\r\n".includes(e[t-1])}matchWhitespace(e,t,r,n){this.whitespaceRegExp.lastIndex=t;let i=this.whitespaceRegExp.exec(e);return{currIndentLevel:i?.[0].length??0,prevIndentLevel:this.indentationStack.at(-1),match:i}}createIndentationTokenInstance(e,t,r,n){let i=this.getLineNumber(t,n);return f0(e,r,n,n+r.length,i,i,1,r.length)}getLineNumber(e,t){return e.substring(0,t).split(/\r\n|\r|\n/).length}indentMatcher(e,t,r,n){if(!this.isStartOfLine(e,t))return null;let{currIndentLevel:i,prevIndentLevel:a,match:s}=this.matchWhitespace(e,t,r,n);return i<=a?null:(this.indentationStack.push(i),s)}dedentMatcher(e,t,r,n){if(!this.isStartOfLine(e,t))return null;let{currIndentLevel:i,prevIndentLevel:a,match:s}=this.matchWhitespace(e,t,r,n);if(i>=a)return null;let o=this.indentationStack.lastIndexOf(i);if(-1===o)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${i} at offset: ${t}. Current indentation stack: ${this.indentationStack}`,offset:t,length:s?.[0]?.length??0,line:this.getLineNumber(e,t),column:1}),null;let l=this.indentationStack.length-o-1,u=e.substring(0,t).match(/[\r\n]+$/)?.[0].length??1;for(let n=0;n<l;n++){let n=this.createIndentationTokenInstance(this.dedentTokenType,e,"",t-(u-1));r.push(n),this.indentationStack.pop()}return null}buildTerminalToken(e){let t=super.buildTerminalToken(e),{indentTokenName:r,dedentTokenName:n,whitespaceTokenName:i}=this.options;return t.name===r?this.indentTokenType:t.name===n?this.dedentTokenType:t.name===i?fZ({name:i,pattern:this.whitespaceRegExp,group:fG.SKIPPED}):t}flushRemainingDedents(e){let t=[];for(;this.indentationStack.length>1;)t.push(this.createIndentationTokenInstance(this.dedentTokenType,e,"",e.length)),this.indentationStack.pop();return this.indentationStack=[0],t}},Rc=class extends $C{static{tD(this,"IndentationAwareLexer")}constructor(e){if(super(e),e.parser.TokenBuilder instanceof Ru)this.indentationTokenBuilder=e.parser.TokenBuilder;else throw Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(e,t=$A){let r=super.tokenize(e),n=r.report;t?.mode==="full"&&r.tokens.push(...n.remainingDedents),n.remainingDedents=[];let{indentTokenType:i,dedentTokenType:a}=this.indentationTokenBuilder,s=i.tokenTypeIdx,o=a.tokenTypeIdx,l=[],u=r.tokens.length-1;for(let e=0;e<u;e++){let t=r.tokens[e],n=r.tokens[e+1];if(t.tokenTypeIdx===s&&n.tokenTypeIdx===o){e++;continue}l.push(t)}return u>=0&&l.push(r.tokens[u]),r.tokens=l,r}},Rp={};tM(Rp,{AstUtils:()=>rK,BiMap:()=>vJ,Cancellation:()=>vS,ContextCache:()=>v6,CstUtils:()=>rC,DONE_RESULT:()=>rF,Deferred:()=>vD,Disposable:()=>e9,DisposableCache:()=>v5,DocumentCache:()=>v7,EMPTY_STREAM:()=>rj,ErrorWithLocation:()=>i5,GrammarUtils:()=>i4,MultiMap:()=>vX,OperationCancelled:()=>v_,Reduction:()=>eV,RegExpUtils:()=>i7,SimpleCache:()=>v9,StreamImpl:()=>rD,TreeStreamImpl:()=>rz,URI:()=>vK,UriTrie:()=>vU,UriUtils:()=>e2,WorkspaceCache:()=>v8,assertCondition:()=>i6,assertUnreachable:()=>i9,delayNextTick:()=>vk,interruptAndCheck:()=>vO,isOperationCancelled:()=>vP,loadGrammarFromJson:()=>Rg,setInterruptionPeriod:()=>vI,startCancelableOperation:()=>vw,stream:()=>rG}),tF(Rp,$h);var Rf=class{static{tD(this,"EmptyFileSystemProvider")}stat(e){throw Error("No file system is available.")}statSync(e){throw Error("No file system is available.")}async exists(){return!1}existsSync(){return!1}readBinary(){throw Error("No file system is available.")}readBinarySync(){throw Error("No file system is available.")}readFile(){throw Error("No file system is available.")}readFileSync(){throw Error("No file system is available.")}async readDirectory(){return[]}readDirectorySync(){return[]}},Rd={fileSystemProvider:tD(()=>new Rf,"fileSystemProvider")},Rm={Grammar:tD(()=>void 0,"Grammar"),LanguageMetaData:tD(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},Rh={AstReflection:tD(()=>new iD,"AstReflection")};function Ry(){let e=Rt(Re(Rd),Rh),t=Rt($8({shared:e}),Rm);return e.ServiceRegistry.register(t),t}function Rg(e){let t=Ry(),r=t.serializer.JsonSerializer.deserialize(e);return t.shared.workspace.LangiumDocumentFactory.fromModel(r,vK.parse(`memory:/${r.name??"grammar"}.langium`)),r}tD(Ry,"createMinimalGrammarServices"),tD(Rg,"loadGrammarFromJson"),tF(rA,Rp);var RT=class{static{tD(this,"DefaultLangiumProfiler")}constructor(e){this.activeCategories=new Set,this.allCategories=new Set(["validating","parsing","linking"]),this.activeCategories=e??new Set(this.allCategories),this.records=new vX}isActive(e){return this.activeCategories.has(e)}start(...e){e?e.forEach(e=>this.activeCategories.add(e)):this.activeCategories=new Set(this.allCategories)}stop(...e){e?e.forEach(e=>this.activeCategories.delete(e)):this.activeCategories.clear()}createTask(e,t){if(!this.isActive(e))throw Error(`Category "${e}" is not active.`);return console.log(`Creating profiling task for '${e}.${t}'.`),new Rv(t=>this.records.add(e,this.dumpRecord(e,t)),t)}dumpRecord(e,t){console.info(`Task ${e}.${t.identifier} executed in ${t.duration.toFixed(2)}ms and ended at ${t.date.toISOString()}`);let r=[];for(let e of t.entries.keys()){let n=t.entries.get(e),i=n.reduce((e,t)=>e+t);r.push({name:`${t.identifier}.${e}`,count:n.length,duration:i})}let n=t.duration-r.map(e=>e.duration).reduce((e,t)=>e+t,0);function i(e){return Math.round(100*e)/100}return r.push({name:t.identifier,count:1,duration:n}),r.sort((e,t)=>t.duration-e.duration),tD(i,"Round"),console.table(r.map(e=>({Element:e.name,Count:e.count,"Self %":i(100*e.duration/t.duration),"Time (ms)":i(e.duration)}))),t}getRecords(...e){return 0===e.length?this.records.values():this.records.entries().filter(t=>e.some(e=>e===t[0])).flatMap(e=>e[1])}},Rv=class{static{tD(this,"ProfilingTask")}constructor(e,t){this.stack=[],this.entries=new vX,this.addRecord=e,this.identifier=t}start(){if(void 0!==this.startTime)throw Error(`Task "${this.identifier}" is already started.`);this.startTime=performance.now()}stop(){if(void 0===this.startTime)throw Error(`Task "${this.identifier}" was not started.`);if(0!==this.stack.length)throw Error(`Task "${this.identifier}" cannot be stopped before sub-task(s): ${this.stack.map(e=>e.id).join(", ")}.`);let e={identifier:this.identifier,date:new Date,duration:performance.now()-this.startTime,entries:this.entries};this.addRecord(e),this.startTime=void 0,this.entries.clear()}startSubTask(e){this.stack.push({id:e,start:performance.now(),content:0})}stopSubTask(e){let t=this.stack.pop();if(!t)throw Error(`Task "${this.identifier}.${e}" was not started.`);if(t.id!==e)throw Error(`Sub-Task "${t.id}" is not already stopped.`);let r=performance.now()-t.start;void 0!==this.stack.at(-1)&&(this.stack[this.stack.length-1].content+=r);let n=r-t.content;this.entries.add(e,n)}};(e8||(e8={})).Terminals={ARROW_DIRECTION:/L|R|T|B/,ARROW_GROUP:/\{group\}/,ARROW_INTO:/<|>/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,ARCH_ICON:/\([\w-:]+\)/,ARCH_TITLE:/\[(?:"([^"\\]|\\.)*"|'([^'\\]|\\.)*'|[^\[\]\r\n]+)\]/},(te||(te={})).Terminals={DOMAIN_NAME:/complex|complicated|clear|chaotic|confusion/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(tt||(tt={})).Terminals={EM_ID:/[_a-zA-Z][\w_]*/,EM_FID:/\d{1,3}/,EM_DATA_INLINE:/\{(.*)\}|"(.*)"|'(.*)'/,EM_DATA_BLOCK:/\{[\t ]*\r?\n(?:[\S\s]*?\r?\n)?\}(?:\r?\n|(?!\S))/,EM_ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,EM_ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,EM_TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,EM_WS:/\s+/,EM_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,EM_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,EM_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,EM_ML_COMMENT:/\/\*[\s\S]*?\*\//,EM_SL_COMMENT:/\/\/[^\n\r]*/},(tr||(tr={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,REFERENCE:/\w([-\./\w]*[-\w])?/},(tn||(tn={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(ti||(ti={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(ta||(ta={})).Terminals={NUMBER_PIE:/(?:-?[0-9]+\.[0-9]+(?!\.))|(?:-?(0|[1-9][0-9]*)(?!\.))/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(ts||(ts={})).Terminals={GRATICULE:/circle|polygon/,BOOLEAN:/true|false/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NUMBER:/(?:[0-9]+\.[0-9]+(?!\.))|(?:0|[1-9][0-9]*(?!\.))/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(to||(to={})).Terminals={TITLE:/title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,ACC_TITLE:/accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ABNF_RULENAME:/[A-Za-z][A-Za-z0-9-]*/,ABNF_STRING:/"[^"]*"/,ABNF_NUMVAL:/%[xXdDbB][0-9A-Fa-f]+(?:-[0-9A-Fa-f]+|\.[0-9A-Fa-f]+)*/,ABNF_REPEAT:/[0-9]*\*[0-9]*/,ABNF_EXACT_REPEAT:/[0-9]+/,ABNF_WHITESPACE:/[\t \r\n]+/,ABNF_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,ABNF_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,ABNF_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,ABNF_COMMENT:/;[^\n\r]*/},(tl||(tl={})).Terminals={TITLE:/title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,ACC_TITLE:/accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,EBNF_ID:/[A-Z_a-z][\w-]*/,EBNF_STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,EBNF_SPECIAL_SEQUENCE:/\?(?=[^?;]*[^?\s;][^?;]*\?)[^?;]*\?/,EBNF_WHITESPACE:/[\t \r\n]+/,EBNF_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,EBNF_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,EBNF_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,EBNF_BLOCK_COMMENT:/\/\*[\s\S]*?\*\//,EBNF_ISO_COMMENT:/\(\*[\s\S]*?\*\)/},(tu||(tu={})).Terminals={TITLE:/title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,ACC_TITLE:/accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,RR_ID:/[A-Z_a-z][\w-]*/,RR_STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,RR_WHITESPACE:/[\t \r\n]+/,RR_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,RR_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,RR_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,RR_BLOCK_COMMENT:/\/\*[\s\S]*?\*\//},(tc||(tc={})).Terminals={TITLE:/title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,ACC_TITLE:/accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,PEG_ID:/[A-Z_a-z][\w-]*/,PEG_STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,PEG_WHITESPACE:/[\t \r\n]+/,PEG_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,PEG_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,PEG_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,PEG_LINE_COMMENT:/#[^\n\r]*/},(tp||(tp={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,TREEMAP_KEYWORD:/treemap-beta|treemap/,CLASS_DEF:/classDef\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\s+([^;\r\n]*))?(?:;)?/,STYLE_SEPARATOR:/:::/,SEPARATOR:/:/,COMMA:/,/,INDENTATION:/[ \t]{1,}/,WS:/[ \t]+/,ML_COMMENT:/\%\%[^\n]*/,NL:/\r?\n/,ID2:/[a-zA-Z_][a-zA-Z0-9_]*/,NUMBER2:/[0-9_\.\,]+/,STRING2:/"[^"]*"|'[^']*'/},(tf||(tf={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,CLASS_ANNOTATION:/[ \t]+:::[ \t]*[A-Za-z_][\w-]*/,ICON_ANNOTATION:/[ \t]+icon\([\w-]*(?::[\w-]+)?\)/,DESC_ANNOTATION:/[ \t]+##[^\n\r]*/,INDENTATION:/[ \t]{1,}/,QUOTED_NAME:/"[^"]*"|'[^']*'/,WS:/[ \t]+/,ML_COMMENT:/\%\%[^\n]*/,NL:/\r?\n/,BARE_NAME:/(?!:::|icon\(|##)[^ \t\n\r"'](?:(?![ \t]+:::[ \t]*[A-Za-z_]|[ \t]+icon\(|[ \t]+##)[^\n\r])*/},(td||(td={})).Terminals={WARDLEY_NUMBER:/[0-9]+\.[0-9]+/,ARROW:/->/,LINK_PORT:/\+<>|\+>|\+</,LINK_ARROW:/-->|-\.->|>|\+'[^']*'<>|\+'[^']*'<|\+'[^']*'>/,LINK_LABEL:/;[^\n\r]+/,STRATEGY:/build|buy|outsource|market/,KW_WARDLEY:/wardley-beta/,KW_SIZE:/size/,KW_EVOLUTION:/evolution/,KW_ANCHOR:/anchor/,KW_COMPONENT:/component/,KW_LABEL:/label/,KW_INERTIA:/inertia/,KW_EVOLVE:/evolve/,KW_PIPELINE:/pipeline/,KW_NOTE:/note/,KW_ANNOTATIONS:/annotations/,KW_ANNOTATION:/annotation/,KW_ACCELERATOR:/accelerator/,KW_DEACCELERATOR:/deaccelerator/,NAME_WITH_SPACES:/(?!title\s|accTitle|accDescr)[A-Za-z](?:[A-Za-z0-9_()&]|-(?!>))*(?:[ \t]+[A-Za-z(](?:[A-Za-z0-9_()&]|-(?!>))*)*/,WS:/[ \t]+/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},e8.Terminals,te.Terminals,tt.Terminals,tr.Terminals,tn.Terminals,ti.Terminals,ta.Terminals,ts.Terminals,to.Terminals,tl.Terminals,tu.Terminals,tc.Terminals,tf.Terminals,tp.Terminals,td.Terminals;var R$="AbnfPrimary",RR="Architecture";tD(function(e){return RJ.isInstance(e,RR)},"isArchitecture");var RE="Axis",Rb="Branch";tD(function(e){return RJ.isInstance(e,Rb)},"isBranch");var RA="Commit";tD(function(e){return RJ.isInstance(e,RA)},"isCommit");var RC="Cynefin";tD(function(e){return RJ.isInstance(e,RC)},"isCynefin");var RS="DomainBlock";tD(function(e){return RJ.isInstance(e,RS)},"isDomainBlock");var Rk="DomainItem";tD(function(e){return RJ.isInstance(e,Rk)},"isDomainItem");var Rx="EbnfPostfix",RN="EbnfPrimary",Rw="EmDataEntity",RI="EmFrame",R_="EmModelEntity";tD(function(e){return"rmo"===e||"readmodel"===e||"ui"===e||"cmd"===e||"command"===e||"evt"===e||"event"===e||"pcr"===e||"processor"===e},"isEmModelEntityType");var RP="EmResetFrame";function RO(e){return RJ.isInstance(e,RP)}tD(RO,"isEmResetFrame");var RD="GitGraph";tD(function(e){return RJ.isInstance(e,RD)},"isGitGraph");var RL="Info";tD(function(e){return RJ.isInstance(e,RL)},"isInfo");var RM="Item",Rj="Merge";tD(function(e){return RJ.isInstance(e,Rj)},"isMerge");var RF="Packet";tD(function(e){return RJ.isInstance(e,RF)},"isPacket");var RG="PacketBlock";tD(function(e){return RJ.isInstance(e,RG)},"isPacketBlock");var Rz="PegPrimary";tD(function(e){return RJ.isInstance(e,"Pie")},"isPie");var RK="PieSection";tD(function(e){return RJ.isInstance(e,RK)},"isPieSection");var Rq="Railroad";tD(function(e){return RJ.isInstance(e,Rq)},"isRailroad");var RU="RailroadAbnf";tD(function(e){return RJ.isInstance(e,RU)},"isRailroadAbnf");var RB="RailroadEbnf";tD(function(e){return RJ.isInstance(e,RB)},"isRailroadEbnf");var RW="RailroadExpression",RV="RailroadPeg";tD(function(e){return RJ.isInstance(e,RV)},"isRailroadPeg");var RH="Statement",RY="Transition";tD(function(e){return RJ.isInstance(e,RY)},"isTransition");var RQ="Treemap";tD(function(e){return RJ.isInstance(e,RQ)},"isTreemap");var RZ="Wardley";tD(function(e){return RJ.isInstance(e,RZ)},"isWardley");var RX=class extends rI{constructor(){super(...arguments),this.types={AbnfAlternation:{name:"AbnfAlternation",properties:{alternatives:{name:"alternatives",defaultValue:[]}},superTypes:[]},AbnfConcatenation:{name:"AbnfConcatenation",properties:{elements:{name:"elements",defaultValue:[]}},superTypes:[]},AbnfElement:{name:"AbnfElement",properties:{primary:{name:"primary"},repeat:{name:"repeat"}},superTypes:[]},AbnfGroup:{name:"AbnfGroup",properties:{element:{name:"element"}},superTypes:[R$]},AbnfNumVal:{name:"AbnfNumVal",properties:{value:{name:"value"}},superTypes:[R$]},AbnfOptionalGroup:{name:"AbnfOptionalGroup",properties:{element:{name:"element"}},superTypes:[R$]},AbnfPrimary:{name:R$,properties:{},superTypes:[]},AbnfRule:{name:"AbnfRule",properties:{definition:{name:"definition"},name:{name:"name"}},superTypes:[]},AbnfRuleName:{name:"AbnfRuleName",properties:{name:{name:"name"}},superTypes:[R$]},AbnfStringLiteral:{name:"AbnfStringLiteral",properties:{value:{name:"value"}},superTypes:[R$]},Accelerator:{name:"Accelerator",properties:{name:{name:"name"},x:{name:"x"},y:{name:"y"}},superTypes:[]},Alignment:{name:"Alignment",properties:{direction:{name:"direction"},members:{name:"members",defaultValue:[]}},superTypes:[]},Anchor:{name:"Anchor",properties:{evolution:{name:"evolution"},name:{name:"name"},visibility:{name:"visibility"}},superTypes:[]},Annotation:{name:"Annotation",properties:{number:{name:"number"},text:{name:"text"},x:{name:"x"},y:{name:"y"}},superTypes:[]},Annotations:{name:"Annotations",properties:{x:{name:"x"},y:{name:"y"}},superTypes:[]},Architecture:{name:RR,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},alignments:{name:"alignments",defaultValue:[]},edges:{name:"edges",defaultValue:[]},groups:{name:"groups",defaultValue:[]},junctions:{name:"junctions",defaultValue:[]},services:{name:"services",defaultValue:[]},title:{name:"title"}},superTypes:[]},Axis:{name:RE,properties:{label:{name:"label"},name:{name:"name"}},superTypes:[]},Branch:{name:Rb,properties:{name:{name:"name"},order:{name:"order"}},superTypes:[RH]},Checkout:{name:"Checkout",properties:{branch:{name:"branch"}},superTypes:[RH]},CherryPicking:{name:"CherryPicking",properties:{id:{name:"id"},parent:{name:"parent"},tags:{name:"tags",defaultValue:[]}},superTypes:[RH]},ClassDefStatement:{name:"ClassDefStatement",properties:{className:{name:"className"},styleText:{name:"styleText"}},superTypes:[]},Commit:{name:RA,properties:{id:{name:"id"},message:{name:"message"},tags:{name:"tags",defaultValue:[]},type:{name:"type"}},superTypes:[RH]},Common:{name:"Common",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},title:{name:"title"}},superTypes:[]},Component:{name:"Component",properties:{decorator:{name:"decorator"},evolution:{name:"evolution"},inertia:{name:"inertia",defaultValue:!1},label:{name:"label"},name:{name:"name"},visibility:{name:"visibility"}},superTypes:[]},Curve:{name:"Curve",properties:{entries:{name:"entries",defaultValue:[]},label:{name:"label"},name:{name:"name"}},superTypes:[]},Cynefin:{name:RC,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},domains:{name:"domains",defaultValue:[]},title:{name:"title"},transitions:{name:"transitions",defaultValue:[]}},superTypes:[]},Deaccelerator:{name:"Deaccelerator",properties:{name:{name:"name"},x:{name:"x"},y:{name:"y"}},superTypes:[]},Decorator:{name:"Decorator",properties:{strategy:{name:"strategy"}},superTypes:[]},Direction:{name:"Direction",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},dir:{name:"dir"},statements:{name:"statements",defaultValue:[]},title:{name:"title"}},superTypes:[RD]},DomainBlock:{name:RS,properties:{domain:{name:"domain"},items:{name:"items",defaultValue:[]}},superTypes:[]},DomainItem:{name:Rk,properties:{label:{name:"label"}},superTypes:[]},EbnfChoice:{name:"EbnfChoice",properties:{alternatives:{name:"alternatives",defaultValue:[]}},superTypes:[]},EbnfExceptionPostfix:{name:"EbnfExceptionPostfix",properties:{except:{name:"except"}},superTypes:[Rx]},EbnfGroup:{name:"EbnfGroup",properties:{element:{name:"element"}},superTypes:[RN]},EbnfNonTerminal:{name:"EbnfNonTerminal",properties:{name:{name:"name"}},superTypes:[RN]},EbnfOneOrMorePostfix:{name:"EbnfOneOrMorePostfix",properties:{operator:{name:"operator"}},superTypes:[Rx]},EbnfOptional:{name:"EbnfOptional",properties:{element:{name:"element"}},superTypes:[RN]},EbnfOptionalPostfix:{name:"EbnfOptionalPostfix",properties:{operator:{name:"operator"}},superTypes:[Rx]},EbnfPostfix:{name:Rx,properties:{},superTypes:[]},EbnfPrimary:{name:RN,properties:{},superTypes:[]},EbnfRepetition:{name:"EbnfRepetition",properties:{element:{name:"element"}},superTypes:[RN]},EbnfRule:{name:"EbnfRule",properties:{definition:{name:"definition"},name:{name:"name"}},superTypes:[]},EbnfSequence:{name:"EbnfSequence",properties:{elements:{name:"elements",defaultValue:[]}},superTypes:[]},EbnfSpecial:{name:"EbnfSpecial",properties:{text:{name:"text"}},superTypes:[RN]},EbnfTerm:{name:"EbnfTerm",properties:{base:{name:"base"},postfixes:{name:"postfixes",defaultValue:[]}},superTypes:[]},EbnfTerminal:{name:"EbnfTerminal",properties:{value:{name:"value"}},superTypes:[RN]},EbnfZeroOrMorePostfix:{name:"EbnfZeroOrMorePostfix",properties:{operator:{name:"operator"}},superTypes:[Rx]},Edge:{name:"Edge",properties:{lhsDir:{name:"lhsDir"},lhsGroup:{name:"lhsGroup",defaultValue:!1},lhsId:{name:"lhsId"},lhsInto:{name:"lhsInto",defaultValue:!1},rhsDir:{name:"rhsDir"},rhsGroup:{name:"rhsGroup",defaultValue:!1},rhsId:{name:"rhsId"},rhsInto:{name:"rhsInto",defaultValue:!1},title:{name:"title"}},superTypes:[]},EmDataEntity:{name:Rw,properties:{dataBlockValue:{name:"dataBlockValue"},dataType:{name:"dataType"},name:{name:"name"}},superTypes:[]},EmFrame:{name:RI,properties:{},superTypes:[]},EmGwt:{name:"EmGwt",properties:{givenStatements:{name:"givenStatements",defaultValue:[]},sourceFrame:{name:"sourceFrame",referenceType:RI},thenStatements:{name:"thenStatements",defaultValue:[]},whenStatements:{name:"whenStatements",defaultValue:[]}},superTypes:[]},EmGwtStatement:{name:"EmGwtStatement",properties:{entityIdentifier:{name:"entityIdentifier",referenceType:R_}},superTypes:[]},EmModelEntity:{name:R_,properties:{name:{name:"name"}},superTypes:[]},EmNoteEntity:{name:"EmNoteEntity",properties:{dataBlockValue:{name:"dataBlockValue"},dataType:{name:"dataType"},sourceFrame:{name:"sourceFrame",referenceType:RI}},superTypes:[]},EmResetFrame:{name:RP,properties:{dataInlineValue:{name:"dataInlineValue"},dataReference:{name:"dataReference",referenceType:Rw},dataType:{name:"dataType"},entityIdentifier:{name:"entityIdentifier"},modelEntityType:{name:"modelEntityType"},name:{name:"name"},sourceFrames:{name:"sourceFrames",defaultValue:[],referenceType:RI}},superTypes:[RI]},EmTimeFrame:{name:"EmTimeFrame",properties:{dataInlineValue:{name:"dataInlineValue"},dataReference:{name:"dataReference",referenceType:Rw},dataType:{name:"dataType"},entityIdentifier:{name:"entityIdentifier"},modelEntityType:{name:"modelEntityType"},name:{name:"name"},sourceFrames:{name:"sourceFrames",defaultValue:[],referenceType:RI}},superTypes:[RI]},Entry:{name:"Entry",properties:{axis:{name:"axis",referenceType:RE},value:{name:"value"}},superTypes:[]},EventModel:{name:"EventModel",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},dataEntities:{name:"dataEntities",defaultValue:[]},frames:{name:"frames",defaultValue:[]},gwtEntities:{name:"gwtEntities",defaultValue:[]},modelEntities:{name:"modelEntities",defaultValue:[]},noteEntities:{name:"noteEntities",defaultValue:[]},title:{name:"title"}},superTypes:[]},Evolution:{name:"Evolution",properties:{stages:{name:"stages",defaultValue:[]}},superTypes:[]},EvolutionStage:{name:"EvolutionStage",properties:{boundary:{name:"boundary"},name:{name:"name"},secondName:{name:"secondName"}},superTypes:[]},Evolve:{name:"Evolve",properties:{component:{name:"component"},target:{name:"target"}},superTypes:[]},GitGraph:{name:RD,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},statements:{name:"statements",defaultValue:[]},title:{name:"title"}},superTypes:[]},Group:{name:"Group",properties:{icon:{name:"icon"},id:{name:"id"},in:{name:"in"},title:{name:"title"}},superTypes:[]},Info:{name:RL,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},title:{name:"title"}},superTypes:[]},Item:{name:RM,properties:{classSelector:{name:"classSelector"},name:{name:"name"}},superTypes:[]},Junction:{name:"Junction",properties:{id:{name:"id"},in:{name:"in"}},superTypes:[]},Label:{name:"Label",properties:{negX:{name:"negX",defaultValue:!1},negY:{name:"negY",defaultValue:!1},offsetX:{name:"offsetX"},offsetY:{name:"offsetY"}},superTypes:[]},Leaf:{name:"Leaf",properties:{classSelector:{name:"classSelector"},name:{name:"name"},value:{name:"value"}},superTypes:[RM]},Link:{name:"Link",properties:{arrow:{name:"arrow"},from:{name:"from"},fromPort:{name:"fromPort"},linkLabel:{name:"linkLabel"},to:{name:"to"},toPort:{name:"toPort"}},superTypes:[]},Merge:{name:Rj,properties:{branch:{name:"branch"},id:{name:"id"},tags:{name:"tags",defaultValue:[]},type:{name:"type"}},superTypes:[RH]},Note:{name:"Note",properties:{evolution:{name:"evolution"},text:{name:"text"},visibility:{name:"visibility"}},superTypes:[]},Option:{name:"Option",properties:{name:{name:"name"},value:{name:"value",defaultValue:!1}},superTypes:[]},Packet:{name:RF,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},blocks:{name:"blocks",defaultValue:[]},title:{name:"title"}},superTypes:[]},PacketBlock:{name:RG,properties:{bits:{name:"bits"},end:{name:"end"},label:{name:"label"},start:{name:"start"}},superTypes:[]},PegAny:{name:"PegAny",properties:{dot:{name:"dot"}},superTypes:[Rz]},PegGroup:{name:"PegGroup",properties:{element:{name:"element"}},superTypes:[Rz]},PegIdentifier:{name:"PegIdentifier",properties:{name:{name:"name"}},superTypes:[Rz]},PegLiteral:{name:"PegLiteral",properties:{value:{name:"value"}},superTypes:[Rz]},PegOrderedChoice:{name:"PegOrderedChoice",properties:{alternatives:{name:"alternatives",defaultValue:[]}},superTypes:[]},PegPrefix:{name:"PegPrefix",properties:{operator:{name:"operator"},suffix:{name:"suffix"}},superTypes:[]},PegPrimary:{name:Rz,properties:{},superTypes:[]},PegRule:{name:"PegRule",properties:{definition:{name:"definition"},name:{name:"name"}},superTypes:[]},PegSequence:{name:"PegSequence",properties:{elements:{name:"elements",defaultValue:[]}},superTypes:[]},PegSuffix:{name:"PegSuffix",properties:{operator:{name:"operator"},primary:{name:"primary"}},superTypes:[]},Pie:{name:"Pie",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},sections:{name:"sections",defaultValue:[]},showData:{name:"showData",defaultValue:!1},title:{name:"title"}},superTypes:[]},PieSection:{name:RK,properties:{label:{name:"label"},value:{name:"value"}},superTypes:[]},Pipeline:{name:"Pipeline",properties:{components:{name:"components",defaultValue:[]},parent:{name:"parent"}},superTypes:[]},PipelineComponent:{name:"PipelineComponent",properties:{evolution:{name:"evolution"},label:{name:"label"},name:{name:"name"}},superTypes:[]},Radar:{name:"Radar",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},axes:{name:"axes",defaultValue:[]},curves:{name:"curves",defaultValue:[]},options:{name:"options",defaultValue:[]},title:{name:"title"}},superTypes:[]},Railroad:{name:Rq,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},rules:{name:"rules",defaultValue:[]},title:{name:"title"}},superTypes:[]},RailroadAbnf:{name:RU,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},rules:{name:"rules",defaultValue:[]},title:{name:"title"}},superTypes:[]},RailroadChoiceExpr:{name:"RailroadChoiceExpr",properties:{alternatives:{name:"alternatives",defaultValue:[]}},superTypes:[RW]},RailroadEbnf:{name:RB,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},rules:{name:"rules",defaultValue:[]},title:{name:"title"}},superTypes:[]},RailroadExpression:{name:RW,properties:{},superTypes:[]},RailroadNonTerminalExpr:{name:"RailroadNonTerminalExpr",properties:{name:{name:"name"}},superTypes:[RW]},RailroadOneOrMoreExpr:{name:"RailroadOneOrMoreExpr",properties:{element:{name:"element"}},superTypes:[RW]},RailroadOptionalExpr:{name:"RailroadOptionalExpr",properties:{element:{name:"element"}},superTypes:[RW]},RailroadPeg:{name:RV,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},rules:{name:"rules",defaultValue:[]},title:{name:"title"}},superTypes:[]},RailroadRule:{name:"RailroadRule",properties:{definition:{name:"definition"},name:{name:"name"}},superTypes:[]},RailroadSequenceExpr:{name:"RailroadSequenceExpr",properties:{elements:{name:"elements",defaultValue:[]}},superTypes:[RW]},RailroadSpecialExpr:{name:"RailroadSpecialExpr",properties:{text:{name:"text"}},superTypes:[RW]},RailroadTerminalExpr:{name:"RailroadTerminalExpr",properties:{value:{name:"value"}},superTypes:[RW]},RailroadZeroOrMoreExpr:{name:"RailroadZeroOrMoreExpr",properties:{element:{name:"element"}},superTypes:[RW]},Section:{name:"Section",properties:{classSelector:{name:"classSelector"},name:{name:"name"}},superTypes:[RM]},Service:{name:"Service",properties:{icon:{name:"icon"},iconText:{name:"iconText"},id:{name:"id"},in:{name:"in"},title:{name:"title"}},superTypes:[]},Size:{name:"Size",properties:{height:{name:"height"},width:{name:"width"}},superTypes:[]},Statement:{name:RH,properties:{},superTypes:[]},Transition:{name:RY,properties:{from:{name:"from"},label:{name:"label"},to:{name:"to"}},superTypes:[]},TreeNode:{name:"TreeNode",properties:{classAnnotation:{name:"classAnnotation"},descAnnotation:{name:"descAnnotation"},iconAnnotation:{name:"iconAnnotation"},indent:{name:"indent"},name:{name:"name"}},superTypes:[]},TreeView:{name:"TreeView",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},nodes:{name:"nodes",defaultValue:[]},title:{name:"title"}},superTypes:[]},Treemap:{name:RQ,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},title:{name:"title"},TreemapRows:{name:"TreemapRows",defaultValue:[]}},superTypes:[]},TreemapRow:{name:"TreemapRow",properties:{indent:{name:"indent"},item:{name:"item"}},superTypes:[]},Wardley:{name:RZ,properties:{accDescr:{name:"accDescr"},accelerators:{name:"accelerators",defaultValue:[]},accTitle:{name:"accTitle"},anchors:{name:"anchors",defaultValue:[]},annotation:{name:"annotation",defaultValue:[]},annotations:{name:"annotations",defaultValue:[]},components:{name:"components",defaultValue:[]},deaccelerators:{name:"deaccelerators",defaultValue:[]},evolution:{name:"evolution"},evolves:{name:"evolves",defaultValue:[]},links:{name:"links",defaultValue:[]},notes:{name:"notes",defaultValue:[]},pipelines:{name:"pipelines",defaultValue:[]},size:{name:"size"},title:{name:"title"}},superTypes:[]}}}static{tD(this,"MermaidAstReflection")}},RJ=new RX,R0=tD(()=>tm??(tm=Rg('{"$type":"Grammar","isDeclared":true,"name":"ArchitectureGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"alignments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Alignment","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"align"},{"$type":"Assignment","feature":"direction","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"row"},{"$type":"Keyword","value":"column"}]}},{"$type":"Assignment","feature":"members","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Assignment","feature":"members","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"+"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@20"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[(?:\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'|[^\\\\[\\\\]\\\\r\\\\n]+)\\\\]/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}')),"ArchitectureGrammarGrammar"),R1=tD(()=>th??(th=Rg('{"$type":"Grammar","isDeclared":true,"name":"CynefinGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Cynefin","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"cynefin-beta"},{"$type":"Keyword","value":"cynefin-beta:"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"domains","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"transitions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"DomainBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"domain","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"items","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"DomainItem","definition":{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Transition","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"from","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Keyword","value":"--\x3e"},{"$type":"Assignment","feature":"to","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"DOMAIN_NAME","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"complex"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"complicated"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"clear"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"chaotic"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"confusion"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"CynefinGrammarGrammar"),R2=tD(()=>ty??(ty=Rg('{"$type":"Grammar","isDeclared":true,"name":"EventModeling","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","entry":true,"name":"EventModel","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"eventmodeling"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"modelEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"frames","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"dataEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"noteEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"gwtEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmModelEntityType","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"rmo"},{"$type":"Keyword","value":"readmodel"},{"$type":"Keyword","value":"ui"},{"$type":"Keyword","value":"cmd"},{"$type":"Keyword","value":"command"},{"$type":"Keyword","value":"evt"},{"$type":"Keyword","value":"event"},{"$type":"Keyword","value":"pcr"},{"$type":"Keyword","value":"processor"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmDataType","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"json"},{"$type":"Keyword","value":"jsobj"},{"$type":"Keyword","value":"figma"},{"$type":"Keyword","value":"salt"},{"$type":"Keyword","value":"uri"},{"$type":"Keyword","value":"md"},{"$type":"Keyword","value":"html"},{"$type":"Keyword","value":"text"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"EmDataInline","definition":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"`"},{"$type":"Assignment","feature":"dataType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":"`"}],"cardinality":"?"},{"$type":"Assignment","feature":"dataInlineValue","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"EmDataBlock","definition":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"`"},{"$type":"Assignment","feature":"dataType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":"`"}],"cardinality":"?"},{"$type":"Assignment","feature":"dataBlockValue","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"QualifiedName","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"."},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmTimeFrame","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"tf"},{"$type":"Keyword","value":"timeframe"}]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"modelEntityType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"entityIdentifier","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"->>"},{"$type":"Assignment","feature":"sourceFrames","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}}],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"[["},{"$type":"Assignment","feature":"dataReference","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@10"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":"]]"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmResetFrame","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"rf"},{"$type":"Keyword","value":"resetframe"}]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"modelEntityType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"entityIdentifier","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"->>"},{"$type":"Assignment","feature":"sourceFrames","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}}],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"[["},{"$type":"Assignment","feature":"dataReference","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@10"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":"]]"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmFrame","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmModelEntity","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"entity"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmDataEntity","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"data"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmNoteEntity","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"note"},{"$type":"Assignment","feature":"sourceFrame","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmGwt","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"gwt"},{"$type":"Assignment","feature":"sourceFrame","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":"given"},{"$type":"Assignment","feature":"givenStatements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"+"},{"$type":"Group","elements":[{"$type":"Keyword","value":"when"},{"$type":"Assignment","feature":"whenStatements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"+"}],"cardinality":"?"},{"$type":"Keyword","value":"then"},{"$type":"Assignment","feature":"thenStatements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"+"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmGwtStatement","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},{"$type":"Assignment","feature":"entityIdentifier","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@9"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EM_EID","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EM_FI","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"EM_ID","definition":{"$type":"RegexToken","regex":"/[_a-zA-Z][\\\\w_]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_FID","definition":{"$type":"RegexToken","regex":"/\\\\d{1,3}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_DATA_INLINE","definition":{"$type":"RegexToken","regex":"/\\\\{(.*)\\\\}|\\"(.*)\\"|\'(.*)\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_DATA_BLOCK","definition":{"$type":"RegexToken","regex":"/\\\\{[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?\\\\}(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"EM_WS","definition":{"$type":"RegexToken","regex":"/\\\\s+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_SL_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\/[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"imports":[],"types":[]}')),"EventModelingGrammar"),R3=tD(()=>tg??(tg=Rg('{"$type":"Grammar","isDeclared":true,"name":"GitGraphGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}')),"GitGraphGrammarGrammar"),R4=tD(()=>tT??(tT=Rg('{"$type":"Grammar","isDeclared":true,"name":"InfoGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"InfoGrammarGrammar"),R5=tD(()=>tv??(tv=Rg('{"$type":"Grammar","isDeclared":true,"name":"PacketGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"PacketGrammarGrammar"),R9=tD(()=>t$??(t$=Rg('{"$type":"Grammar","isDeclared":true,"name":"PieGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"PieGrammarGrammar"),R6=tD(()=>tR??(tR=Rg('{"$type":"Grammar","isDeclared":true,"name":"RadarGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}},"isMulti":false}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"types":[]}')),"RadarGrammarGrammar"),R7=tD(()=>tE??(tE=Rg('{"$type":"Grammar","isDeclared":true,"name":"RailroadAbnfGrammar","rules":[{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_RULENAME","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[A-Za-z][A-Za-z0-9-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_NUMVAL","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/%[xXdDbB][0-9A-Fa-f]+(?:-[0-9A-Fa-f]+|\\\\.[0-9A-Fa-f]+)*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_REPEAT","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[0-9]*\\\\*[0-9]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_EXACT_REPEAT","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[0-9]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t \\\\r\\\\n]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_COMMENT","definition":{"$type":"RegexToken","regex":"/;[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"ParserRule","entry":true,"name":"RailroadAbnf","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"railroad-abnf-beta"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfRule","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Keyword","value":"="},{"$type":"Assignment","feature":"definition","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Keyword","value":";"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfAlternation","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"/"},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfConcatenation","returnType":{"$ref":"#/interfaces@3"},"definition":{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"cardinality":"+"},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfElement","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"repeat","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"repeat","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"primary","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfPrimary","returnType":{"$ref":"#/interfaces@5"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfStringLiteral","returnType":{"$ref":"#/interfaces@6"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfNumVal","returnType":{"$ref":"#/interfaces@7"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfRuleName","returnType":{"$ref":"#/interfaces@8"},"definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfGroup","returnType":{"$ref":"#/interfaces@9"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfOptionalGroup","returnType":{"$ref":"#/interfaces@10"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"RailroadAbnf","attributes":[{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"rules","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@1"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfRule","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"definition","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfAlternation","attributes":[{"$type":"TypeAttribute","name":"alternatives","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@3"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfConcatenation","attributes":[{"$type":"TypeAttribute","name":"elements","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@4"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfElement","attributes":[{"$type":"TypeAttribute","name":"repeat","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"primary","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@5"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfPrimary","attributes":[],"superTypes":[]},{"$type":"Interface","name":"AbnfStringLiteral","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"AbnfNumVal","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"AbnfRuleName","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"AbnfGroup","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"AbnfOptionalGroup","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]}],"imports":[],"types":[]}')),"RailroadAbnfGrammarGrammar"),R8=tD(()=>tb??(tb=Rg('{"$type":"Grammar","isDeclared":true,"name":"RailroadEbnfGrammar","rules":[{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EBNF_ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[A-Z_a-z][\\\\w-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EBNF_STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EBNF_SPECIAL_SEQUENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\?(?=[^?;]*[^?\\\\s;][^?;]*\\\\?)[^?;]*\\\\?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t \\\\r\\\\n]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_BLOCK_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_ISO_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\(\\\\*[\\\\s\\\\S]*?\\\\*\\\\)/","parenthesized":false},"fragment":false},{"$type":"ParserRule","entry":true,"name":"RailroadEbnf","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"railroad-ebnf-beta"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfRule","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"="},{"$type":"Keyword","value":"::="}]},{"$type":"Assignment","feature":"definition","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":";"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfChoice","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfSequence","returnType":{"$ref":"#/interfaces@3"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":",","cardinality":"?"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfTerm","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"base","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Assignment","feature":"postfixes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfPrimary","returnType":{"$ref":"#/interfaces@5"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfTerminal","returnType":{"$ref":"#/interfaces@7"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfNonTerminal","returnType":{"$ref":"#/interfaces@8"},"definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfSpecial","returnType":{"$ref":"#/interfaces@9"},"definition":{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfGroup","returnType":{"$ref":"#/interfaces@10"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfOptional","returnType":{"$ref":"#/interfaces@11"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfRepetition","returnType":{"$ref":"#/interfaces@12"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":"}"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfPostfix","returnType":{"$ref":"#/interfaces@6"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@26"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfOptionalPostfix","returnType":{"$ref":"#/interfaces@13"},"definition":{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"?"}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfZeroOrMorePostfix","returnType":{"$ref":"#/interfaces@14"},"definition":{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"*"}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfOneOrMorePostfix","returnType":{"$ref":"#/interfaces@15"},"definition":{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"+"}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfExceptionPostfix","returnType":{"$ref":"#/interfaces@16"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"except","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"RailroadEbnf","attributes":[{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"rules","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@1"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfRule","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"definition","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfChoice","attributes":[{"$type":"TypeAttribute","name":"alternatives","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@3"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfSequence","attributes":[{"$type":"TypeAttribute","name":"elements","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@4"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfTerm","attributes":[{"$type":"TypeAttribute","name":"base","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@5"}},"isOptional":false},{"$type":"TypeAttribute","name":"postfixes","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@6"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfPrimary","attributes":[],"superTypes":[]},{"$type":"Interface","name":"EbnfPostfix","attributes":[],"superTypes":[]},{"$type":"Interface","name":"EbnfTerminal","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfNonTerminal","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfSpecial","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"text","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfGroup","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"EbnfOptional","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"EbnfRepetition","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"EbnfOptionalPostfix","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"operator","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfZeroOrMorePostfix","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"operator","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfOneOrMorePostfix","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"operator","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfExceptionPostfix","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"except","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@5"}},"isOptional":false}]}],"imports":[],"types":[]}')),"RailroadEbnfGrammarGrammar"),Ee=tD(()=>tA??(tA=Rg('{"$type":"Grammar","isDeclared":true,"name":"RailroadGrammar","rules":[{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"RR_ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[A-Z_a-z][\\\\w-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"RR_STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"RR_WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t \\\\r\\\\n]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"RR_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"RR_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"RR_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"RR_BLOCK_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//","parenthesized":false},"fragment":false},{"$type":"ParserRule","entry":true,"name":"Railroad","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"railroad-beta"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadRule","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Keyword","value":"="},{"$type":"Assignment","feature":"definition","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":";"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadExpression","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadSequenceExpr","returnType":{"$ref":"#/interfaces@3"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"sequence"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadChoiceExpr","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"choice"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadOptionalExpr","returnType":{"$ref":"#/interfaces@5"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"optional"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadOneOrMoreExpr","returnType":{"$ref":"#/interfaces@6"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"oneOrMore"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadZeroOrMoreExpr","returnType":{"$ref":"#/interfaces@7"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"zeroOrMore"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadTerminalExpr","returnType":{"$ref":"#/interfaces@8"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"terminal"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadNonTerminalExpr","returnType":{"$ref":"#/interfaces@9"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"nonterminal"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadSpecialExpr","returnType":{"$ref":"#/interfaces@10"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"special"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"Railroad","attributes":[{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"rules","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@1"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"RailroadRule","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"definition","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"RailroadExpression","attributes":[],"superTypes":[]},{"$type":"Interface","name":"RailroadSequenceExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"elements","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}}},"isOptional":false}]},{"$type":"Interface","name":"RailroadChoiceExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"alternatives","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}}},"isOptional":false}]},{"$type":"Interface","name":"RailroadOptionalExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"RailroadOneOrMoreExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"RailroadZeroOrMoreExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"RailroadTerminalExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"RailroadNonTerminalExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"RailroadSpecialExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"text","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]}],"imports":[],"types":[]}')),"RailroadGrammarGrammar"),Et=tD(()=>tC??(tC=Rg('{"$type":"Grammar","isDeclared":true,"name":"RailroadPegGrammar","rules":[{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PEG_ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[A-Z_a-z][\\\\w-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PEG_STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t \\\\r\\\\n]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/#[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"ParserRule","entry":true,"name":"RailroadPeg","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"railroad-peg-beta"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegRule","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Keyword","value":"<-"},{"$type":"Assignment","feature":"definition","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":";"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegOrderedChoice","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"/"},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegSequence","returnType":{"$ref":"#/interfaces@3"},"definition":{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"+"},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegPrefix","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"&"}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"!"}}],"cardinality":"?"},{"$type":"Assignment","feature":"suffix","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegSuffix","returnType":{"$ref":"#/interfaces@5"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"primary","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"?"}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"*"}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"+"}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegPrimary","returnType":{"$ref":"#/interfaces@6"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegLiteral","returnType":{"$ref":"#/interfaces@7"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegIdentifier","returnType":{"$ref":"#/interfaces@8"},"definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegGroup","returnType":{"$ref":"#/interfaces@9"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegAny","returnType":{"$ref":"#/interfaces@10"},"definition":{"$type":"Assignment","feature":"dot","operator":"=","terminal":{"$type":"Keyword","value":"."}},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"RailroadPeg","attributes":[{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"rules","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@1"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegRule","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"definition","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegOrderedChoice","attributes":[{"$type":"TypeAttribute","name":"alternatives","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@3"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegSequence","attributes":[{"$type":"TypeAttribute","name":"elements","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@4"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegPrefix","attributes":[{"$type":"TypeAttribute","name":"operator","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"suffix","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@5"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegSuffix","attributes":[{"$type":"TypeAttribute","name":"primary","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@6"}},"isOptional":false},{"$type":"TypeAttribute","name":"operator","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"PegPrimary","attributes":[],"superTypes":[]},{"$type":"Interface","name":"PegLiteral","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"PegIdentifier","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"PegGroup","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"PegAny","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"dot","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]}],"imports":[],"types":[]}')),"RailroadPegGrammarGrammar"),Er=tD(()=>tS??(tS=Rg('{"$type":"Grammar","isDeclared":true,"name":"TreemapGrammar","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@15"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"imports":[],"types":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}')),"TreemapGrammarGrammar"),En=tD(()=>tk??(tk=Rg('{"$type":"Grammar","isDeclared":true,"name":"TreeViewGrammar","rules":[{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"TreeView","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"treeView-beta"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"nodes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"CLASS_ANNOTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+:::[ \\\\t]*[A-Za-z_][\\\\w-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ICON_ANNOTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+icon\\\\([\\\\w-]*(?::[\\\\w-]+)?\\\\)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"DESC_ANNOTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+##[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"QUOTED_NAME","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"BARE_NAME","definition":{"$type":"RegexToken","regex":"/(?!:::|icon\\\\(|##)[^ \\\\t\\\\n\\\\r\\"\'](?:(?![ \\\\t]+:::[ \\\\t]*[A-Za-z_]|[ \\\\t]+icon\\\\(|[ \\\\t]+##)[^\\\\n\\\\r])*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TreeNode","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"classAnnotation","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"iconAnnotation","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"descAnnotation","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"TreeView","attributes":[{"$type":"TypeAttribute","name":"nodes","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"imports":[],"types":[],"$comment":"/**\\n * TreeView grammar for Langium\\n *\\n * Supports both quoted labels (\\"my file\\") and bare labels (index.js).\\n * Annotations (:::class, icon(), ## description) are parsed directly into\\n * AST fields by the grammar. Value conversion for stripping quotes, extracting\\n * class names, icon names, and description text happens in valueConverter.ts.\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treeView keyword, allowing for empty lines and comments before the\\n * treeView declaration.\\n */"}')),"TreeViewGrammarGrammar"),Ei=tD(()=>tx??(tx=Rg('{"$type":"Grammar","isDeclared":true,"name":"WardleyGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Wardley","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@42"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"size","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"anchors","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"components","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"links","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"evolves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"pipelines","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"notes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"annotations","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Assignment","feature":"annotation","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accelerators","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Assignment","feature":"deaccelerators","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Size","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@26"},"arguments":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"width","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"height","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Evolution","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]},{"$type":"Assignment","feature":"stages","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]},{"$type":"Assignment","feature":"stages","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EvolutionStage","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"@"},{"$type":"Assignment","feature":"boundary","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}}],"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"/"},{"$type":"Assignment","feature":"secondName","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Anchor","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"visibility","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Component","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"visibility","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"decorator","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"inertia","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"inertia","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]}},{"$type":"Keyword","value":")"}]}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Label","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"negX","operator":"?=","terminal":{"$type":"Keyword","value":"-"},"cardinality":"?"},{"$type":"Assignment","feature":"offsetX","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"negY","operator":"?=","terminal":{"$type":"Keyword","value":"-"},"cardinality":"?"},{"$type":"Assignment","feature":"offsetY","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Decorator","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"strategy","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Link","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"from","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Assignment","feature":"fromPort","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"arrow","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]},"cardinality":"?"},{"$type":"Assignment","feature":"to","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Assignment","feature":"toPort","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"linkLabel","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Evolve","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@32"},"arguments":[]},{"$type":"Assignment","feature":"component","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Pipeline","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@33"},"arguments":[]},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"components","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"+"},{"$type":"Keyword","value":"}"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PipelineComponent","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Note","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@34"},"arguments":[]},{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"visibility","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Annotations","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Annotation","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@36"},"arguments":[]},{"$type":"Assignment","feature":"number","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"CoordinateValue","dataType":"number","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Accelerator","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Deaccelerator","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@38"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"WARDLEY_NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"->"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"LINK_PORT","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"+<>"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"+>"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"+<"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"LINK_ARROW","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"--\x3e"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"-.->"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":">"},"parenthesized":false}],"parenthesized":false},{"$type":"RegexToken","regex":"/\\\\+\'[^\']*\'<>/","parenthesized":false}],"parenthesized":false},{"$type":"RegexToken","regex":"/\\\\+\'[^\']*\'</","parenthesized":false}],"parenthesized":false},{"$type":"RegexToken","regex":"/\\\\+\'[^\']*\'>/","parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"LINK_LABEL","definition":{"$type":"RegexToken","regex":"/;[^\\\\n\\\\r]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRATEGY","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"build"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"buy"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"outsource"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"market"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_WARDLEY","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"wardley-beta"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_SIZE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"size"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_EVOLUTION","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"evolution"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ANCHOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"anchor"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_COMPONENT","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"component"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_LABEL","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"label"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_INERTIA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"inertia"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_EVOLVE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"evolve"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_PIPELINE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"pipeline"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_NOTE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"note"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ANNOTATIONS","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"annotations"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ANNOTATION","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"annotation"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ACCELERATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"accelerator"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_DEACCELERATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"deaccelerator"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NAME_WITH_SPACES","definition":{"$type":"RegexToken","regex":"/(?!title\\\\s|accTitle|accDescr)[A-Za-z](?:[A-Za-z0-9_()&]|-(?!>))*(?:[ \\\\t]+[A-Za-z(](?:[A-Za-z0-9_()&]|-(?!>))*)*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@44"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@45"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@46"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@47"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@48"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"WardleyGrammarGrammar"),Ea={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Es={languageId:"cynefin",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Eo={languageId:"eventmodeling",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},El={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Eu={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ec={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ep={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ef={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ed={languageId:"railroadAbnf",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Em={languageId:"railroadEbnf",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Eh={languageId:"railroad",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ey={languageId:"railroadPeg",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Eg={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ET={languageId:"treeView",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ev={languageId:"wardley",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},E$={AstReflection:tD(()=>new RX,"AstReflection")},ER={Grammar:tD(()=>R0(),"Grammar"),LanguageMetaData:tD(()=>Ea,"LanguageMetaData"),parser:{}},EE={Grammar:tD(()=>R1(),"Grammar"),LanguageMetaData:tD(()=>Es,"LanguageMetaData"),parser:{}},Eb={Grammar:tD(()=>R2(),"Grammar"),LanguageMetaData:tD(()=>Eo,"LanguageMetaData"),parser:{}},EA={Grammar:tD(()=>R3(),"Grammar"),LanguageMetaData:tD(()=>El,"LanguageMetaData"),parser:{}},EC={Grammar:tD(()=>R4(),"Grammar"),LanguageMetaData:tD(()=>Eu,"LanguageMetaData"),parser:{}},ES={Grammar:tD(()=>R5(),"Grammar"),LanguageMetaData:tD(()=>Ec,"LanguageMetaData"),parser:{}},Ek={Grammar:tD(()=>R9(),"Grammar"),LanguageMetaData:tD(()=>Ep,"LanguageMetaData"),parser:{}},Ex={Grammar:tD(()=>R6(),"Grammar"),LanguageMetaData:tD(()=>Ef,"LanguageMetaData"),parser:{}},EN={Grammar:tD(()=>R7(),"Grammar"),LanguageMetaData:tD(()=>Ed,"LanguageMetaData"),parser:{}},Ew={Grammar:tD(()=>R8(),"Grammar"),LanguageMetaData:tD(()=>Em,"LanguageMetaData"),parser:{}},EI={Grammar:tD(()=>Ee(),"Grammar"),LanguageMetaData:tD(()=>Eh,"LanguageMetaData"),parser:{}},E_={Grammar:tD(()=>Et(),"Grammar"),LanguageMetaData:tD(()=>Ey,"LanguageMetaData"),parser:{}},EP={Grammar:tD(()=>Er(),"Grammar"),LanguageMetaData:tD(()=>Eg,"LanguageMetaData"),parser:{}},EO={Grammar:tD(()=>En(),"Grammar"),LanguageMetaData:tD(()=>ET,"LanguageMetaData"),parser:{}},ED={Grammar:tD(()=>Ei(),"Grammar"),LanguageMetaData:tD(()=>Ev,"LanguageMetaData"),parser:{}},EL={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},EM=class extends vC{static{tD(this,"AbstractMermaidValueConverter")}runConverter(e,t,r){let n=this.runCommonConverter(e,t,r);return(void 0===n&&(n=this.runCustomConverter(e,t,r)),void 0===n)?super.runConverter(e,t,r):n}runCommonConverter(e,t,r){let n=EL[e.name];if(void 0===n)return;let i=n.exec(t);if(null!==i){if(void 0!==i[1])return i[1].trim().replace(/[\t ]{2,}/gm," ");if(void 0!==i[2])return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n")}}},Ej=class extends EM{static{tD(this,"CommonValueConverter")}runCustomConverter(e,t,r){}},EF=class extends vA{static{tD(this,"AbstractMermaidTokenBuilder")}constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){let n=super.buildKeywordTokens(e,t,r);return n.forEach(e=>{this.keywords.has(e.name)&&void 0!==e.PATTERN&&(e.PATTERN=RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}};(class extends EF{static{tD(this,"CommonTokenBuilder")}})},5552(e,t,r){r.d(t,{f:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.Bg,a);return t.ServiceRegistry.register(r),{shared:t,Radar:r}}(0,n.K2)(s,"createRadarServices")},9427(e,t,r){r.d(t,{J:()=>s});var n=r(4954),i=class extends n.dg{static{(0,n.K2)(this,"WardleyValueConverter")}runCustomConverter(e,t,r){return"LINK_LABEL"===e.name.toUpperCase()?t.substring(1).trim():void 0}},a={parser:{ValueConverter:(0,n.K2)(()=>new i,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.Xr,a);return t.ServiceRegistry.register(r),{shared:t,Wardley:r}}(0,n.K2)(s,"createWardleyServices")},145(e,t,r){r.d(t,{I:()=>o});var n=r(4954),i=class extends n.dg{static{(0,n.K2)(this,"TreeViewValueConverter")}runCustomConverter(e,t,r){if("INDENTATION"===e.name)return t?.length||0;if("QUOTED_NAME"===e.name)return t.substring(1,t.length-1);if("BARE_NAME"===e.name)return t.replace(/[\t ]+$/,"");if("CLASS_ANNOTATION"===e.name)return t.trim().substring(3).trim();if("ICON_ANNOTATION"===e.name){let e=t.trim();return e.substring(5,e.length-1)}if("DESC_ANNOTATION"===e.name)return t.trim().substring(2).trim()}},a=class extends n.mR{static{(0,n.K2)(this,"TreeViewTokenBuilder")}constructor(){super(["treeView-beta"])}},s={parser:{TokenBuilder:(0,n.K2)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new i,"ValueConverter")}};function o(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.CZ,s);return t.ServiceRegistry.register(r),{shared:t,TreeView:r}}(0,n.K2)(o,"createTreeViewServices")},1721(e,t,r){r.d(t,{b:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.d$,a);return t.ServiceRegistry.register(r),{shared:t,GitGraph:r}}(0,n.K2)(s,"createGitGraphServices")},6045(e,t,r){r.d(t,{l:()=>l});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RailroadTokenBuilder")}constructor(){super(["railroad-beta"])}},a=(0,n.K2)(e=>{let t=e.slice(1,-1),r="";for(let e=0;e<t.length;e++){let n=t[e];if("\\"===n&&e+1<t.length){let n=t[++e];switch(n){case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+=" ";break;default:r+=n}continue}r+=n}return r},"decodeEscapedString"),s=class extends n.dg{static{(0,n.K2)(this,"RailroadValueConverter")}runConverter(e,t,r){let n=super.runConverter(e,t,r);if("TITLE"===e.name&&"string"==typeof n){let e=n.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return a(e)}return n}runCustomConverter(e,t,r){if("RR_STRING"===e.name)return a(t)}},o={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")}};function l(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.Bi,o);return t.ServiceRegistry.register(r),{shared:t,Railroad:r}}(0,n.K2)(l,"createRailroadServices")},3263(e,t,r){r.d(t,{$:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"PacketTokenBuilder")}constructor(){super(["packet"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.p5,a);return t.ServiceRegistry.register(r),{shared:t,Packet:r}}(0,n.K2)(s,"createPacketServices")},9096(e,t,r){r.d(t,{s:()=>o});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RailroadAbnfTokenBuilder")}constructor(){super(["railroad-abnf-beta"])}},a=class extends n.dg{static{(0,n.K2)(this,"RailroadAbnfValueConverter")}runConverter(e,t,r){let n=super.runConverter(e,t,r);if("TITLE"===e.name&&"string"==typeof n){let e=n.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1)}return n}runCustomConverter(e,t,r){if("ABNF_STRING"===e.name)return t.slice(1,-1)}},s={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new a,"ValueConverter")}};function o(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.oI,s);return t.ServiceRegistry.register(r),{shared:t,RailroadAbnf:r}}(0,n.K2)(o,"createRailroadAbnfServices")},8731(e,t,r){r.d(t,{F5:()=>o.F5,Pz:()=>s.P,WG:()=>i.W,lz:()=>n.l,qg:()=>c,sB:()=>a.s,zg:()=>p}),r(5552);var n=r(6045),i=r(4916),a=r(9096),s=r(3245);r(6527),r(9427),r(3279),r(1721),r(4614),r(3263),r(6041),r(145),r(5796),r(2688);var o=r(4954),l={},u={info:(0,o.K2)(async()=>{let{createInfoServices:e}=await r.e("190").then(r.bind(r,6445));l.info=e().Info.parser.LangiumParser},"info"),packet:(0,o.K2)(async()=>{let{createPacketServices:e}=await r.e("612").then(r.bind(r,3327));l.packet=e().Packet.parser.LangiumParser},"packet"),pie:(0,o.K2)(async()=>{let{createPieServices:e}=await r.e("2395").then(r.bind(r,9590));l.pie=e().Pie.parser.LangiumParser},"pie"),treeView:(0,o.K2)(async()=>{let{createTreeViewServices:e}=await r.e("6771").then(r.bind(r,4142));l.treeView=e().TreeView.parser.LangiumParser},"treeView"),architecture:(0,o.K2)(async()=>{let{createArchitectureServices:e}=await r.e("6762").then(r.bind(r,7089));l.architecture=e().Architecture.parser.LangiumParser},"architecture"),gitGraph:(0,o.K2)(async()=>{let{createGitGraphServices:e}=await r.e("9010").then(r.bind(r,9945));l.gitGraph=e().GitGraph.parser.LangiumParser},"gitGraph"),eventmodeling:(0,o.K2)(async()=>{let{createEventModelingServices:e}=await r.e("3312").then(r.bind(r,2355));l.eventmodeling=e().EventModel.parser.LangiumParser},"eventmodeling"),radar:(0,o.K2)(async()=>{let{createRadarServices:e}=await r.e("718").then(r.bind(r,8365));l.radar=e().Radar.parser.LangiumParser},"radar"),railroad:(0,o.K2)(async()=>{let{createRailroadServices:e}=await r.e("5428").then(r.bind(r,2223));l.railroad=e().Railroad.parser.LangiumParser},"railroad"),railroadEbnf:(0,o.K2)(async()=>{let{createRailroadEbnfServices:e}=await r.e("6520").then(r.bind(r,9035));l.railroadEbnf=e().RailroadEbnf.parser.LangiumParser},"railroadEbnf"),railroadAbnf:(0,o.K2)(async()=>{let{createRailroadAbnfServices:e}=await r.e("8665").then(r.bind(r,6480));l.railroadAbnf=e().RailroadAbnf.parser.LangiumParser},"railroadAbnf"),railroadPeg:(0,o.K2)(async()=>{let{createRailroadPegServices:e}=await r.e("3009").then(r.bind(r,5784));l.railroadPeg=e().RailroadPeg.parser.LangiumParser},"railroadPeg"),treemap:(0,o.K2)(async()=>{let{createTreemapServices:e}=await r.e("2853").then(r.bind(r,884));l.treemap=e().Treemap.parser.LangiumParser},"treemap"),wardley:(0,o.K2)(async()=>{let{createWardleyServices:e}=await r.e("3017").then(r.bind(r,7632));l.wardley=e().Wardley.parser.LangiumParser},"wardley"),cynefin:(0,o.K2)(async()=>{let{createCynefinServices:e}=await r.e("255").then(r.bind(r,7636));l.cynefin=e().Cynefin.parser.LangiumParser},"cynefin")};async function c(e,t){let r=u[e];if(!r)throw Error(`Unknown diagram type: ${e}`);l[e]||await r();let n=l[e].parse(t);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new p(n);return n.value}(0,o.K2)(c,"parse");var p=class extends Error{constructor(e){let t=e.lexerErrors.map(e=>{let t=void 0===e.line||isNaN(e.line)?"?":e.line,r=void 0===e.column||isNaN(e.column)?"?":e.column;return`Lexer error on line ${t}, column ${r}: ${e.message}`}).join("\n"),r=e.parserErrors.map(e=>{let t=void 0===e.token.startLine||isNaN(e.token.startLine)?"?":e.token.startLine,r=void 0===e.token.startColumn||isNaN(e.token.startColumn)?"?":e.token.startColumn;return`Parse error on line ${t}, column ${r}: ${e.message}`}).join("\n");super(`Parsing failed: ${t} ${r}`),this.result=e}static{(0,o.K2)(this,"MermaidParseError")}}},7454(e,t,r){function n(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}r.d(t,{S:()=>n}),(0,r(6827).K)(n,"populateCommonDb")}}]); \ No newline at end of file +${t}`),this.inline)?`{${n}}`:n}};function $Z(e,t,r){if("linkplain"===e||"linkcode"===e||"link"===e){let n=t.indexOf(" "),i=t;if(n>0){let e=$j(t,n);i=t.substring(e),t=t.substring(0,n)}return("linkcode"===e||"link"===e&&"code"===r.link)&&(i=`\`${i}\``),r.renderLink?.(t,i)??$X(t,i)}}function $X(e,t){try{return vK.parse(e,!0),`[${t}](${e})`}catch{return e}}tD($Z,"renderInlineTag"),tD($X,"renderLinkDefault");var $J=class{static{tD(this,"JSDocTextImpl")}constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){let r=this.inlines[t],n=this.inlines[t+1];e+=r.toString(),n&&n.range.start.line>r.range.start.line&&(e+="\n")}return e}toMarkdown(e){let t="";for(let r=0;r<this.inlines.length;r++){let n=this.inlines[r],i=this.inlines[r+1];t+=n.toMarkdown(e),i&&i.range.start.line>n.range.start.line&&(t+="\n")}return t}},$0=class{static{tD(this,"JSDocLineImpl")}constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}};function $1(e){return e.endsWith("\n")?"\n":"\n\n"}tD($1,"fillNewlines");var $2=class{static{tD(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let t=this.commentProvider.getComment(e);if(t&&$w(t))return $N(t).toMarkdown({renderLink:tD((t,r)=>this.documentationLinkRenderer(e,t,r),"renderLink"),renderTag:tD(t=>this.documentationTagRenderer(e,t),"renderTag")})}documentationLinkRenderer(e,t,r){let n=this.findNameInLocalSymbols(e,t)??this.findNameInGlobalScope(e,t);if(n&&n.nameSegment){let e=n.nameSegment.range.start.line+1,t=n.nameSegment.range.start.character+1,i=n.documentUri.with({fragment:`L${e},${t}`});return`[${r}](${i.toString()})`}}documentationTagRenderer(e,t){}findNameInLocalSymbols(e,t){let r=rW(e).localSymbols;if(!r)return;let n=e;do{let e=r.getStream(n).find(e=>e.name===t);if(e)return e;n=n.$container}while(n)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(e=>e.name===t)}},$3=class{static{tD(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){return $t(e)?e.$comment:iV(e.$cstNode,this.grammarConfig().multilineCommentRules)?.text}},$4=class{static{tD(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}},$9=class{static{tD(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length<this.threadCount;){let e=this.createWorker();e.onReady(()=>{if(this.queue.length>0){let t=this.queue.shift();t&&(e.lock(),t.resolve(e))}}),this.workerPool.push(e)}}async parse(e,t){let r,n=await this.acquireParserWorker(t),i=new vD,a=t.onCancellationRequested(()=>{r=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(e=>{let t=this.hydrator.hydrate(e);i.resolve(t)}).catch(e=>{i.reject(e)}).finally(()=>{a.dispose(),clearTimeout(r)}),i.promise}terminateWorker(e){e.terminate();let t=this.workerPool.indexOf(e);t>=0&&this.workerPool.splice(t,1)}async acquireParserWorker(e){for(let e of(this.initializeWorkers(),this.workerPool))if(e.ready)return e.lock(),e;let t=new vD;return e.onCancellationRequested(()=>{let e=this.queue.indexOf(t);e>=0&&this.queue.splice(e,1),t.reject(v_)}),this.queue.push(t),t.promise}},$5=class{static{tD(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,t,r,n){this.onReadyEmitter=new $h.Emitter,this.deferred=new vD,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=n,t(e=>{this.deferred.resolve(e),this.unlock()}),r(e=>{this.deferred.reject(e),this.unlock()})}terminate(){this.deferred.reject(v_),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw Error("Parser worker is busy");return this._parsing=!0,this.deferred=new vD,this.sendMessage(e),this.deferred.promise}},$6=class{static{tD(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new vS.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let t=vw();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r=vS.CancellationToken.None){let n=new vD;return e.push({action:t,deferred:n,cancellationToken:r}),this.performNextOperation(),n.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else{if(!(this.readQueue.length>0))return;e.push(...this.readQueue.splice(0,this.readQueue.length))}this.done=!1,await Promise.all(e.map(async({action:e,deferred:t,cancellationToken:r})=>{try{let n=await Promise.resolve().then(()=>e(r));t.resolve(n)}catch(e){vP(e)?t.resolve(void 0):t.reject(e)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}},$7=class{static{tD(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new vJ,this.tokenTypeIdMap=new vJ,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(e=>({...e,message:e.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let t=new Map,r=new Map;for(let r of rZ(e))t.set(r,{});if(e.$cstNode)for(let t of ij(e.$cstNode))r.set(t,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){let r=t.astNodes.get(e);for(let[n,i]of(r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,void 0!==e.$cstNode&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t)),Object.entries(e)))if(!n.startsWith("$"))if(Array.isArray(i)){let e=[];for(let a of(r[n]=e,i))rS(a)?e.push(this.dehydrateAstNode(a,t)):rk(a)?e.push(this.dehydrateReference(a,t)):e.push(a)}else rS(i)?r[n]=this.dehydrateAstNode(i,t):rk(i)?r[n]=this.dehydrateReference(i,t):void 0!==i&&(r[n]=i);return r}dehydrateReference(e,t){let r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){let r=t.cstNodes.get(e);return rO(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),r_(e)?r.content=e.content.map(e=>this.dehydrateCstNode(e,t)):rP(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){let t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){let t,r=new Map,n=new Map;for(let t of rZ(e))r.set(t,{});if(e.$cstNode)for(let r of ij(e.$cstNode)){let e;"fullText"in r?t=e=new T1(r.fullText):"content"in r?e=new TJ:"tokenType"in r&&(e=this.hydrateCstLeafNode(r)),e&&(n.set(r,e),e.root=t)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,t){let r=t.astNodes.get(e);for(let[n,i]of(r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode)),Object.entries(e)))if(!n.startsWith("$"))if(Array.isArray(i)){let e=[];for(let a of(r[n]=e,i))rS(a)?e.push(this.setParent(this.hydrateAstNode(a,t),r)):rk(a)?e.push(this.hydrateReference(a,r,n,t)):e.push(a)}else rS(i)?r[n]=this.setParent(this.hydrateAstNode(i,t),r):rk(i)?r[n]=this.hydrateReference(i,r,n,t):void 0!==i&&(r[n]=i);return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,n){return this.linker.buildReference(t,r,n.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){let n=t.cstNodes.get(e);if("number"==typeof e.grammarSource&&(n.grammarSource=this.getGrammarElement(e.grammarSource)),n.astNode=t.astNodes.get(e.astNode),r_(n))for(let i of e.content){let e=this.hydrateCstNode(i,t,r++);n.content.push(e)}return n}hydrateCstLeafNode(e){let t=this.getTokenType(e.tokenType);return new TX(e.offset,e.length,{start:{line:e.startLine,character:e.startColumn},end:{line:e.endLine,character:e.endColumn}},t,e.hidden)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(let t of rZ(this.grammar))r5(t)&&this.grammarElementIdMap.set(t,e++)}};function $8(e){return{documentation:{CommentProvider:tD(e=>new $3(e),"CommentProvider"),DocumentationProvider:tD(e=>new $2(e),"DocumentationProvider")},parser:{AsyncParser:tD(e=>new $4(e),"AsyncParser"),GrammarConfig:tD(e=>a7(e),"GrammarConfig"),LangiumParser:tD(e=>vE(e),"LangiumParser"),CompletionParser:tD(e=>vR(e),"CompletionParser"),ValueConverter:tD(()=>new vC,"ValueConverter"),TokenBuilder:tD(()=>new vA,"TokenBuilder"),Lexer:tD(e=>new $C(e),"Lexer"),ParserErrorMessageProvider:tD(()=>new T7,"ParserErrorMessageProvider"),LexerErrorMessageProvider:tD(()=>new $b,"LexerErrorMessageProvider")},workspace:{AstNodeLocator:tD(()=>new $m,"AstNodeLocator"),AstNodeDescriptionProvider:tD(e=>new $f(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:tD(e=>new $d(e),"ReferenceDescriptionProvider")},references:{Linker:tD(e=>new vH(e),"Linker"),NameProvider:tD(()=>new vQ,"NameProvider"),ScopeProvider:tD(e=>new $e(e),"ScopeProvider"),ScopeComputation:tD(e=>new v0(e),"ScopeComputation"),References:tD(e=>new vZ(e),"References")},serializer:{Hydrator:tD(e=>new $7(e),"Hydrator"),JsonSerializer:tD(e=>new $n(e),"JsonSerializer")},validation:{DocumentValidator:tD(e=>new $l(e),"DocumentValidator"),ValidationRegistry:tD(e=>new $s(e),"ValidationRegistry")},shared:tD(()=>e.shared,"shared")}}function Re(e){return{ServiceRegistry:tD(e=>new $i(e),"ServiceRegistry"),workspace:{LangiumDocuments:tD(e=>new vW(e),"LangiumDocuments"),LangiumDocumentFactory:tD(e=>new vB(e),"LangiumDocumentFactory"),DocumentBuilder:tD(e=>new $$(e),"DocumentBuilder"),IndexManager:tD(e=>new $R(e),"IndexManager"),WorkspaceManager:tD(e=>new $E(e),"WorkspaceManager"),FileSystemProvider:tD(t=>e.fileSystemProvider(t),"FileSystemProvider"),WorkspaceLock:tD(()=>new $6,"WorkspaceLock"),ConfigurationProvider:tD(e=>new $y(e),"ConfigurationProvider")},profilers:{}}}function Rt(e,t,r,n,i,a,s,o,l){return Ri([e,t,r,n,i,a,s,o,l].reduce(Ro,{}))}tD($8,"createDefaultCoreModule"),tD(Re,"createDefaultSharedCoreModule"),(e6||(e6={})).merge=(e,t)=>Ro(Ro({},e),t),tD(Rt,"inject");var Rr=Symbol("isProxy");function Rn(e){if(e&&e[Rr])for(let t of Object.values(e))Rn(t);return e}function Ri(e,t){let r=new Proxy({},{deleteProperty:tD(()=>!1,"deleteProperty"),set:tD(()=>{throw Error("Cannot set property on injected service container")},"set"),get:tD((n,i)=>i===Rr||Rs(n,i,e,t||r),"get"),getOwnPropertyDescriptor:tD((n,i)=>(Rs(n,i,e,t||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:tD((t,r)=>r in e,"has"),ownKeys:tD(()=>[...Object.getOwnPropertyNames(e)],"ownKeys")});return r}tD(Rn,"eagerLoad"),tD(Ri,"_inject");var Ra=Symbol();function Rs(e,t,r,n){if(t in e){if(e[t]instanceof Error)throw Error("Construction failure. Please make sure that your dependencies are constructable. Cause: "+e[t]);if(e[t]===Ra)throw Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return e[t]}if(t in r){let i=r[t];e[t]=Ra;try{e[t]="function"==typeof i?i(n):Ri(i,n)}catch(r){throw e[t]=r instanceof Error?r:void 0,r}return e[t]}}function Ro(e,t){if(t){for(let[r,n]of Object.entries(t))if(null!=n)if("object"==typeof n){let t=e[r];"object"==typeof t&&null!==t?e[r]=Ro(t,n):e[r]=Ro({},n)}else e[r]=n}return e}tD(Rs,"_resolve"),tD(Ro,"_merge");var Rl={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]};(h=e7||(e7={})).REGULAR="indentation-sensitive",h.IGNORE_INDENTATION="ignore-indentation";var Ru=class extends vA{static{tD(this,"IndentationAwareTokenBuilder")}constructor(e=Rl){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options={...Rl,...e},this.indentTokenType=fZ({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=fZ({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(e,t){let r,n,i,a=super.buildTokens(e,t);if(!$S(a))throw Error("Invalid tokens built by default builder");let{indentTokenName:s,dedentTokenName:o,whitespaceTokenName:l,ignoreIndentationDelimiters:u}=this.options,c=[];for(let e of a){for(let[t,r]of u)e.name===t?e.PUSH_MODE=e7.IGNORE_INDENTATION:e.name===r&&(e.POP_MODE=!0);e.name===o?r=e:e.name===s?n=e:e.name===l?i=e:c.push(e)}if(!r||!n||!i)throw Error("Some indentation/whitespace tokens not found!");return u.length>0?{modes:{[e7.REGULAR]:[r,n,...c,i],[e7.IGNORE_INDENTATION]:[...c,i]},defaultMode:e7.REGULAR}:[r,n,i,...c]}flushLexingReport(e){return{...super.flushLexingReport(e),remainingDedents:this.flushRemainingDedents(e)}}isStartOfLine(e,t){return 0===t||"\r\n".includes(e[t-1])}matchWhitespace(e,t,r,n){this.whitespaceRegExp.lastIndex=t;let i=this.whitespaceRegExp.exec(e);return{currIndentLevel:i?.[0].length??0,prevIndentLevel:this.indentationStack.at(-1),match:i}}createIndentationTokenInstance(e,t,r,n){let i=this.getLineNumber(t,n);return f0(e,r,n,n+r.length,i,i,1,r.length)}getLineNumber(e,t){return e.substring(0,t).split(/\r\n|\r|\n/).length}indentMatcher(e,t,r,n){if(!this.isStartOfLine(e,t))return null;let{currIndentLevel:i,prevIndentLevel:a,match:s}=this.matchWhitespace(e,t,r,n);return i<=a?null:(this.indentationStack.push(i),s)}dedentMatcher(e,t,r,n){if(!this.isStartOfLine(e,t))return null;let{currIndentLevel:i,prevIndentLevel:a,match:s}=this.matchWhitespace(e,t,r,n);if(i>=a)return null;let o=this.indentationStack.lastIndexOf(i);if(-1===o)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${i} at offset: ${t}. Current indentation stack: ${this.indentationStack}`,offset:t,length:s?.[0]?.length??0,line:this.getLineNumber(e,t),column:1}),null;let l=this.indentationStack.length-o-1,u=e.substring(0,t).match(/[\r\n]+$/)?.[0].length??1;for(let n=0;n<l;n++){let n=this.createIndentationTokenInstance(this.dedentTokenType,e,"",t-(u-1));r.push(n),this.indentationStack.pop()}return null}buildTerminalToken(e){let t=super.buildTerminalToken(e),{indentTokenName:r,dedentTokenName:n,whitespaceTokenName:i}=this.options;return t.name===r?this.indentTokenType:t.name===n?this.dedentTokenType:t.name===i?fZ({name:i,pattern:this.whitespaceRegExp,group:fG.SKIPPED}):t}flushRemainingDedents(e){let t=[];for(;this.indentationStack.length>1;)t.push(this.createIndentationTokenInstance(this.dedentTokenType,e,"",e.length)),this.indentationStack.pop();return this.indentationStack=[0],t}},Rc=class extends $C{static{tD(this,"IndentationAwareLexer")}constructor(e){if(super(e),e.parser.TokenBuilder instanceof Ru)this.indentationTokenBuilder=e.parser.TokenBuilder;else throw Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(e,t=$A){let r=super.tokenize(e),n=r.report;t?.mode==="full"&&r.tokens.push(...n.remainingDedents),n.remainingDedents=[];let{indentTokenType:i,dedentTokenType:a}=this.indentationTokenBuilder,s=i.tokenTypeIdx,o=a.tokenTypeIdx,l=[],u=r.tokens.length-1;for(let e=0;e<u;e++){let t=r.tokens[e],n=r.tokens[e+1];if(t.tokenTypeIdx===s&&n.tokenTypeIdx===o){e++;continue}l.push(t)}return u>=0&&l.push(r.tokens[u]),r.tokens=l,r}},Rp={};tM(Rp,{AstUtils:()=>rK,BiMap:()=>vJ,Cancellation:()=>vS,ContextCache:()=>v6,CstUtils:()=>rC,DONE_RESULT:()=>rF,Deferred:()=>vD,Disposable:()=>e5,DisposableCache:()=>v9,DocumentCache:()=>v7,EMPTY_STREAM:()=>rj,ErrorWithLocation:()=>i9,GrammarUtils:()=>i4,MultiMap:()=>vX,OperationCancelled:()=>v_,Reduction:()=>eV,RegExpUtils:()=>i7,SimpleCache:()=>v5,StreamImpl:()=>rD,TreeStreamImpl:()=>rz,URI:()=>vK,UriTrie:()=>vU,UriUtils:()=>e2,WorkspaceCache:()=>v8,assertCondition:()=>i6,assertUnreachable:()=>i5,delayNextTick:()=>vk,interruptAndCheck:()=>vO,isOperationCancelled:()=>vP,loadGrammarFromJson:()=>Rg,setInterruptionPeriod:()=>vI,startCancelableOperation:()=>vw,stream:()=>rG}),tF(Rp,$h);var Rf=class{static{tD(this,"EmptyFileSystemProvider")}stat(e){throw Error("No file system is available.")}statSync(e){throw Error("No file system is available.")}async exists(){return!1}existsSync(){return!1}readBinary(){throw Error("No file system is available.")}readBinarySync(){throw Error("No file system is available.")}readFile(){throw Error("No file system is available.")}readFileSync(){throw Error("No file system is available.")}async readDirectory(){return[]}readDirectorySync(){return[]}},Rd={fileSystemProvider:tD(()=>new Rf,"fileSystemProvider")},Rm={Grammar:tD(()=>void 0,"Grammar"),LanguageMetaData:tD(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},Rh={AstReflection:tD(()=>new iD,"AstReflection")};function Ry(){let e=Rt(Re(Rd),Rh),t=Rt($8({shared:e}),Rm);return e.ServiceRegistry.register(t),t}function Rg(e){let t=Ry(),r=t.serializer.JsonSerializer.deserialize(e);return t.shared.workspace.LangiumDocumentFactory.fromModel(r,vK.parse(`memory:/${r.name??"grammar"}.langium`)),r}tD(Ry,"createMinimalGrammarServices"),tD(Rg,"loadGrammarFromJson"),tF(rA,Rp);var RT=class{static{tD(this,"DefaultLangiumProfiler")}constructor(e){this.activeCategories=new Set,this.allCategories=new Set(["validating","parsing","linking"]),this.activeCategories=e??new Set(this.allCategories),this.records=new vX}isActive(e){return this.activeCategories.has(e)}start(...e){e?e.forEach(e=>this.activeCategories.add(e)):this.activeCategories=new Set(this.allCategories)}stop(...e){e?e.forEach(e=>this.activeCategories.delete(e)):this.activeCategories.clear()}createTask(e,t){if(!this.isActive(e))throw Error(`Category "${e}" is not active.`);return console.log(`Creating profiling task for '${e}.${t}'.`),new Rv(t=>this.records.add(e,this.dumpRecord(e,t)),t)}dumpRecord(e,t){console.info(`Task ${e}.${t.identifier} executed in ${t.duration.toFixed(2)}ms and ended at ${t.date.toISOString()}`);let r=[];for(let e of t.entries.keys()){let n=t.entries.get(e),i=n.reduce((e,t)=>e+t);r.push({name:`${t.identifier}.${e}`,count:n.length,duration:i})}let n=t.duration-r.map(e=>e.duration).reduce((e,t)=>e+t,0);function i(e){return Math.round(100*e)/100}return r.push({name:t.identifier,count:1,duration:n}),r.sort((e,t)=>t.duration-e.duration),tD(i,"Round"),console.table(r.map(e=>({Element:e.name,Count:e.count,"Self %":i(100*e.duration/t.duration),"Time (ms)":i(e.duration)}))),t}getRecords(...e){return 0===e.length?this.records.values():this.records.entries().filter(t=>e.some(e=>e===t[0])).flatMap(e=>e[1])}},Rv=class{static{tD(this,"ProfilingTask")}constructor(e,t){this.stack=[],this.entries=new vX,this.addRecord=e,this.identifier=t}start(){if(void 0!==this.startTime)throw Error(`Task "${this.identifier}" is already started.`);this.startTime=performance.now()}stop(){if(void 0===this.startTime)throw Error(`Task "${this.identifier}" was not started.`);if(0!==this.stack.length)throw Error(`Task "${this.identifier}" cannot be stopped before sub-task(s): ${this.stack.map(e=>e.id).join(", ")}.`);let e={identifier:this.identifier,date:new Date,duration:performance.now()-this.startTime,entries:this.entries};this.addRecord(e),this.startTime=void 0,this.entries.clear()}startSubTask(e){this.stack.push({id:e,start:performance.now(),content:0})}stopSubTask(e){let t=this.stack.pop();if(!t)throw Error(`Task "${this.identifier}.${e}" was not started.`);if(t.id!==e)throw Error(`Sub-Task "${t.id}" is not already stopped.`);let r=performance.now()-t.start;void 0!==this.stack.at(-1)&&(this.stack[this.stack.length-1].content+=r);let n=r-t.content;this.entries.add(e,n)}};(e8||(e8={})).Terminals={ARROW_DIRECTION:/L|R|T|B/,ARROW_GROUP:/\{group\}/,ARROW_INTO:/<|>/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,ARCH_ICON:/\([\w-:]+\)/,ARCH_TITLE:/\[(?:"([^"\\]|\\.)*"|'([^'\\]|\\.)*'|[^\[\]\r\n]+)\]/},(te||(te={})).Terminals={DOMAIN_NAME:/complex|complicated|clear|chaotic|confusion/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(tt||(tt={})).Terminals={EM_ID:/[_a-zA-Z][\w_]*/,EM_FID:/\d{1,3}/,EM_DATA_INLINE:/\{(.*)\}|"(.*)"|'(.*)'/,EM_DATA_BLOCK:/\{[\t ]*\r?\n(?:[\S\s]*?\r?\n)?\}(?:\r?\n|(?!\S))/,EM_ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,EM_ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,EM_TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,EM_WS:/\s+/,EM_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,EM_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,EM_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,EM_ML_COMMENT:/\/\*[\s\S]*?\*\//,EM_SL_COMMENT:/\/\/[^\n\r]*/},(tr||(tr={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,REFERENCE:/\w([-\./\w]*[-\w])?/},(tn||(tn={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(ti||(ti={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(ta||(ta={})).Terminals={NUMBER_PIE:/(?:-?[0-9]+\.[0-9]+(?!\.))|(?:-?(0|[1-9][0-9]*)(?!\.))/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(ts||(ts={})).Terminals={GRATICULE:/circle|polygon/,BOOLEAN:/true|false/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,NUMBER:/(?:[0-9]+\.[0-9]+(?!\.))|(?:0|[1-9][0-9]*(?!\.))/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},(to||(to={})).Terminals={TITLE:/title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,ACC_TITLE:/accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ABNF_RULENAME:/[A-Za-z][A-Za-z0-9-]*/,ABNF_STRING:/"[^"]*"/,ABNF_NUMVAL:/%[xXdDbB][0-9A-Fa-f]+(?:-[0-9A-Fa-f]+|\.[0-9A-Fa-f]+)*/,ABNF_REPEAT:/[0-9]*\*[0-9]*/,ABNF_EXACT_REPEAT:/[0-9]+/,ABNF_WHITESPACE:/[\t \r\n]+/,ABNF_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,ABNF_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,ABNF_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,ABNF_COMMENT:/;[^\n\r]*/},(tl||(tl={})).Terminals={TITLE:/title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,ACC_TITLE:/accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,EBNF_ID:/[A-Z_a-z][\w-]*/,EBNF_STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,EBNF_SPECIAL_SEQUENCE:/\?(?=[^?;]*[^?\s;][^?;]*\?)[^?;]*\?/,EBNF_WHITESPACE:/[\t \r\n]+/,EBNF_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,EBNF_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,EBNF_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,EBNF_BLOCK_COMMENT:/\/\*[\s\S]*?\*\//,EBNF_ISO_COMMENT:/\(\*[\s\S]*?\*\)/},(tu||(tu={})).Terminals={TITLE:/title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,ACC_TITLE:/accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,RR_ID:/[A-Z_a-z][\w-]*/,RR_STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,RR_WHITESPACE:/[\t \r\n]+/,RR_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,RR_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,RR_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,RR_BLOCK_COMMENT:/\/\*[\s\S]*?\*\//},(tc||(tc={})).Terminals={TITLE:/title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,ACC_TITLE:/accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,PEG_ID:/[A-Z_a-z][\w-]*/,PEG_STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,PEG_WHITESPACE:/[\t \r\n]+/,PEG_YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,PEG_DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,PEG_SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/,PEG_LINE_COMMENT:/#[^\n\r]*/},(tp||(tp={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,TREEMAP_KEYWORD:/treemap-beta|treemap/,CLASS_DEF:/classDef\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\s+([^;\r\n]*))?(?:;)?/,STYLE_SEPARATOR:/:::/,SEPARATOR:/:/,COMMA:/,/,INDENTATION:/[ \t]{1,}/,WS:/[ \t]+/,ML_COMMENT:/\%\%[^\n]*/,NL:/\r?\n/,ID2:/[a-zA-Z_][a-zA-Z0-9_]*/,NUMBER2:/[0-9_\.\,]+/,STRING2:/"[^"]*"|'[^']*'/},(tf||(tf={})).Terminals={ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,CLASS_ANNOTATION:/[ \t]+:::[ \t]*[A-Za-z_][\w-]*/,ICON_ANNOTATION:/[ \t]+icon\([\w-]*(?::[\w-]+)?\)/,DESC_ANNOTATION:/[ \t]+##[^\n\r]*/,INDENTATION:/[ \t]{1,}/,QUOTED_NAME:/"[^"]*"|'[^']*'/,WS:/[ \t]+/,ML_COMMENT:/\%\%[^\n]*/,NL:/\r?\n/,BARE_NAME:/(?!:::|icon\(|##)[^ \t\n\r"'](?:(?![ \t]+:::[ \t]*[A-Za-z_]|[ \t]+icon\(|[ \t]+##)[^\n\r])*/},(td||(td={})).Terminals={WARDLEY_NUMBER:/[0-9]+\.[0-9]+/,ARROW:/->/,LINK_PORT:/\+<>|\+>|\+</,LINK_ARROW:/-->|-\.->|>|\+'[^']*'<>|\+'[^']*'<|\+'[^']*'>/,LINK_LABEL:/;[^\n\r]+/,STRATEGY:/build|buy|outsource|market/,KW_WARDLEY:/wardley-beta/,KW_SIZE:/size/,KW_EVOLUTION:/evolution/,KW_ANCHOR:/anchor/,KW_COMPONENT:/component/,KW_LABEL:/label/,KW_INERTIA:/inertia/,KW_EVOLVE:/evolve/,KW_PIPELINE:/pipeline/,KW_NOTE:/note/,KW_ANNOTATIONS:/annotations/,KW_ANNOTATION:/annotation/,KW_ACCELERATOR:/accelerator/,KW_DEACCELERATOR:/deaccelerator/,NAME_WITH_SPACES:/(?!title\s|accTitle|accDescr)[A-Za-z](?:[A-Za-z0-9_()&]|-(?!>))*(?:[ \t]+[A-Za-z(](?:[A-Za-z0-9_()&]|-(?!>))*)*/,WS:/[ \t]+/,ACC_DESCR:/[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/,TITLE:/[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/,INT:/0|[1-9][0-9]*(?!\.)/,STRING:/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/,ID:/[\w]([-\w]*\w)?/,NEWLINE:/\r?\n/,WHITESPACE:/[\t ]+/,YAML:/---[\t ]*\r?\n(?:[\S\s]*?\r?\n)?---(?:\r?\n|(?!\S))/,DIRECTIVE:/[\t ]*%%{[\S\s]*?}%%(?:\r?\n|(?!\S))/,SINGLE_LINE_COMMENT:/[\t ]*%%[^\n\r]*/},e8.Terminals,te.Terminals,tt.Terminals,tr.Terminals,tn.Terminals,ti.Terminals,ta.Terminals,ts.Terminals,to.Terminals,tl.Terminals,tu.Terminals,tc.Terminals,tf.Terminals,tp.Terminals,td.Terminals;var R$="AbnfPrimary",RR="Architecture";tD(function(e){return RJ.isInstance(e,RR)},"isArchitecture");var RE="Axis",Rb="Branch";tD(function(e){return RJ.isInstance(e,Rb)},"isBranch");var RA="Commit";tD(function(e){return RJ.isInstance(e,RA)},"isCommit");var RC="Cynefin";tD(function(e){return RJ.isInstance(e,RC)},"isCynefin");var RS="DomainBlock";tD(function(e){return RJ.isInstance(e,RS)},"isDomainBlock");var Rk="DomainItem";tD(function(e){return RJ.isInstance(e,Rk)},"isDomainItem");var Rx="EbnfPostfix",RN="EbnfPrimary",Rw="EmDataEntity",RI="EmFrame",R_="EmModelEntity";tD(function(e){return"rmo"===e||"readmodel"===e||"ui"===e||"cmd"===e||"command"===e||"evt"===e||"event"===e||"pcr"===e||"processor"===e},"isEmModelEntityType");var RP="EmResetFrame";function RO(e){return RJ.isInstance(e,RP)}tD(RO,"isEmResetFrame");var RD="GitGraph";tD(function(e){return RJ.isInstance(e,RD)},"isGitGraph");var RL="Info";tD(function(e){return RJ.isInstance(e,RL)},"isInfo");var RM="Item",Rj="Merge";tD(function(e){return RJ.isInstance(e,Rj)},"isMerge");var RF="Packet";tD(function(e){return RJ.isInstance(e,RF)},"isPacket");var RG="PacketBlock";tD(function(e){return RJ.isInstance(e,RG)},"isPacketBlock");var Rz="PegPrimary";tD(function(e){return RJ.isInstance(e,"Pie")},"isPie");var RK="PieSection";tD(function(e){return RJ.isInstance(e,RK)},"isPieSection");var Rq="Railroad";tD(function(e){return RJ.isInstance(e,Rq)},"isRailroad");var RU="RailroadAbnf";tD(function(e){return RJ.isInstance(e,RU)},"isRailroadAbnf");var RB="RailroadEbnf";tD(function(e){return RJ.isInstance(e,RB)},"isRailroadEbnf");var RW="RailroadExpression",RV="RailroadPeg";tD(function(e){return RJ.isInstance(e,RV)},"isRailroadPeg");var RH="Statement",RY="Transition";tD(function(e){return RJ.isInstance(e,RY)},"isTransition");var RQ="Treemap";tD(function(e){return RJ.isInstance(e,RQ)},"isTreemap");var RZ="Wardley";tD(function(e){return RJ.isInstance(e,RZ)},"isWardley");var RX=class extends rI{constructor(){super(...arguments),this.types={AbnfAlternation:{name:"AbnfAlternation",properties:{alternatives:{name:"alternatives",defaultValue:[]}},superTypes:[]},AbnfConcatenation:{name:"AbnfConcatenation",properties:{elements:{name:"elements",defaultValue:[]}},superTypes:[]},AbnfElement:{name:"AbnfElement",properties:{primary:{name:"primary"},repeat:{name:"repeat"}},superTypes:[]},AbnfGroup:{name:"AbnfGroup",properties:{element:{name:"element"}},superTypes:[R$]},AbnfNumVal:{name:"AbnfNumVal",properties:{value:{name:"value"}},superTypes:[R$]},AbnfOptionalGroup:{name:"AbnfOptionalGroup",properties:{element:{name:"element"}},superTypes:[R$]},AbnfPrimary:{name:R$,properties:{},superTypes:[]},AbnfRule:{name:"AbnfRule",properties:{definition:{name:"definition"},name:{name:"name"}},superTypes:[]},AbnfRuleName:{name:"AbnfRuleName",properties:{name:{name:"name"}},superTypes:[R$]},AbnfStringLiteral:{name:"AbnfStringLiteral",properties:{value:{name:"value"}},superTypes:[R$]},Accelerator:{name:"Accelerator",properties:{name:{name:"name"},x:{name:"x"},y:{name:"y"}},superTypes:[]},Alignment:{name:"Alignment",properties:{direction:{name:"direction"},members:{name:"members",defaultValue:[]}},superTypes:[]},Anchor:{name:"Anchor",properties:{evolution:{name:"evolution"},name:{name:"name"},visibility:{name:"visibility"}},superTypes:[]},Annotation:{name:"Annotation",properties:{number:{name:"number"},text:{name:"text"},x:{name:"x"},y:{name:"y"}},superTypes:[]},Annotations:{name:"Annotations",properties:{x:{name:"x"},y:{name:"y"}},superTypes:[]},Architecture:{name:RR,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},alignments:{name:"alignments",defaultValue:[]},edges:{name:"edges",defaultValue:[]},groups:{name:"groups",defaultValue:[]},junctions:{name:"junctions",defaultValue:[]},services:{name:"services",defaultValue:[]},title:{name:"title"}},superTypes:[]},Axis:{name:RE,properties:{label:{name:"label"},name:{name:"name"}},superTypes:[]},Branch:{name:Rb,properties:{name:{name:"name"},order:{name:"order"}},superTypes:[RH]},Checkout:{name:"Checkout",properties:{branch:{name:"branch"}},superTypes:[RH]},CherryPicking:{name:"CherryPicking",properties:{id:{name:"id"},parent:{name:"parent"},tags:{name:"tags",defaultValue:[]}},superTypes:[RH]},ClassDefStatement:{name:"ClassDefStatement",properties:{className:{name:"className"},styleText:{name:"styleText"}},superTypes:[]},Commit:{name:RA,properties:{id:{name:"id"},message:{name:"message"},tags:{name:"tags",defaultValue:[]},type:{name:"type"}},superTypes:[RH]},Common:{name:"Common",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},title:{name:"title"}},superTypes:[]},Component:{name:"Component",properties:{decorator:{name:"decorator"},evolution:{name:"evolution"},inertia:{name:"inertia",defaultValue:!1},label:{name:"label"},name:{name:"name"},visibility:{name:"visibility"}},superTypes:[]},Curve:{name:"Curve",properties:{entries:{name:"entries",defaultValue:[]},label:{name:"label"},name:{name:"name"}},superTypes:[]},Cynefin:{name:RC,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},domains:{name:"domains",defaultValue:[]},title:{name:"title"},transitions:{name:"transitions",defaultValue:[]}},superTypes:[]},Deaccelerator:{name:"Deaccelerator",properties:{name:{name:"name"},x:{name:"x"},y:{name:"y"}},superTypes:[]},Decorator:{name:"Decorator",properties:{strategy:{name:"strategy"}},superTypes:[]},Direction:{name:"Direction",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},dir:{name:"dir"},statements:{name:"statements",defaultValue:[]},title:{name:"title"}},superTypes:[RD]},DomainBlock:{name:RS,properties:{domain:{name:"domain"},items:{name:"items",defaultValue:[]}},superTypes:[]},DomainItem:{name:Rk,properties:{label:{name:"label"}},superTypes:[]},EbnfChoice:{name:"EbnfChoice",properties:{alternatives:{name:"alternatives",defaultValue:[]}},superTypes:[]},EbnfExceptionPostfix:{name:"EbnfExceptionPostfix",properties:{except:{name:"except"}},superTypes:[Rx]},EbnfGroup:{name:"EbnfGroup",properties:{element:{name:"element"}},superTypes:[RN]},EbnfNonTerminal:{name:"EbnfNonTerminal",properties:{name:{name:"name"}},superTypes:[RN]},EbnfOneOrMorePostfix:{name:"EbnfOneOrMorePostfix",properties:{operator:{name:"operator"}},superTypes:[Rx]},EbnfOptional:{name:"EbnfOptional",properties:{element:{name:"element"}},superTypes:[RN]},EbnfOptionalPostfix:{name:"EbnfOptionalPostfix",properties:{operator:{name:"operator"}},superTypes:[Rx]},EbnfPostfix:{name:Rx,properties:{},superTypes:[]},EbnfPrimary:{name:RN,properties:{},superTypes:[]},EbnfRepetition:{name:"EbnfRepetition",properties:{element:{name:"element"}},superTypes:[RN]},EbnfRule:{name:"EbnfRule",properties:{definition:{name:"definition"},name:{name:"name"}},superTypes:[]},EbnfSequence:{name:"EbnfSequence",properties:{elements:{name:"elements",defaultValue:[]}},superTypes:[]},EbnfSpecial:{name:"EbnfSpecial",properties:{text:{name:"text"}},superTypes:[RN]},EbnfTerm:{name:"EbnfTerm",properties:{base:{name:"base"},postfixes:{name:"postfixes",defaultValue:[]}},superTypes:[]},EbnfTerminal:{name:"EbnfTerminal",properties:{value:{name:"value"}},superTypes:[RN]},EbnfZeroOrMorePostfix:{name:"EbnfZeroOrMorePostfix",properties:{operator:{name:"operator"}},superTypes:[Rx]},Edge:{name:"Edge",properties:{lhsDir:{name:"lhsDir"},lhsGroup:{name:"lhsGroup",defaultValue:!1},lhsId:{name:"lhsId"},lhsInto:{name:"lhsInto",defaultValue:!1},rhsDir:{name:"rhsDir"},rhsGroup:{name:"rhsGroup",defaultValue:!1},rhsId:{name:"rhsId"},rhsInto:{name:"rhsInto",defaultValue:!1},title:{name:"title"}},superTypes:[]},EmDataEntity:{name:Rw,properties:{dataBlockValue:{name:"dataBlockValue"},dataType:{name:"dataType"},name:{name:"name"}},superTypes:[]},EmFrame:{name:RI,properties:{},superTypes:[]},EmGwt:{name:"EmGwt",properties:{givenStatements:{name:"givenStatements",defaultValue:[]},sourceFrame:{name:"sourceFrame",referenceType:RI},thenStatements:{name:"thenStatements",defaultValue:[]},whenStatements:{name:"whenStatements",defaultValue:[]}},superTypes:[]},EmGwtStatement:{name:"EmGwtStatement",properties:{entityIdentifier:{name:"entityIdentifier",referenceType:R_}},superTypes:[]},EmModelEntity:{name:R_,properties:{name:{name:"name"}},superTypes:[]},EmNoteEntity:{name:"EmNoteEntity",properties:{dataBlockValue:{name:"dataBlockValue"},dataType:{name:"dataType"},sourceFrame:{name:"sourceFrame",referenceType:RI}},superTypes:[]},EmResetFrame:{name:RP,properties:{dataInlineValue:{name:"dataInlineValue"},dataReference:{name:"dataReference",referenceType:Rw},dataType:{name:"dataType"},entityIdentifier:{name:"entityIdentifier"},modelEntityType:{name:"modelEntityType"},name:{name:"name"},sourceFrames:{name:"sourceFrames",defaultValue:[],referenceType:RI}},superTypes:[RI]},EmTimeFrame:{name:"EmTimeFrame",properties:{dataInlineValue:{name:"dataInlineValue"},dataReference:{name:"dataReference",referenceType:Rw},dataType:{name:"dataType"},entityIdentifier:{name:"entityIdentifier"},modelEntityType:{name:"modelEntityType"},name:{name:"name"},sourceFrames:{name:"sourceFrames",defaultValue:[],referenceType:RI}},superTypes:[RI]},Entry:{name:"Entry",properties:{axis:{name:"axis",referenceType:RE},value:{name:"value"}},superTypes:[]},EventModel:{name:"EventModel",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},dataEntities:{name:"dataEntities",defaultValue:[]},frames:{name:"frames",defaultValue:[]},gwtEntities:{name:"gwtEntities",defaultValue:[]},modelEntities:{name:"modelEntities",defaultValue:[]},noteEntities:{name:"noteEntities",defaultValue:[]},title:{name:"title"}},superTypes:[]},Evolution:{name:"Evolution",properties:{stages:{name:"stages",defaultValue:[]}},superTypes:[]},EvolutionStage:{name:"EvolutionStage",properties:{boundary:{name:"boundary"},name:{name:"name"},secondName:{name:"secondName"}},superTypes:[]},Evolve:{name:"Evolve",properties:{component:{name:"component"},target:{name:"target"}},superTypes:[]},GitGraph:{name:RD,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},statements:{name:"statements",defaultValue:[]},title:{name:"title"}},superTypes:[]},Group:{name:"Group",properties:{icon:{name:"icon"},id:{name:"id"},in:{name:"in"},title:{name:"title"}},superTypes:[]},Info:{name:RL,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},title:{name:"title"}},superTypes:[]},Item:{name:RM,properties:{classSelector:{name:"classSelector"},name:{name:"name"}},superTypes:[]},Junction:{name:"Junction",properties:{id:{name:"id"},in:{name:"in"}},superTypes:[]},Label:{name:"Label",properties:{negX:{name:"negX",defaultValue:!1},negY:{name:"negY",defaultValue:!1},offsetX:{name:"offsetX"},offsetY:{name:"offsetY"}},superTypes:[]},Leaf:{name:"Leaf",properties:{classSelector:{name:"classSelector"},name:{name:"name"},value:{name:"value"}},superTypes:[RM]},Link:{name:"Link",properties:{arrow:{name:"arrow"},from:{name:"from"},fromPort:{name:"fromPort"},linkLabel:{name:"linkLabel"},to:{name:"to"},toPort:{name:"toPort"}},superTypes:[]},Merge:{name:Rj,properties:{branch:{name:"branch"},id:{name:"id"},tags:{name:"tags",defaultValue:[]},type:{name:"type"}},superTypes:[RH]},Note:{name:"Note",properties:{evolution:{name:"evolution"},text:{name:"text"},visibility:{name:"visibility"}},superTypes:[]},Option:{name:"Option",properties:{name:{name:"name"},value:{name:"value",defaultValue:!1}},superTypes:[]},Packet:{name:RF,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},blocks:{name:"blocks",defaultValue:[]},title:{name:"title"}},superTypes:[]},PacketBlock:{name:RG,properties:{bits:{name:"bits"},end:{name:"end"},label:{name:"label"},start:{name:"start"}},superTypes:[]},PegAny:{name:"PegAny",properties:{dot:{name:"dot"}},superTypes:[Rz]},PegGroup:{name:"PegGroup",properties:{element:{name:"element"}},superTypes:[Rz]},PegIdentifier:{name:"PegIdentifier",properties:{name:{name:"name"}},superTypes:[Rz]},PegLiteral:{name:"PegLiteral",properties:{value:{name:"value"}},superTypes:[Rz]},PegOrderedChoice:{name:"PegOrderedChoice",properties:{alternatives:{name:"alternatives",defaultValue:[]}},superTypes:[]},PegPrefix:{name:"PegPrefix",properties:{operator:{name:"operator"},suffix:{name:"suffix"}},superTypes:[]},PegPrimary:{name:Rz,properties:{},superTypes:[]},PegRule:{name:"PegRule",properties:{definition:{name:"definition"},name:{name:"name"}},superTypes:[]},PegSequence:{name:"PegSequence",properties:{elements:{name:"elements",defaultValue:[]}},superTypes:[]},PegSuffix:{name:"PegSuffix",properties:{operator:{name:"operator"},primary:{name:"primary"}},superTypes:[]},Pie:{name:"Pie",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},sections:{name:"sections",defaultValue:[]},showData:{name:"showData",defaultValue:!1},title:{name:"title"}},superTypes:[]},PieSection:{name:RK,properties:{label:{name:"label"},value:{name:"value"}},superTypes:[]},Pipeline:{name:"Pipeline",properties:{components:{name:"components",defaultValue:[]},parent:{name:"parent"}},superTypes:[]},PipelineComponent:{name:"PipelineComponent",properties:{evolution:{name:"evolution"},label:{name:"label"},name:{name:"name"}},superTypes:[]},Radar:{name:"Radar",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},axes:{name:"axes",defaultValue:[]},curves:{name:"curves",defaultValue:[]},options:{name:"options",defaultValue:[]},title:{name:"title"}},superTypes:[]},Railroad:{name:Rq,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},rules:{name:"rules",defaultValue:[]},title:{name:"title"}},superTypes:[]},RailroadAbnf:{name:RU,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},rules:{name:"rules",defaultValue:[]},title:{name:"title"}},superTypes:[]},RailroadChoiceExpr:{name:"RailroadChoiceExpr",properties:{alternatives:{name:"alternatives",defaultValue:[]}},superTypes:[RW]},RailroadEbnf:{name:RB,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},rules:{name:"rules",defaultValue:[]},title:{name:"title"}},superTypes:[]},RailroadExpression:{name:RW,properties:{},superTypes:[]},RailroadNonTerminalExpr:{name:"RailroadNonTerminalExpr",properties:{name:{name:"name"}},superTypes:[RW]},RailroadOneOrMoreExpr:{name:"RailroadOneOrMoreExpr",properties:{element:{name:"element"}},superTypes:[RW]},RailroadOptionalExpr:{name:"RailroadOptionalExpr",properties:{element:{name:"element"}},superTypes:[RW]},RailroadPeg:{name:RV,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},rules:{name:"rules",defaultValue:[]},title:{name:"title"}},superTypes:[]},RailroadRule:{name:"RailroadRule",properties:{definition:{name:"definition"},name:{name:"name"}},superTypes:[]},RailroadSequenceExpr:{name:"RailroadSequenceExpr",properties:{elements:{name:"elements",defaultValue:[]}},superTypes:[RW]},RailroadSpecialExpr:{name:"RailroadSpecialExpr",properties:{text:{name:"text"}},superTypes:[RW]},RailroadTerminalExpr:{name:"RailroadTerminalExpr",properties:{value:{name:"value"}},superTypes:[RW]},RailroadZeroOrMoreExpr:{name:"RailroadZeroOrMoreExpr",properties:{element:{name:"element"}},superTypes:[RW]},Section:{name:"Section",properties:{classSelector:{name:"classSelector"},name:{name:"name"}},superTypes:[RM]},Service:{name:"Service",properties:{icon:{name:"icon"},iconText:{name:"iconText"},id:{name:"id"},in:{name:"in"},title:{name:"title"}},superTypes:[]},Size:{name:"Size",properties:{height:{name:"height"},width:{name:"width"}},superTypes:[]},Statement:{name:RH,properties:{},superTypes:[]},Transition:{name:RY,properties:{from:{name:"from"},label:{name:"label"},to:{name:"to"}},superTypes:[]},TreeNode:{name:"TreeNode",properties:{classAnnotation:{name:"classAnnotation"},descAnnotation:{name:"descAnnotation"},iconAnnotation:{name:"iconAnnotation"},indent:{name:"indent"},name:{name:"name"}},superTypes:[]},TreeView:{name:"TreeView",properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},nodes:{name:"nodes",defaultValue:[]},title:{name:"title"}},superTypes:[]},Treemap:{name:RQ,properties:{accDescr:{name:"accDescr"},accTitle:{name:"accTitle"},title:{name:"title"},TreemapRows:{name:"TreemapRows",defaultValue:[]}},superTypes:[]},TreemapRow:{name:"TreemapRow",properties:{indent:{name:"indent"},item:{name:"item"}},superTypes:[]},Wardley:{name:RZ,properties:{accDescr:{name:"accDescr"},accelerators:{name:"accelerators",defaultValue:[]},accTitle:{name:"accTitle"},anchors:{name:"anchors",defaultValue:[]},annotation:{name:"annotation",defaultValue:[]},annotations:{name:"annotations",defaultValue:[]},components:{name:"components",defaultValue:[]},deaccelerators:{name:"deaccelerators",defaultValue:[]},evolution:{name:"evolution"},evolves:{name:"evolves",defaultValue:[]},links:{name:"links",defaultValue:[]},notes:{name:"notes",defaultValue:[]},pipelines:{name:"pipelines",defaultValue:[]},size:{name:"size"},title:{name:"title"}},superTypes:[]}}}static{tD(this,"MermaidAstReflection")}},RJ=new RX,R0=tD(()=>tm??(tm=Rg('{"$type":"Grammar","isDeclared":true,"name":"ArchitectureGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"alignments","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Alignment","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"align"},{"$type":"Assignment","feature":"direction","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"row"},{"$type":"Keyword","value":"column"}]}},{"$type":"Assignment","feature":"members","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Assignment","feature":"members","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"+"},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@20"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[(?:\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'|[^\\\\[\\\\]\\\\r\\\\n]+)\\\\]/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}')),"ArchitectureGrammarGrammar"),R1=tD(()=>th??(th=Rg('{"$type":"Grammar","isDeclared":true,"name":"CynefinGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Cynefin","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"cynefin-beta"},{"$type":"Keyword","value":"cynefin-beta:"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"domains","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"transitions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"DomainBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"domain","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Assignment","feature":"items","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"DomainItem","definition":{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Transition","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"from","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Keyword","value":"--\x3e"},{"$type":"Assignment","feature":"to","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"DOMAIN_NAME","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"complex"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"complicated"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"clear"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"chaotic"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"confusion"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"CynefinGrammarGrammar"),R2=tD(()=>ty??(ty=Rg('{"$type":"Grammar","isDeclared":true,"name":"EventModeling","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","entry":true,"name":"EventModel","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"eventmodeling"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"modelEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"frames","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"dataEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"noteEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"gwtEntities","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmModelEntityType","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"rmo"},{"$type":"Keyword","value":"readmodel"},{"$type":"Keyword","value":"ui"},{"$type":"Keyword","value":"cmd"},{"$type":"Keyword","value":"command"},{"$type":"Keyword","value":"evt"},{"$type":"Keyword","value":"event"},{"$type":"Keyword","value":"pcr"},{"$type":"Keyword","value":"processor"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmDataType","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"json"},{"$type":"Keyword","value":"jsobj"},{"$type":"Keyword","value":"figma"},{"$type":"Keyword","value":"salt"},{"$type":"Keyword","value":"uri"},{"$type":"Keyword","value":"md"},{"$type":"Keyword","value":"html"},{"$type":"Keyword","value":"text"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"EmDataInline","definition":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"`"},{"$type":"Assignment","feature":"dataType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":"`"}],"cardinality":"?"},{"$type":"Assignment","feature":"dataInlineValue","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"EmDataBlock","definition":{"$type":"Group","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"`"},{"$type":"Assignment","feature":"dataType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":"`"}],"cardinality":"?"},{"$type":"Assignment","feature":"dataBlockValue","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"QualifiedName","dataType":"string","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"."},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmTimeFrame","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"tf"},{"$type":"Keyword","value":"timeframe"}]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"modelEntityType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"entityIdentifier","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"->>"},{"$type":"Assignment","feature":"sourceFrames","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}}],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"[["},{"$type":"Assignment","feature":"dataReference","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@10"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":"]]"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmResetFrame","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"rf"},{"$type":"Keyword","value":"resetframe"}]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"modelEntityType","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"entityIdentifier","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"->>"},{"$type":"Assignment","feature":"sourceFrames","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}}],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"[["},{"$type":"Assignment","feature":"dataReference","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@10"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":"]]"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmFrame","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmModelEntity","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"entity"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmDataEntity","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"data"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmNoteEntity","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"note"},{"$type":"Assignment","feature":"sourceFrame","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmGwt","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"gwt"},{"$type":"Assignment","feature":"sourceFrame","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@8"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":"given"},{"$type":"Assignment","feature":"givenStatements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"+"},{"$type":"Group","elements":[{"$type":"Keyword","value":"when"},{"$type":"Assignment","feature":"whenStatements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"+"}],"cardinality":"?"},{"$type":"Keyword","value":"then"},{"$type":"Assignment","feature":"thenStatements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"+"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EmGwtStatement","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},{"$type":"Assignment","feature":"entityIdentifier","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@9"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EM_EID","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EM_FI","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"EM_ID","definition":{"$type":"RegexToken","regex":"/[_a-zA-Z][\\\\w_]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_FID","definition":{"$type":"RegexToken","regex":"/\\\\d{1,3}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_DATA_INLINE","definition":{"$type":"RegexToken","regex":"/\\\\{(.*)\\\\}|\\"(.*)\\"|\'(.*)\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_DATA_BLOCK","definition":{"$type":"RegexToken","regex":"/\\\\{[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?\\\\}(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EM_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"EM_WS","definition":{"$type":"RegexToken","regex":"/\\\\s+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EM_SL_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\/[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"imports":[],"types":[]}')),"EventModelingGrammar"),R3=tD(()=>tg??(tg=Rg('{"$type":"Grammar","isDeclared":true,"name":"GitGraphGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[],"types":[]}')),"GitGraphGrammarGrammar"),R4=tD(()=>tT??(tT=Rg('{"$type":"Grammar","isDeclared":true,"name":"InfoGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"InfoGrammarGrammar"),R9=tD(()=>tv??(tv=Rg('{"$type":"Grammar","isDeclared":true,"name":"PacketGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"PacketGrammarGrammar"),R5=tD(()=>t$??(t$=Rg('{"$type":"Grammar","isDeclared":true,"name":"PieGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"PieGrammarGrammar"),R6=tD(()=>tR??(tR=Rg('{"$type":"Grammar","isDeclared":true,"name":"RadarGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false,"isMulti":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}},"isMulti":false}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"types":[]}')),"RadarGrammarGrammar"),R7=tD(()=>tE??(tE=Rg('{"$type":"Grammar","isDeclared":true,"name":"RailroadAbnfGrammar","rules":[{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_RULENAME","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[A-Za-z][A-Za-z0-9-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_NUMVAL","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/%[xXdDbB][0-9A-Fa-f]+(?:-[0-9A-Fa-f]+|\\\\.[0-9A-Fa-f]+)*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_REPEAT","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[0-9]*\\\\*[0-9]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ABNF_EXACT_REPEAT","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[0-9]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t \\\\r\\\\n]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ABNF_COMMENT","definition":{"$type":"RegexToken","regex":"/;[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"ParserRule","entry":true,"name":"RailroadAbnf","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"railroad-abnf-beta"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfRule","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Keyword","value":"="},{"$type":"Assignment","feature":"definition","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Keyword","value":";"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfAlternation","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"/"},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfConcatenation","returnType":{"$ref":"#/interfaces@3"},"definition":{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"cardinality":"+"},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfElement","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"repeat","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"repeat","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"primary","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfPrimary","returnType":{"$ref":"#/interfaces@5"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfStringLiteral","returnType":{"$ref":"#/interfaces@6"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfNumVal","returnType":{"$ref":"#/interfaces@7"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfRuleName","returnType":{"$ref":"#/interfaces@8"},"definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfGroup","returnType":{"$ref":"#/interfaces@9"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"AbnfOptionalGroup","returnType":{"$ref":"#/interfaces@10"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"RailroadAbnf","attributes":[{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"rules","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@1"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfRule","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"definition","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfAlternation","attributes":[{"$type":"TypeAttribute","name":"alternatives","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@3"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfConcatenation","attributes":[{"$type":"TypeAttribute","name":"elements","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@4"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfElement","attributes":[{"$type":"TypeAttribute","name":"repeat","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"primary","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@5"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"AbnfPrimary","attributes":[],"superTypes":[]},{"$type":"Interface","name":"AbnfStringLiteral","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"AbnfNumVal","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"AbnfRuleName","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"AbnfGroup","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"AbnfOptionalGroup","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]}],"imports":[],"types":[]}')),"RailroadAbnfGrammarGrammar"),R8=tD(()=>tb??(tb=Rg('{"$type":"Grammar","isDeclared":true,"name":"RailroadEbnfGrammar","rules":[{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EBNF_ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[A-Z_a-z][\\\\w-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EBNF_STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"EBNF_SPECIAL_SEQUENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\?(?=[^?;]*[^?\\\\s;][^?;]*\\\\?)[^?;]*\\\\?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t \\\\r\\\\n]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_BLOCK_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"EBNF_ISO_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\(\\\\*[\\\\s\\\\S]*?\\\\*\\\\)/","parenthesized":false},"fragment":false},{"$type":"ParserRule","entry":true,"name":"RailroadEbnf","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"railroad-ebnf-beta"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfRule","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"="},{"$type":"Keyword","value":"::="}]},{"$type":"Assignment","feature":"definition","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":";"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfChoice","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"|"},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfSequence","returnType":{"$ref":"#/interfaces@3"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":",","cardinality":"?"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfTerm","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"base","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Assignment","feature":"postfixes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfPrimary","returnType":{"$ref":"#/interfaces@5"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfTerminal","returnType":{"$ref":"#/interfaces@7"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfNonTerminal","returnType":{"$ref":"#/interfaces@8"},"definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfSpecial","returnType":{"$ref":"#/interfaces@9"},"definition":{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfGroup","returnType":{"$ref":"#/interfaces@10"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfOptional","returnType":{"$ref":"#/interfaces@11"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfRepetition","returnType":{"$ref":"#/interfaces@12"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"{"},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":"}"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfPostfix","returnType":{"$ref":"#/interfaces@6"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@26"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfOptionalPostfix","returnType":{"$ref":"#/interfaces@13"},"definition":{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"?"}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfZeroOrMorePostfix","returnType":{"$ref":"#/interfaces@14"},"definition":{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"*"}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfOneOrMorePostfix","returnType":{"$ref":"#/interfaces@15"},"definition":{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"+"}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EbnfExceptionPostfix","returnType":{"$ref":"#/interfaces@16"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"except","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"RailroadEbnf","attributes":[{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"rules","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@1"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfRule","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"definition","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfChoice","attributes":[{"$type":"TypeAttribute","name":"alternatives","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@3"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfSequence","attributes":[{"$type":"TypeAttribute","name":"elements","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@4"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfTerm","attributes":[{"$type":"TypeAttribute","name":"base","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@5"}},"isOptional":false},{"$type":"TypeAttribute","name":"postfixes","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@6"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"EbnfPrimary","attributes":[],"superTypes":[]},{"$type":"Interface","name":"EbnfPostfix","attributes":[],"superTypes":[]},{"$type":"Interface","name":"EbnfTerminal","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfNonTerminal","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfSpecial","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"text","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfGroup","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"EbnfOptional","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"EbnfRepetition","superTypes":[{"$ref":"#/interfaces@5"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"EbnfOptionalPostfix","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"operator","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfZeroOrMorePostfix","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"operator","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfOneOrMorePostfix","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"operator","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"EbnfExceptionPostfix","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"except","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@5"}},"isOptional":false}]}],"imports":[],"types":[]}')),"RailroadEbnfGrammarGrammar"),Ee=tD(()=>tA??(tA=Rg('{"$type":"Grammar","isDeclared":true,"name":"RailroadGrammar","rules":[{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"RR_ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[A-Z_a-z][\\\\w-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"RR_STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"RR_WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t \\\\r\\\\n]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"RR_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"RR_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"RR_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"RR_BLOCK_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//","parenthesized":false},"fragment":false},{"$type":"ParserRule","entry":true,"name":"Railroad","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"railroad-beta"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadRule","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Keyword","value":"="},{"$type":"Assignment","feature":"definition","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":";"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadExpression","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadSequenceExpr","returnType":{"$ref":"#/interfaces@3"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"sequence"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadChoiceExpr","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"choice"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadOptionalExpr","returnType":{"$ref":"#/interfaces@5"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"optional"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadOneOrMoreExpr","returnType":{"$ref":"#/interfaces@6"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"oneOrMore"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadZeroOrMoreExpr","returnType":{"$ref":"#/interfaces@7"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"zeroOrMore"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadTerminalExpr","returnType":{"$ref":"#/interfaces@8"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"terminal"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadNonTerminalExpr","returnType":{"$ref":"#/interfaces@9"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"nonterminal"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"RailroadSpecialExpr","returnType":{"$ref":"#/interfaces@10"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"special"},{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"Railroad","attributes":[{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"rules","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@1"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"RailroadRule","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"definition","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"RailroadExpression","attributes":[],"superTypes":[]},{"$type":"Interface","name":"RailroadSequenceExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"elements","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}}},"isOptional":false}]},{"$type":"Interface","name":"RailroadChoiceExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"alternatives","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}}},"isOptional":false}]},{"$type":"Interface","name":"RailroadOptionalExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"RailroadOneOrMoreExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"RailroadZeroOrMoreExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"RailroadTerminalExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"RailroadNonTerminalExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"RailroadSpecialExpr","superTypes":[{"$ref":"#/interfaces@2"}],"attributes":[{"$type":"TypeAttribute","name":"text","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]}],"imports":[],"types":[]}')),"RailroadGrammarGrammar"),Et=tD(()=>tC??(tC=Rg('{"$type":"Grammar","isDeclared":true,"name":"RailroadPegGrammar","rules":[{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PEG_ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[A-Z_a-z][\\\\w-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PEG_STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t \\\\r\\\\n]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"PEG_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/#[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false},{"$type":"ParserRule","entry":true,"name":"RailroadPeg","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"railroad-peg-beta"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegRule","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Keyword","value":"<-"},{"$type":"Assignment","feature":"definition","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":";"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegOrderedChoice","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"/"},{"$type":"Assignment","feature":"alternatives","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegSequence","returnType":{"$ref":"#/interfaces@3"},"definition":{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"+"},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegPrefix","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"&"}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"!"}}],"cardinality":"?"},{"$type":"Assignment","feature":"suffix","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegSuffix","returnType":{"$ref":"#/interfaces@5"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"primary","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"?"}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"*"}},{"$type":"Assignment","feature":"operator","operator":"=","terminal":{"$type":"Keyword","value":"+"}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegPrimary","returnType":{"$ref":"#/interfaces@6"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegLiteral","returnType":{"$ref":"#/interfaces@7"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegIdentifier","returnType":{"$ref":"#/interfaces@8"},"definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegGroup","returnType":{"$ref":"#/interfaces@9"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PegAny","returnType":{"$ref":"#/interfaces@10"},"definition":{"$type":"Assignment","feature":"dot","operator":"=","terminal":{"$type":"Keyword","value":"."}},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"RailroadPeg","attributes":[{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"rules","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@1"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegRule","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"definition","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegOrderedChoice","attributes":[{"$type":"TypeAttribute","name":"alternatives","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@3"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegSequence","attributes":[{"$type":"TypeAttribute","name":"elements","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@4"}}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegPrefix","attributes":[{"$type":"TypeAttribute","name":"operator","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"suffix","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@5"}},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"PegSuffix","attributes":[{"$type":"TypeAttribute","name":"primary","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@6"}},"isOptional":false},{"$type":"TypeAttribute","name":"operator","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"PegPrimary","attributes":[],"superTypes":[]},{"$type":"Interface","name":"PegLiteral","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"PegIdentifier","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]},{"$type":"Interface","name":"PegGroup","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"element","type":{"$type":"SimpleType","typeRef":{"$ref":"#/interfaces@2"}},"isOptional":false}]},{"$type":"Interface","name":"PegAny","superTypes":[{"$ref":"#/interfaces@6"}],"attributes":[{"$type":"TypeAttribute","name":"dot","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}]}],"imports":[],"types":[]}')),"RailroadPegGrammarGrammar"),Er=tD(()=>tS??(tS=Rg('{"$type":"Grammar","isDeclared":true,"name":"TreemapGrammar","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/","parenthesized":false},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@15"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"imports":[],"types":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}')),"TreemapGrammarGrammar"),En=tD(()=>tk??(tk=Rg('{"$type":"Grammar","isDeclared":true,"name":"TreeViewGrammar","rules":[{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"TreeView","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"treeView-beta"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"nodes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"CLASS_ANNOTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+:::[ \\\\t]*[A-Za-z_][\\\\w-]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ICON_ANNOTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+icon\\\\([\\\\w-]*(?::[\\\\w-]+)?\\\\)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"DESC_ANNOTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+##[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"QUOTED_NAME","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","name":"BARE_NAME","definition":{"$type":"RegexToken","regex":"/(?!:::|icon\\\\(|##)[^ \\\\t\\\\n\\\\r\\"\'](?:(?![ \\\\t]+:::[ \\\\t]*[A-Za-z_]|[ \\\\t]+icon\\\\(|[ \\\\t]+##)[^\\\\n\\\\r])*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TreeNode","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"classAnnotation","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"iconAnnotation","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"descAnnotation","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},"entry":false,"fragment":false,"parameters":[]}],"interfaces":[{"$type":"Interface","name":"TreeView","attributes":[{"$type":"TypeAttribute","name":"nodes","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"imports":[],"types":[],"$comment":"/**\\n * TreeView grammar for Langium\\n *\\n * Supports both quoted labels (\\"my file\\") and bare labels (index.js).\\n * Annotations (:::class, icon(), ## description) are parsed directly into\\n * AST fields by the grammar. Value conversion for stripping quotes, extracting\\n * class names, icon names, and description text happens in valueConverter.ts.\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treeView keyword, allowing for empty lines and comments before the\\n * treeView declaration.\\n */"}')),"TreeViewGrammarGrammar"),Ei=tD(()=>tx??(tx=Rg('{"$type":"Grammar","isDeclared":true,"name":"WardleyGrammar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Wardley","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@42"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"size","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"anchors","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"components","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"links","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"evolves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"pipelines","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"notes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"annotations","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Assignment","feature":"annotation","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accelerators","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Assignment","feature":"deaccelerators","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"entry":false,"parameters":[]},{"$type":"ParserRule","name":"Size","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@26"},"arguments":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"width","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"height","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Evolution","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]},{"$type":"Assignment","feature":"stages","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]},{"$type":"Assignment","feature":"stages","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"EvolutionStage","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"@"},{"$type":"Assignment","feature":"boundary","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}}],"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"/"},{"$type":"Assignment","feature":"secondName","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}}],"cardinality":"?"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Anchor","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"visibility","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Component","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"visibility","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"decorator","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"inertia","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"inertia","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]}},{"$type":"Keyword","value":")"}]}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Label","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"negX","operator":"?=","terminal":{"$type":"Keyword","value":"-"},"cardinality":"?"},{"$type":"Assignment","feature":"offsetX","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"negY","operator":"?=","terminal":{"$type":"Keyword","value":"-"},"cardinality":"?"},{"$type":"Assignment","feature":"offsetY","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Decorator","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"("},{"$type":"Assignment","feature":"strategy","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]}},{"$type":"Keyword","value":")"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Link","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"from","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Assignment","feature":"fromPort","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"arrow","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]},"cardinality":"?"},{"$type":"Assignment","feature":"to","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Assignment","feature":"toPort","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"linkLabel","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Evolve","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@32"},"arguments":[]},{"$type":"Assignment","feature":"component","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Pipeline","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@33"},"arguments":[]},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"components","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"+"},{"$type":"Keyword","value":"}"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"PipelineComponent","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Note","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@34"},"arguments":[]},{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"visibility","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"evolution","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Annotations","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Annotation","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@36"},"arguments":[]},{"$type":"Assignment","feature":"number","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"Assignment","feature":"text","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"CoordinateValue","dataType":"number","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Accelerator","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","name":"Deaccelerator","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@38"},"arguments":[]},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]}]}},{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"x","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"y","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Keyword","value":"]"},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"TerminalRule","name":"WARDLEY_NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"->"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"LINK_PORT","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"+<>"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"+>"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"+<"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"LINK_ARROW","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"--\x3e"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"-.->"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":">"},"parenthesized":false}],"parenthesized":false},{"$type":"RegexToken","regex":"/\\\\+\'[^\']*\'<>/","parenthesized":false}],"parenthesized":false},{"$type":"RegexToken","regex":"/\\\\+\'[^\']*\'</","parenthesized":false}],"parenthesized":false},{"$type":"RegexToken","regex":"/\\\\+\'[^\']*\'>/","parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"LINK_LABEL","definition":{"$type":"RegexToken","regex":"/;[^\\\\n\\\\r]+/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRATEGY","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"build"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"buy"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"outsource"},"parenthesized":false}],"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"market"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_WARDLEY","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"wardley-beta"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_SIZE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"size"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_EVOLUTION","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"evolution"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ANCHOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"anchor"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_COMPONENT","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"component"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_LABEL","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"label"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_INERTIA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"inertia"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_EVOLVE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"evolve"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_PIPELINE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"pipeline"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_NOTE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"note"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ANNOTATIONS","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"annotations"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ANNOTATION","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"annotation"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_ACCELERATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"accelerator"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"KW_DEACCELERATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"deaccelerator"},"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NAME_WITH_SPACES","definition":{"$type":"RegexToken","regex":"/(?!title\\\\s|accTitle|accDescr)[A-Za-z](?:[A-Za-z0-9_()&]|-(?!>))*(?:[ \\\\t]+[A-Za-z(](?:[A-Za-z0-9_()&]|-(?!>))*)*/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/","parenthesized":false},"fragment":false},{"$type":"ParserRule","name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"entry":false,"fragment":false,"parameters":[]},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@44"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@45"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@46"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]}],"cardinality":"+"},"entry":false,"parameters":[]},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"},"parenthesized":false},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@47"},"parenthesized":false},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@48"},"parenthesized":false}],"parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/","parenthesized":false},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/","parenthesized":false},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/","parenthesized":false},"fragment":false}],"interfaces":[],"types":[]}')),"WardleyGrammarGrammar"),Ea={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Es={languageId:"cynefin",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Eo={languageId:"eventmodeling",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},El={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Eu={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ec={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ep={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ef={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ed={languageId:"railroadAbnf",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Em={languageId:"railroadEbnf",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Eh={languageId:"railroad",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ey={languageId:"railroadPeg",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Eg={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ET={languageId:"treeView",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Ev={languageId:"wardley",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},E$={AstReflection:tD(()=>new RX,"AstReflection")},ER={Grammar:tD(()=>R0(),"Grammar"),LanguageMetaData:tD(()=>Ea,"LanguageMetaData"),parser:{}},EE={Grammar:tD(()=>R1(),"Grammar"),LanguageMetaData:tD(()=>Es,"LanguageMetaData"),parser:{}},Eb={Grammar:tD(()=>R2(),"Grammar"),LanguageMetaData:tD(()=>Eo,"LanguageMetaData"),parser:{}},EA={Grammar:tD(()=>R3(),"Grammar"),LanguageMetaData:tD(()=>El,"LanguageMetaData"),parser:{}},EC={Grammar:tD(()=>R4(),"Grammar"),LanguageMetaData:tD(()=>Eu,"LanguageMetaData"),parser:{}},ES={Grammar:tD(()=>R9(),"Grammar"),LanguageMetaData:tD(()=>Ec,"LanguageMetaData"),parser:{}},Ek={Grammar:tD(()=>R5(),"Grammar"),LanguageMetaData:tD(()=>Ep,"LanguageMetaData"),parser:{}},Ex={Grammar:tD(()=>R6(),"Grammar"),LanguageMetaData:tD(()=>Ef,"LanguageMetaData"),parser:{}},EN={Grammar:tD(()=>R7(),"Grammar"),LanguageMetaData:tD(()=>Ed,"LanguageMetaData"),parser:{}},Ew={Grammar:tD(()=>R8(),"Grammar"),LanguageMetaData:tD(()=>Em,"LanguageMetaData"),parser:{}},EI={Grammar:tD(()=>Ee(),"Grammar"),LanguageMetaData:tD(()=>Eh,"LanguageMetaData"),parser:{}},E_={Grammar:tD(()=>Et(),"Grammar"),LanguageMetaData:tD(()=>Ey,"LanguageMetaData"),parser:{}},EP={Grammar:tD(()=>Er(),"Grammar"),LanguageMetaData:tD(()=>Eg,"LanguageMetaData"),parser:{}},EO={Grammar:tD(()=>En(),"Grammar"),LanguageMetaData:tD(()=>ET,"LanguageMetaData"),parser:{}},ED={Grammar:tD(()=>Ei(),"Grammar"),LanguageMetaData:tD(()=>Ev,"LanguageMetaData"),parser:{}},EL={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},EM=class extends vC{static{tD(this,"AbstractMermaidValueConverter")}runConverter(e,t,r){let n=this.runCommonConverter(e,t,r);return(void 0===n&&(n=this.runCustomConverter(e,t,r)),void 0===n)?super.runConverter(e,t,r):n}runCommonConverter(e,t,r){let n=EL[e.name];if(void 0===n)return;let i=n.exec(t);if(null!==i){if(void 0!==i[1])return i[1].trim().replace(/[\t ]{2,}/gm," ");if(void 0!==i[2])return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n")}}},Ej=class extends EM{static{tD(this,"CommonValueConverter")}runCustomConverter(e,t,r){}},EF=class extends vA{static{tD(this,"AbstractMermaidTokenBuilder")}constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){let n=super.buildKeywordTokens(e,t,r);return n.forEach(e=>{this.keywords.has(e.name)&&void 0!==e.PATTERN&&(e.PATTERN=RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}};(class extends EF{static{tD(this,"CommonTokenBuilder")}})},5552(e,t,r){r.d(t,{f:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.Bg,a);return t.ServiceRegistry.register(r),{shared:t,Radar:r}}(0,n.K2)(s,"createRadarServices")},9427(e,t,r){r.d(t,{J:()=>s});var n=r(4954),i=class extends n.dg{static{(0,n.K2)(this,"WardleyValueConverter")}runCustomConverter(e,t,r){return"LINK_LABEL"===e.name.toUpperCase()?t.substring(1).trim():void 0}},a={parser:{ValueConverter:(0,n.K2)(()=>new i,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.Xr,a);return t.ServiceRegistry.register(r),{shared:t,Wardley:r}}(0,n.K2)(s,"createWardleyServices")},145(e,t,r){r.d(t,{I:()=>o});var n=r(4954),i=class extends n.dg{static{(0,n.K2)(this,"TreeViewValueConverter")}runCustomConverter(e,t,r){if("INDENTATION"===e.name)return t?.length||0;if("QUOTED_NAME"===e.name)return t.substring(1,t.length-1);if("BARE_NAME"===e.name)return t.replace(/[\t ]+$/,"");if("CLASS_ANNOTATION"===e.name)return t.trim().substring(3).trim();if("ICON_ANNOTATION"===e.name){let e=t.trim();return e.substring(5,e.length-1)}if("DESC_ANNOTATION"===e.name)return t.trim().substring(2).trim()}},a=class extends n.mR{static{(0,n.K2)(this,"TreeViewTokenBuilder")}constructor(){super(["treeView-beta"])}},s={parser:{TokenBuilder:(0,n.K2)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new i,"ValueConverter")}};function o(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.CZ,s);return t.ServiceRegistry.register(r),{shared:t,TreeView:r}}(0,n.K2)(o,"createTreeViewServices")},1721(e,t,r){r.d(t,{b:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.d$,a);return t.ServiceRegistry.register(r),{shared:t,GitGraph:r}}(0,n.K2)(s,"createGitGraphServices")},6045(e,t,r){r.d(t,{l:()=>l});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RailroadTokenBuilder")}constructor(){super(["railroad-beta"])}},a=(0,n.K2)(e=>{let t=e.slice(1,-1),r="";for(let e=0;e<t.length;e++){let n=t[e];if("\\"===n&&e+1<t.length){let n=t[++e];switch(n){case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+=" ";break;default:r+=n}continue}r+=n}return r},"decodeEscapedString"),s=class extends n.dg{static{(0,n.K2)(this,"RailroadValueConverter")}runConverter(e,t,r){let n=super.runConverter(e,t,r);if("TITLE"===e.name&&"string"==typeof n){let e=n.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return a(e)}return n}runCustomConverter(e,t,r){if("RR_STRING"===e.name)return a(t)}},o={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new s,"ValueConverter")}};function l(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.Bi,o);return t.ServiceRegistry.register(r),{shared:t,Railroad:r}}(0,n.K2)(l,"createRailroadServices")},3263(e,t,r){r.d(t,{$:()=>s});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"PacketTokenBuilder")}constructor(){super(["packet"])}},a={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new n.Tm,"ValueConverter")}};function s(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.p5,a);return t.ServiceRegistry.register(r),{shared:t,Packet:r}}(0,n.K2)(s,"createPacketServices")},9096(e,t,r){r.d(t,{s:()=>o});var n=r(4954),i=class extends n.mR{static{(0,n.K2)(this,"RailroadAbnfTokenBuilder")}constructor(){super(["railroad-abnf-beta"])}},a=class extends n.dg{static{(0,n.K2)(this,"RailroadAbnfValueConverter")}runConverter(e,t,r){let n=super.runConverter(e,t,r);if("TITLE"===e.name&&"string"==typeof n){let e=n.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1)}return n}runCustomConverter(e,t,r){if("ABNF_STRING"===e.name)return t.slice(1,-1)}},s={parser:{TokenBuilder:(0,n.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,n.K2)(()=>new a,"ValueConverter")}};function o(e=n.DD){let t=(0,n.WQ)((0,n.uM)(e),n.sr),r=(0,n.WQ)((0,n.tG)({shared:t}),n.oI,s);return t.ServiceRegistry.register(r),{shared:t,RailroadAbnf:r}}(0,n.K2)(o,"createRailroadAbnfServices")},8731(e,t,r){r.d(t,{F5:()=>o.F5,Pz:()=>s.P,WG:()=>i.W,lz:()=>n.l,qg:()=>c,sB:()=>a.s,zg:()=>p}),r(5552);var n=r(6045),i=r(4916),a=r(9096),s=r(3245);r(6527),r(9427),r(3279),r(1721),r(4614),r(3263),r(6041),r(145),r(5796),r(2688);var o=r(4954),l={},u={info:(0,o.K2)(async()=>{let{createInfoServices:e}=await r.e("190").then(r.bind(r,6445));l.info=e().Info.parser.LangiumParser},"info"),packet:(0,o.K2)(async()=>{let{createPacketServices:e}=await r.e("612").then(r.bind(r,3327));l.packet=e().Packet.parser.LangiumParser},"packet"),pie:(0,o.K2)(async()=>{let{createPieServices:e}=await r.e("2395").then(r.bind(r,9590));l.pie=e().Pie.parser.LangiumParser},"pie"),treeView:(0,o.K2)(async()=>{let{createTreeViewServices:e}=await r.e("6771").then(r.bind(r,4142));l.treeView=e().TreeView.parser.LangiumParser},"treeView"),architecture:(0,o.K2)(async()=>{let{createArchitectureServices:e}=await r.e("6762").then(r.bind(r,7089));l.architecture=e().Architecture.parser.LangiumParser},"architecture"),gitGraph:(0,o.K2)(async()=>{let{createGitGraphServices:e}=await r.e("9010").then(r.bind(r,9945));l.gitGraph=e().GitGraph.parser.LangiumParser},"gitGraph"),eventmodeling:(0,o.K2)(async()=>{let{createEventModelingServices:e}=await r.e("3312").then(r.bind(r,2355));l.eventmodeling=e().EventModel.parser.LangiumParser},"eventmodeling"),radar:(0,o.K2)(async()=>{let{createRadarServices:e}=await r.e("718").then(r.bind(r,8365));l.radar=e().Radar.parser.LangiumParser},"radar"),railroad:(0,o.K2)(async()=>{let{createRailroadServices:e}=await r.e("5428").then(r.bind(r,2223));l.railroad=e().Railroad.parser.LangiumParser},"railroad"),railroadEbnf:(0,o.K2)(async()=>{let{createRailroadEbnfServices:e}=await r.e("6520").then(r.bind(r,9035));l.railroadEbnf=e().RailroadEbnf.parser.LangiumParser},"railroadEbnf"),railroadAbnf:(0,o.K2)(async()=>{let{createRailroadAbnfServices:e}=await r.e("8665").then(r.bind(r,6480));l.railroadAbnf=e().RailroadAbnf.parser.LangiumParser},"railroadAbnf"),railroadPeg:(0,o.K2)(async()=>{let{createRailroadPegServices:e}=await r.e("3009").then(r.bind(r,5784));l.railroadPeg=e().RailroadPeg.parser.LangiumParser},"railroadPeg"),treemap:(0,o.K2)(async()=>{let{createTreemapServices:e}=await r.e("2853").then(r.bind(r,884));l.treemap=e().Treemap.parser.LangiumParser},"treemap"),wardley:(0,o.K2)(async()=>{let{createWardleyServices:e}=await r.e("3017").then(r.bind(r,7632));l.wardley=e().Wardley.parser.LangiumParser},"wardley"),cynefin:(0,o.K2)(async()=>{let{createCynefinServices:e}=await r.e("255").then(r.bind(r,7636));l.cynefin=e().Cynefin.parser.LangiumParser},"cynefin")};async function c(e,t){let r=u[e];if(!r)throw Error(`Unknown diagram type: ${e}`);l[e]||await r();let n=l[e].parse(t);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new p(n);return n.value}(0,o.K2)(c,"parse");var p=class extends Error{constructor(e){let t=e.lexerErrors.map(e=>{let t=void 0===e.line||isNaN(e.line)?"?":e.line,r=void 0===e.column||isNaN(e.column)?"?":e.column;return`Lexer error on line ${t}, column ${r}: ${e.message}`}).join("\n"),r=e.parserErrors.map(e=>{let t=void 0===e.token.startLine||isNaN(e.token.startLine)?"?":e.token.startLine,r=void 0===e.token.startColumn||isNaN(e.token.startColumn)?"?":e.token.startColumn;return`Parse error on line ${t}, column ${r}: ${e.message}`}).join("\n");super(`Parsing failed: ${t} ${r}`),this.result=e}static{(0,o.K2)(this,"MermaidParseError")}}}}]); \ No newline at end of file diff --git a/en/assets/js/4a65a190.cd87306b.js b/en/assets/js/4a65a190.c43c3324.js similarity index 95% rename from en/assets/js/4a65a190.cd87306b.js rename to en/assets/js/4a65a190.c43c3324.js index 430a8ce..d950939 100644 --- a/en/assets/js/4a65a190.cd87306b.js +++ b/en/assets/js/4a65a190.c43c3324.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2705"],{670(e,n,s){s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>t});var r=s(5816),l=s(4848),i=s(8453);let d={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},c,a={authorsImageUrls:[void 0]},t=[{value:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",level:2},{value:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668",id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",level:3},{value:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",level:3},{value:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668",id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",level:3},{value:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",level:3},{value:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848",id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",level:2},{value:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4",id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",level:3},{value:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec",id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",level:3},{value:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid",id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",level:3},{value:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",level:3},{value:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4",id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",level:3},{value:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",level:2},{value:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",level:3},{value:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",level:3},{value:"3.3 \u4E3B\u8981\u95EE\u9898",id:"33-\u4E3B\u8981\u95EE\u9898",level:3},{value:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42",id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",level:2},{value:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09",id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",level:3},{value:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42",id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",level:3},{value:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",level:3},{value:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",level:2},{value:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790",id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",level:3},{value:"5.2 \u8868\u8840\u7F18\u89E3\u6790",id:"52-\u8868\u8840\u7F18\u89E3\u6790",level:3},{value:"5.3 \u8868\u89E3\u6790",id:"53-\u8868\u89E3\u6790",level:3},{value:"5.4 \u51FD\u6570\u89E3\u6790",id:"54-\u51FD\u6570\u89E3\u6790",level:3},{value:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",level:3},{value:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F",id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",level:2},{value:"6.1 \u53CC\u5C42\u67B6\u6784",id:"61-\u53CC\u5C42\u67B6\u6784",level:3},{value:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid",id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",level:3},{value:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",level:3},{value:"6.4 \u76EE\u6807",id:"64-\u76EE\u6807",level:3},{value:"\u4E03\u3001\u7ED3\u8BED",id:"\u4E03\u7ED3\u8BED",level:2}];function h(e){let n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]}),"\n","\n",(0,l.jsx)(n.h2,{id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",children:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668"}),"\n",(0,l.jsx)(n.h3,{id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",children:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F",(0,l.jsx)(n.strong,{children:"\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784"}),"\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F",(0,l.jsx)(n.strong,{children:"\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32"}),"\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 ",(0,l.jsx)(n.code,{children:"x = (a + b) * 3"})," \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 ",(0,l.jsx)(n.code,{children:"a + b"}),"\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 ",(0,l.jsx)(n.code,{children:"x"}),"\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n\n [=]\n / \\\n [x] [*]\n / \\\n [+] [3]\n / \\\n [a] [b]\n\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n [if]\n / \\\n [>] [block]\n / \\ \\\n[x] [0] [=]\n / \\\n [y] [10]\n\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5668\u7684\u4F5C\u7528"}),"\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",children:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F",(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790"}),"\uFF1A"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790"}),"\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u5206\u6790"}),"\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\n\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\n1 INTEGER \u6574\u6570 1\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\n2 INTEGER \u6574\u6570 2\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\n3 INTEGER \u6574\u6570 3\n\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\n\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\n [+]\n / \\\n 1 [*]\n / \\\n 2 3\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E00"}),"\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E8C"}),"\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",children:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["SQL \u89E3\u6790\u5668\u662F",(0,l.jsx)(n.strong,{children:"\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6"}),"\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"# \u67E5\u8BE2\nSELECT * FROM users WHERE status = 'active';\n# \u63D2\u5165\nINSERT INTO customers (name, email) VALUES ('\u674E\u56DB', 'lisi@example.com');\n# \u66F4\u65B0\nUPDATE products SET price = 5999 WHERE id = 1001;\n# \u5220\u9664\nDELETE FROM logs WHERE create_time < '2024-01-01';\n# \u521B\u5EFA\u8868\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\n# \u4FEE\u6539\u8868\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\n# \u5220\u9664\u8868\nDROP TABLE temp_data;\n# \u6388\u6743\nGRANT SELECT ON customers TO user1;\n"})}),"\n",(0,l.jsx)(n.h3,{id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",children:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E"}),"\n",(0,l.jsx)(n.p,{children:"\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D"}),"\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",children:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848"}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD",src:s(3519).A+"",width:"2884",height:"1540"})}),"\n",(0,l.jsx)(n.h3,{id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",children:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u7279\u6027"}),(0,l.jsx)(n.th,{children:"JavaCC"}),(0,l.jsx)(n.th,{children:"ANTLR 3"}),(0,l.jsx)(n.th,{children:"ANTLR 4"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u5206\u6790\u7B97\u6CD5"}),(0,l.jsx)(n.td,{children:"LL(k)"}),(0,l.jsx)(n.td,{children:"LL(*)"}),(0,l.jsx)(n.td,{children:"LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5DE6\u9012\u5F52\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u81EA\u52A8\u5904\u7406"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u76EE\u6807\u8BED\u8A00"}),(0,l.jsx)(n.td,{children:"Java"}),(0,l.jsx)(n.td,{children:"Java\u3001C#\u3001Python \u7B49"}),(0,l.jsx)(n.td,{children:"\u540C ANTLR 3"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9519\u8BEF\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u57FA\u7840\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u590D\u6742\u5EA6"}),(0,l.jsx)(n.td,{children:"\u7B80\u5355\u76F4\u89C2"}),(0,l.jsx)(n.td,{children:"\u8F83\u590D\u6742"}),(0,l.jsx)(n.td,{children:"\u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5E94\u7528\u573A\u666F"}),(0,l.jsx)(n.td,{children:"\u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2"}),(0,l.jsx)(n.td,{children:"\u4E2D\u5927\u578B\u9879\u76EE"}),(0,l.jsx)(n.td,{children:"\u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5"})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",children:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec"}),"\n",(0,l.jsx)(n.p,{children:"\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09"}),"\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09"}),"\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",children:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"JSqlParser"}),"\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"select"})," \u2192 ",(0,l.jsx)(n.code,{children:"SelectStatement"}),"\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 ",(0,l.jsx)(n.strong,{children:"API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31"}),"\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Druid"}),"\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F",(0,l.jsx)(n.strong,{children:"\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09"}),"\uFF0C\u5E76\u4E14",(0,l.jsx)(n.strong,{children:"\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55"}),"\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",children:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u4F9D\u8D56\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u89E3\u6790 SQL \u80FD\u529B"}),(0,l.jsx)(n.th,{children:"\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F"}),(0,l.jsx)(n.th,{children:"\u4F18\u7F3A\u70B9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JavaCC"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"ANTLR4"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Calcite"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"hive-exec"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E ANTLR3"}),(0,l.jsx)(n.td,{children:"\u4EC5 Hive\u3001Spark"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JSqlParser"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Druid"})}),(0,l.jsx)(n.td,{children:"\u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6"}),(0,l.jsx)(n.td,{children:"\u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u6709\uFF08\u6781\u5F3A\uFF09"})}),(0,l.jsx)(n.td,{children:"\u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6"})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:["\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 ",(0,l.jsx)(n.code,{children:"Insert"}),"\u3001",(0,l.jsx)(n.code,{children:"Select"}),"\u3001",(0,l.jsx)(n.code,{children:"Update"}),"\u3001",(0,l.jsx)(n.code,{children:"Delete"})," \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002"})," \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",children:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4"}),"\n",(0,l.jsxs)(n.p,{children:["ANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811",(0,l.jsx)(n.strong,{children:"\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"}),"\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",children:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4"}),"\n",(0,l.jsx)(n.h3,{id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",children:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\n\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\n\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\n \u5B9E\u73B0\uFF1Acalcite\n\n\u5B9E\u65F6 streamparser\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u95EE\u9898\u662F\uFF1A",(0,l.jsx)(n.strong,{children:"\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11"}),"\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",children:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",src:s(6809).A+"",width:"16384",height:"5838"})}),"\n",(0,l.jsx)(n.p,{children:"\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsx)(n.li,{children:"\u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811"}),"\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002"}),"\n"]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22",src:s(3784).A+"",width:"1710",height:"852"})}),"\n",(0,l.jsx)(n.h3,{id:"33-\u4E3B\u8981\u95EE\u9898",children:"3.3 \u4E3B\u8981\u95EE\u9898"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31"}),"\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE"}),"\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F ",(0,l.jsx)(n.code,{children:"if"})," \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8"}),"\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",children:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42"}),"\n",(0,l.jsxs)(n.p,{children:["\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A",(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"})," \u4E0E ",(0,l.jsx)(n.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",children:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42",src:s(3130).A+"",width:"2120",height:"712"})}),"\n",(0,l.jsx)(n.p,{children:"\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Druid \u5206\u5C42\u7ED3\u6784\u7C7B",src:s(4037).A+"",width:"3080",height:"1824"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\nSQLStatement statement = parser.parseStatement();\n\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\nDorisStatementParser statementParser = new DorisStatementParser(sql);\nSQLStatement sqlStatement = statementParser.parseStatement();\n"})}),"\n",(0,l.jsx)(n.h3,{id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",children:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5C42"}),"\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u5E94\u7528\u5C42"}),"\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u4E1A\u52A1\u89E3\u6790\u5206\u5C42",src:s(3042).A+"",width:"3972",height:"2296"})}),"\n",(0,l.jsx)(n.p,{children:"\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6",src:s(4560).A+"",width:"9256",height:"1888"})}),"\n",(0,l.jsxs)(n.p,{children:["\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F ",(0,l.jsx)(n.code,{children:"BaseXxxClient"}),"\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u7EE7\u627F BaseXxxClient \u6269\u5C55",src:s(3694).A+"",width:"2324",height:"1252"})}),"\n",(0,l.jsxs)(n.p,{children:["\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 ",(0,l.jsx)(n.code,{children:"XxxSqlParser"})," \u4E2D\u6CE8\u518C\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client",src:s(3220).A+"",width:"2100",height:"648"})}),"\n",(0,l.jsx)(n.p,{children:"\u793A\u4F8B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u51C6\u5907 SQL\nString sql = getSql();\n\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n// 2.1\u3001\u89E3\u6790\u8868\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\n\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\n\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\n\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\nSet<String> functions = sqlParser.parseFunction(sql);\n"})}),"\n",(0,l.jsx)(n.h3,{id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",children:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",src:s(4778).A+"",width:"5684",height:"2764"})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",children:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002"}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B"}),"\uFF1A",(0,l.jsx)(n.code,{children:"insert into/overwrite ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"create ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"with as ... insert"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\u662F",(0,l.jsx)(n.strong,{children:"\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868"}),"\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EE5\u4E00\u6761 ",(0,l.jsx)(n.code,{children:"insert select"})," \u4E3A\u4F8B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"insert into new_table (id, name)\nselect a.id as aid, b.name as bname\nfrom old_table as a\nleft join old_table2 b on a.id = b.id\n"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u7AEF\u3001",(0,l.jsx)(n.code,{children:"select"})," \u6765\u6E90\u7AEF\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u76EE\u6807\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id id new_table\n name name new_table\n\n# \u6765\u6E90\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id aid old_table\n name bname old_table2\n"})}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsx)(n.li,{children:"\u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u7B2C\u4E00\u6761\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\n# \u7B2C\u4E8C\u6761\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002"}),"\n",(0,l.jsxs)(n.p,{children:["\u5BF9\u4E8E ",(0,l.jsx)(n.code,{children:"with as"})," \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 ",(0,l.jsx)(n.code,{children:"()"})," \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E",(0,l.jsx)(n.strong,{children:"\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5"}),"\u7684\u573A\u666F\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"concat(t1.name, t2.name)"}),"\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 ",(0,l.jsx)(n.code,{children:","})," \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"52-\u8868\u8840\u7F18\u89E3\u6790",children:"5.2 \u8868\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A ",(0,l.jsx)(n.code,{children:"select"})," \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E ",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"53-\u8868\u89E3\u6790",children:"5.3 \u8868\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08",(0,l.jsx)(n.code,{children:"select"}),"\u3001",(0,l.jsx)(n.code,{children:"update"}),"\u3001",(0,l.jsx)(n.code,{children:"delete"}),"\u3001",(0,l.jsx)(n.code,{children:"insert"}),"\u3001",(0,l.jsx)(n.code,{children:"drop"}),"\u3001",(0,l.jsx)(n.code,{children:"rename"})," \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"54-\u51FD\u6570\u89E3\u6790",children:"5.4 \u51FD\u6570\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 ",(0,l.jsx)(n.strong,{children:"Visitor \u6A21\u5F0F"}),"\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790",src:s(593).A+"",width:"2150",height:"1224"})}),"\n",(0,l.jsx)(n.h3,{id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",children:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09"}),"\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL"}),"\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",children:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A",(0,l.jsx)(n.strong,{children:"\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E8E\u662F\u6709\u4E86 ",(0,l.jsx)(n.strong,{children:"SqlParserX"})," \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790"}),"\u7684\u5F00\u6E90\u9879\u76EE\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"61-\u53CC\u5C42\u67B6\u6784",children:"6.1 \u53CC\u5C42\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SqlParserX\uFF08\u6839 Reactor\uFF09\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\n"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002"]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E24\u5C42\u4EE5 ",(0,l.jsx)(n.code,{children:"DbType + SQLStatement AST"})," \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C",(0,l.jsx)(n.strong,{children:"\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST"}),"\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",children:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid"}),"\n",(0,l.jsxs)(n.p,{children:["\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A",(0,l.jsx)(n.strong,{children:"\u5B98\u65B9 Druid 1.2.28"}),"\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C",(0,l.jsx)(n.strong,{children:"\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898"}),"\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",children:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/01%E3%80%81SQL%E8%AF%AD%E6%B3%95%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/Druid%E7%89%88%E6%9C%AC%E4%B8%8ESQL%E8%AF%AD%E6%B3%95%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5.md",children:"Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/tree/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E8%83%BD%E5%8A%9B%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5",children:"\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%96%87%E6%A1%A3/SqlParserX%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%8C%87%E5%8D%97.md",children:"\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357"})}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"64-\u76EE\u6807",children:"6.4 \u76EE\u6807"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid"})," \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX"}),"\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:["\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,l.jsx)(n.code,{children:"DbType"})," \u4E0E AST \u5BF9\u9F50\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E03\u7ED3\u8BED",children:"\u4E03\u3001\u7ED3\u8BED"}),"\n",(0,l.jsx)(n.p,{children:"\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002"})}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u6587\u56FE\u7247\u4F4D\u4E8E ",(0,l.jsx)(n.code,{children:"assets/"})," \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"]}),"\n"]})]})}function x(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},3519(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png"},6809(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png"},3784(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png"},3130(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/04-druid-syntax-layer-815515eac5295f9f772e1beb97f04c11.png"},4037(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/05-druid-layer-structure-5737c5a7826cff1a2874cf2b927ccd34.png"},3042(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png"},4560(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/07-application-components-3fa01967e1605c21791788f2a06212eb.png"},3694(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png"},3220(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/09-register-client-c6216b08439b96af51fda129de838a4e.png"},4778(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/10-after-refactor-c8b89cd447d9cea7894354ffea6a2fdf.png"},593(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/11-function-visitor-43a9830686ce367f536545b5691f504f.png"},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2705"],{670(e,n,s){s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>a});var r=s(5816),l=s(4848),i=s(8453);let d={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},c,t={authorsImageUrls:[void 0]},a=[{value:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",level:2},{value:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668",id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",level:3},{value:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",level:3},{value:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668",id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",level:3},{value:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",level:3},{value:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848",id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",level:2},{value:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4",id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",level:3},{value:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec",id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",level:3},{value:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid",id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",level:3},{value:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",level:3},{value:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4",id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",level:3},{value:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",level:2},{value:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",level:3},{value:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",level:3},{value:"3.3 \u4E3B\u8981\u95EE\u9898",id:"33-\u4E3B\u8981\u95EE\u9898",level:3},{value:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42",id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",level:2},{value:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09",id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",level:3},{value:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42",id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",level:3},{value:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",level:3},{value:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",level:2},{value:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790",id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",level:3},{value:"5.2 \u8868\u8840\u7F18\u89E3\u6790",id:"52-\u8868\u8840\u7F18\u89E3\u6790",level:3},{value:"5.3 \u8868\u89E3\u6790",id:"53-\u8868\u89E3\u6790",level:3},{value:"5.4 \u51FD\u6570\u89E3\u6790",id:"54-\u51FD\u6570\u89E3\u6790",level:3},{value:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",level:3},{value:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F",id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",level:2},{value:"6.1 \u53CC\u5C42\u67B6\u6784",id:"61-\u53CC\u5C42\u67B6\u6784",level:3},{value:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid",id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",level:3},{value:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",level:3},{value:"6.4 \u76EE\u6807",id:"64-\u76EE\u6807",level:3},{value:"\u4E03\u3001\u7ED3\u8BED",id:"\u4E03\u7ED3\u8BED",level:2}];function h(e){let n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]}),"\n","\n",(0,l.jsx)(n.h2,{id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",children:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668"}),"\n",(0,l.jsx)(n.h3,{id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",children:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F",(0,l.jsx)(n.strong,{children:"\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784"}),"\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F",(0,l.jsx)(n.strong,{children:"\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32"}),"\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 ",(0,l.jsx)(n.code,{children:"x = (a + b) * 3"})," \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 ",(0,l.jsx)(n.code,{children:"a + b"}),"\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 ",(0,l.jsx)(n.code,{children:"x"}),"\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n\n [=]\n / \\\n [x] [*]\n / \\\n [+] [3]\n / \\\n [a] [b]\n\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n [if]\n / \\\n [>] [block]\n / \\ \\\n[x] [0] [=]\n / \\\n [y] [10]\n\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5668\u7684\u4F5C\u7528"}),"\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",children:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F",(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790"}),"\uFF1A"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790"}),"\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u5206\u6790"}),"\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\n\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\n1 INTEGER \u6574\u6570 1\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\n2 INTEGER \u6574\u6570 2\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\n3 INTEGER \u6574\u6570 3\n\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\n\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\n [+]\n / \\\n 1 [*]\n / \\\n 2 3\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E00"}),"\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E8C"}),"\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",children:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["SQL \u89E3\u6790\u5668\u662F",(0,l.jsx)(n.strong,{children:"\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6"}),"\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"# \u67E5\u8BE2\nSELECT * FROM users WHERE status = 'active';\n# \u63D2\u5165\nINSERT INTO customers (name, email) VALUES ('\u674E\u56DB', 'lisi@example.com');\n# \u66F4\u65B0\nUPDATE products SET price = 5999 WHERE id = 1001;\n# \u5220\u9664\nDELETE FROM logs WHERE create_time < '2024-01-01';\n# \u521B\u5EFA\u8868\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\n# \u4FEE\u6539\u8868\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\n# \u5220\u9664\u8868\nDROP TABLE temp_data;\n# \u6388\u6743\nGRANT SELECT ON customers TO user1;\n"})}),"\n",(0,l.jsx)(n.h3,{id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",children:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E"}),"\n",(0,l.jsx)(n.p,{children:"\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D"}),"\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",children:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848"}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD",src:s(3519).A+"",width:"2884",height:"1540"})}),"\n",(0,l.jsx)(n.h3,{id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",children:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u7279\u6027"}),(0,l.jsx)(n.th,{children:"JavaCC"}),(0,l.jsx)(n.th,{children:"ANTLR 3"}),(0,l.jsx)(n.th,{children:"ANTLR 4"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u5206\u6790\u7B97\u6CD5"}),(0,l.jsx)(n.td,{children:"LL(k)"}),(0,l.jsx)(n.td,{children:"LL(*)"}),(0,l.jsx)(n.td,{children:"LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5DE6\u9012\u5F52\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u81EA\u52A8\u5904\u7406"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u76EE\u6807\u8BED\u8A00"}),(0,l.jsx)(n.td,{children:"Java"}),(0,l.jsx)(n.td,{children:"Java\u3001C#\u3001Python \u7B49"}),(0,l.jsx)(n.td,{children:"\u540C ANTLR 3"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9519\u8BEF\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u57FA\u7840\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u590D\u6742\u5EA6"}),(0,l.jsx)(n.td,{children:"\u7B80\u5355\u76F4\u89C2"}),(0,l.jsx)(n.td,{children:"\u8F83\u590D\u6742"}),(0,l.jsx)(n.td,{children:"\u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5E94\u7528\u573A\u666F"}),(0,l.jsx)(n.td,{children:"\u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2"}),(0,l.jsx)(n.td,{children:"\u4E2D\u5927\u578B\u9879\u76EE"}),(0,l.jsx)(n.td,{children:"\u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5"})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",children:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec"}),"\n",(0,l.jsx)(n.p,{children:"\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09"}),"\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09"}),"\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",children:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"JSqlParser"}),"\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"select"})," \u2192 ",(0,l.jsx)(n.code,{children:"SelectStatement"}),"\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 ",(0,l.jsx)(n.strong,{children:"API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31"}),"\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Druid"}),"\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F",(0,l.jsx)(n.strong,{children:"\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09"}),"\uFF0C\u5E76\u4E14",(0,l.jsx)(n.strong,{children:"\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55"}),"\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",children:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u4F9D\u8D56\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u89E3\u6790 SQL \u80FD\u529B"}),(0,l.jsx)(n.th,{children:"\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F"}),(0,l.jsx)(n.th,{children:"\u4F18\u7F3A\u70B9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JavaCC"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"ANTLR4"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Calcite"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"hive-exec"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E ANTLR3"}),(0,l.jsx)(n.td,{children:"\u4EC5 Hive\u3001Spark"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JSqlParser"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Druid"})}),(0,l.jsx)(n.td,{children:"\u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6"}),(0,l.jsx)(n.td,{children:"\u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u6709\uFF08\u6781\u5F3A\uFF09"})}),(0,l.jsx)(n.td,{children:"\u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6"})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:["\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 ",(0,l.jsx)(n.code,{children:"Insert"}),"\u3001",(0,l.jsx)(n.code,{children:"Select"}),"\u3001",(0,l.jsx)(n.code,{children:"Update"}),"\u3001",(0,l.jsx)(n.code,{children:"Delete"})," \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002"})," \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",children:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4"}),"\n",(0,l.jsxs)(n.p,{children:["ANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811",(0,l.jsx)(n.strong,{children:"\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"}),"\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",children:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4"}),"\n",(0,l.jsx)(n.h3,{id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",children:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\n\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\n\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\n \u5B9E\u73B0\uFF1Acalcite\n\n\u5B9E\u65F6 streamparser\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u95EE\u9898\u662F\uFF1A",(0,l.jsx)(n.strong,{children:"\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11"}),"\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",children:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",src:s(6809).A+"",width:"16384",height:"5838"})}),"\n",(0,l.jsx)(n.p,{children:"\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsx)(n.li,{children:"\u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811"}),"\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002"}),"\n"]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22",src:s(3784).A+"",width:"1710",height:"852"})}),"\n",(0,l.jsx)(n.h3,{id:"33-\u4E3B\u8981\u95EE\u9898",children:"3.3 \u4E3B\u8981\u95EE\u9898"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31"}),"\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE"}),"\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F ",(0,l.jsx)(n.code,{children:"if"})," \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8"}),"\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",children:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42"}),"\n",(0,l.jsxs)(n.p,{children:["\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A",(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"})," \u4E0E ",(0,l.jsx)(n.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",children:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42",src:s(3130).A+"",width:"2120",height:"712"})}),"\n",(0,l.jsx)(n.p,{children:"\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Druid \u5206\u5C42\u7ED3\u6784\u7C7B",src:s(4037).A+"",width:"3080",height:"1824"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\nSQLStatement statement = parser.parseStatement();\n\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\nDorisStatementParser statementParser = new DorisStatementParser(sql);\nSQLStatement sqlStatement = statementParser.parseStatement();\n"})}),"\n",(0,l.jsx)(n.h3,{id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",children:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5C42"}),"\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u5E94\u7528\u5C42"}),"\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u4E1A\u52A1\u89E3\u6790\u5206\u5C42",src:s(3042).A+"",width:"3972",height:"2296"})}),"\n",(0,l.jsx)(n.p,{children:"\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6",src:s(4560).A+"",width:"9256",height:"1888"})}),"\n",(0,l.jsxs)(n.p,{children:["\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F ",(0,l.jsx)(n.code,{children:"BaseXxxClient"}),"\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u7EE7\u627F BaseXxxClient \u6269\u5C55",src:s(3694).A+"",width:"2324",height:"1252"})}),"\n",(0,l.jsxs)(n.p,{children:["\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 ",(0,l.jsx)(n.code,{children:"XxxSqlParser"})," \u4E2D\u6CE8\u518C\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client",src:s(3220).A+"",width:"2100",height:"648"})}),"\n",(0,l.jsx)(n.p,{children:"\u793A\u4F8B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u51C6\u5907 SQL\nString sql = getSql();\n\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n// 2.1\u3001\u89E3\u6790\u8868\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\n\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\n\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\n\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\nSet<String> functions = sqlParser.parseFunction(sql);\n"})}),"\n",(0,l.jsx)(n.h3,{id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",children:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",src:s(4778).A+"",width:"5684",height:"2764"})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",children:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002"}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B"}),"\uFF1A",(0,l.jsx)(n.code,{children:"insert into/overwrite ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"create ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"with as ... insert"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\u662F",(0,l.jsx)(n.strong,{children:"\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868"}),"\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EE5\u4E00\u6761 ",(0,l.jsx)(n.code,{children:"insert select"})," \u4E3A\u4F8B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"insert into new_table (id, name)\nselect a.id as aid, b.name as bname\nfrom old_table as a\nleft join old_table2 b on a.id = b.id\n"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u7AEF\u3001",(0,l.jsx)(n.code,{children:"select"})," \u6765\u6E90\u7AEF\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u76EE\u6807\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id id new_table\n name name new_table\n\n# \u6765\u6E90\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id aid old_table\n name bname old_table2\n"})}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsx)(n.li,{children:"\u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u7B2C\u4E00\u6761\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\n# \u7B2C\u4E8C\u6761\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002"}),"\n",(0,l.jsxs)(n.p,{children:["\u5BF9\u4E8E ",(0,l.jsx)(n.code,{children:"with as"})," \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 ",(0,l.jsx)(n.code,{children:"()"})," \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E",(0,l.jsx)(n.strong,{children:"\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5"}),"\u7684\u573A\u666F\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"concat(t1.name, t2.name)"}),"\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 ",(0,l.jsx)(n.code,{children:","})," \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"52-\u8868\u8840\u7F18\u89E3\u6790",children:"5.2 \u8868\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A ",(0,l.jsx)(n.code,{children:"select"})," \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E ",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"53-\u8868\u89E3\u6790",children:"5.3 \u8868\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08",(0,l.jsx)(n.code,{children:"select"}),"\u3001",(0,l.jsx)(n.code,{children:"update"}),"\u3001",(0,l.jsx)(n.code,{children:"delete"}),"\u3001",(0,l.jsx)(n.code,{children:"insert"}),"\u3001",(0,l.jsx)(n.code,{children:"drop"}),"\u3001",(0,l.jsx)(n.code,{children:"rename"})," \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"54-\u51FD\u6570\u89E3\u6790",children:"5.4 \u51FD\u6570\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 ",(0,l.jsx)(n.strong,{children:"Visitor \u6A21\u5F0F"}),"\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790",src:s(593).A+"",width:"2150",height:"1224"})}),"\n",(0,l.jsx)(n.h3,{id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",children:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09"}),"\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL"}),"\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",children:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A",(0,l.jsx)(n.strong,{children:"\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E8E\u662F\u6709\u4E86 ",(0,l.jsx)(n.strong,{children:"SqlParserX"})," \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790"}),"\u7684\u5F00\u6E90\u9879\u76EE\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"61-\u53CC\u5C42\u67B6\u6784",children:"6.1 \u53CC\u5C42\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SqlParserX\uFF08\u6839 Reactor\uFF09\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\n"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002"]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E24\u5C42\u4EE5 ",(0,l.jsx)(n.code,{children:"DbType + SQLStatement AST"})," \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C",(0,l.jsx)(n.strong,{children:"\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST"}),"\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",children:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid"}),"\n",(0,l.jsxs)(n.p,{children:["\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A",(0,l.jsx)(n.strong,{children:"\u5B98\u65B9 Druid 1.2.28"}),"\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C",(0,l.jsx)(n.strong,{children:"\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898"}),"\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",children:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/01%E3%80%81SQL%E8%AF%AD%E6%B3%95%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/Druid%E7%89%88%E6%9C%AC%E4%B8%8ESQL%E8%AF%AD%E6%B3%95%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5.md",children:"Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/tree/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E8%83%BD%E5%8A%9B%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5",children:"\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%96%87%E6%A1%A3/SqlParserX%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%8C%87%E5%8D%97.md",children:"\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357"})}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"64-\u76EE\u6807",children:"6.4 \u76EE\u6807"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid"})," \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX"}),"\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:["\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,l.jsx)(n.code,{children:"DbType"})," \u4E0E AST \u5BF9\u9F50\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E03\u7ED3\u8BED",children:"\u4E03\u3001\u7ED3\u8BED"}),"\n",(0,l.jsx)(n.p,{children:"\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002"})}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u6587\u56FE\u7247\u4F4D\u4E8E ",(0,l.jsx)(n.code,{children:"assets/"})," \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"]}),"\n"]})]})}function x(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},3519(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png"},6809(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png"},3784(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png"},3130(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/04-druid-syntax-layer-815515eac5295f9f772e1beb97f04c11.png"},4037(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/05-druid-layer-structure-5737c5a7826cff1a2874cf2b927ccd34.png"},3042(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png"},4560(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/07-application-components-3fa01967e1605c21791788f2a06212eb.png"},3694(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png"},3220(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/09-register-client-c6216b08439b96af51fda129de838a4e.png"},4778(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/10-after-refactor-c8b89cd447d9cea7894354ffea6a2fdf.png"},593(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/11-function-visitor-43a9830686ce367f536545b5691f504f.png"},8453(e,n,s){s.d(n,{R:()=>d,x:()=>c});var r=s(6540);let l={},i=r.createContext(l);function d(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),r.createElement(i.Provider,{value:n},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file diff --git a/en/assets/js/4b0ae1c1.8ac82777.js b/en/assets/js/4b0ae1c1.8ac82777.js new file mode 100644 index 0000000..35e0575 --- /dev/null +++ b/en/assets/js/4b0ae1c1.8ac82777.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9375"],{8786(e,r,t){t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=t(5816),s=t(4848),a=t(8453);let o={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},i,l={authorsImageUrls:[void 0]},c=[];function u(e){let r={a:"a",blockquote:"blockquote",p:"p",...(0,a.R)(),...e.components};return(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsx)(r.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,s.jsxs)(r.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,s.jsx)(r.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,s.jsx)(r.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},8453(e,r,t){t.d(r,{R:()=>o,x:()=>i});var n=t(6540);let s={},a=n.createContext(s);function o(e){let r=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(a.Provider,{value:r},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file diff --git a/en/assets/js/4b0ae1c1.c494aa8e.js b/en/assets/js/4b0ae1c1.c494aa8e.js deleted file mode 100644 index ffb6d46..0000000 --- a/en/assets/js/4b0ae1c1.c494aa8e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9375"],{8786(r,e,t){t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>n,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var s=t(5816),a=t(4848),l=t(8453);let i={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},n,o={authorsImageUrls:[void 0]},c=[];function u(r){let e={a:"a",blockquote:"blockquote",p:"p",...(0,l.R)(),...r.components};return(0,a.jsxs)(e.blockquote,{children:["\n",(0,a.jsx)(e.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,a.jsxs)(e.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,a.jsx)(e.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,a.jsx)(e.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]})}function g(r={}){let{wrapper:e}={...(0,l.R)(),...r.components};return e?(0,a.jsx)(e,{...r,children:(0,a.jsx)(u,{...r})}):u(r)}},5816(r){r.exports=JSON.parse('{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file diff --git a/en/assets/js/533336a0.5348230d.js b/en/assets/js/533336a0.2c9aa3e0.js similarity index 50% rename from en/assets/js/533336a0.5348230d.js rename to en/assets/js/533336a0.2c9aa3e0.js index dcca726..8595d77 100644 --- a/en/assets/js/533336a0.5348230d.js +++ b/en/assets/js/533336a0.2c9aa3e0.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8102"],{1082(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var s=JSON.parse('{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/table-lineage.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar_label":"Table Lineage","sidebar_position":2},"sidebar":"docs","previous":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage"},"next":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/next/core/table-parse"}}'),t=n(4848),a=n(8453);let l={title:"Table Lineage",description:"Parse source-to-target table lineage from SQL",sidebar_label:"Table Lineage",sidebar_position:2},i="Table Lineage",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"table-lineage",children:"Table Lineage"})}),"\n",(0,t.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,t.jsxs)(r.p,{children:["Using the official ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," sample SQL, from parser creation to printing table lineage:"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse table lineage\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3. Read the result\n System.out.println("target table: " + result.getTargetTable());\n System.out.println("source tables: " + result.getSourceTables());\n\n List<TableLineage> tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"target table: user_order_summary\nsource tables: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,t.jsxs)(r.p,{children:["Parse ",(0,t.jsx)(r.strong,{children:"target table \u2192 source table"})," table-level lineage from SQL, covering JOIN, UNION, subqueries, aggregates and CTEs."]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 collect source tables + target tables\n \u2192 TableLineageResult\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Item"}),(0,t.jsx)(r.th,{children:"Content"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core entry"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Default impl"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,t.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Return type"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"TableLineageResult"})," (",(0,t.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,t.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,t.jsx)(r.code,{children:"getTableLineages()"}),")"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Coverage"}),(0,t.jsx)(r.td,{children:"JOIN, UNION, subquery, aggregate, CTE"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Capability"}),(0,t.jsx)(r.th,{children:"Status"}),(0,t.jsx)(r.th,{children:"Notes"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Single/multi-table JOIN"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"All participating tables"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"Merge branches"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Subquery / derived table"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"Recursively collect real tables"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CTE (WITH)"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"Recognize CTE and real sources"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"Supported \u2705"})}),(0,t.jsx)(r.td,{children:"Output target and source tables"})]})]})]})]})}function h(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8102"],{1082(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/table-lineage.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar_label":"Table Lineage","sidebar_position":2},"sidebar":"docs","previous":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage"},"next":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/next/core/table-parse"}}'),s=n(4848),a=n(8453);let l={title:"Table Lineage",description:"Parse source-to-target table lineage from SQL",sidebar_label:"Table Lineage",sidebar_position:2},i="Table Lineage",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"table-lineage",children:"Table Lineage"})}),"\n",(0,s.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(r.p,{children:["Using the official ",(0,s.jsx)(r.code,{children:"sqlparserx-core/README.md"})," sample SQL, from parser creation to printing table lineage:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse table lineage\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3. Read the result\n System.out.println("target table: " + result.getTargetTable());\n System.out.println("source tables: " + result.getSourceTables());\n\n List<TableLineage> tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,s.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"target table: user_order_summary\nsource tables: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,s.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(r.p,{children:["Parse ",(0,s.jsx)(r.strong,{children:"target table \u2192 source table"})," table-level lineage from SQL, covering JOIN, UNION, subqueries, aggregates and CTEs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 collect source tables + target tables\n \u2192 TableLineageResult\n"})}),"\n",(0,s.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Item"}),(0,s.jsx)(r.th,{children:"Content"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Core entry"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Default impl"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,s.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Return type"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"TableLineageResult"})," (",(0,s.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,s.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,s.jsx)(r.code,{children:"getTableLineages()"}),")"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Coverage"}),(0,s.jsx)(r.td,{children:"JOIN, UNION, subquery, aggregate, CTE"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Capability"}),(0,s.jsx)(r.th,{children:"Status"}),(0,s.jsx)(r.th,{children:"Notes"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Single/multi-table JOIN"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"All participating tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Merge branches"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Subquery / derived table"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recursively collect real tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"CTE (WITH)"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recognize CTE and real sources"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Output target and source tables"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>l,x:()=>i});var t=n(6540);let s={},a=t.createContext(s);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/5b44acae.5f304454.js b/en/assets/js/5b44acae.5f304454.js new file mode 100644 index 0000000..52ee9fa --- /dev/null +++ b/en/assets/js/5b44acae.5f304454.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8637"],{2424(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>u,frontMatter:()=>o,contentTitle:()=>a,toc:()=>c,assets:()=>l});var r=JSON.parse('{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/en/docs/next/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/intro.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar_label":"Docs Guide","sidebar_position":1},"sidebar":"docs","next":{"title":"Introduction","permalink":"/SqlParserX/en/docs/next/about/introduction"}}'),s=t(4848),i=t(8453);let o={title:"SqlParserX Docs",description:"Entry point for the SqlParserX multi-dialect SQL parsing engine",sidebar_label:"Docs Guide",sidebar_position:1},a="Welcome to SqlParserX",l={},c=[{value:"Get Started",id:"get-started",level:2},{value:"Documentation Map",id:"documentation-map",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"welcome-to-sqlparserx",children:"Welcome to SqlParserX"})}),"\n",(0,s.jsxs)(n.p,{children:["SqlParserX is a ",(0,s.jsx)(n.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," for SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,s.jsxs)(n.p,{children:["It is built around two layers: ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," parses SQL into Druid ASTs and owns syntax extensions; ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})," consumes those ASTs through the unified ",(0,s.jsx)(n.code,{children:"ISqlParser"})," contract and produces business parsing results. ",(0,s.jsx)(n.code,{children:"sqlparserx-web"})," and ",(0,s.jsx)(n.code,{children:"sqlparserx-ui"})," provide service and visualization access."]}),"\n",(0,s.jsx)(n.h2,{id:"get-started",children:"Get Started"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u{1F680} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/next/quickstart/setup",children:"Quick Start"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F4D6} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/next/about/introduction",children:"Introduction"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F3D7}\uFE0F ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/next/about/architecture",children:"Architecture"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation-map",children:"Documentation Map"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"About SqlParserX"}),": project introduction and two-layer architecture"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Quick Start"}),": environment setup, build and run"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Core Parsing Capabilities"}),": SQL type detection, field lineage, table lineage, table parsing, function extraction, and parameter extraction"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Contributing"}),": how to contribute"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[":::tip Tip\nUse the navbar to switch ",(0,s.jsx)(n.strong,{children:"version"})," (",(0,s.jsx)(n.code,{children:"1.0"})," / ",(0,s.jsx)(n.code,{children:"Next"}),") and ",(0,s.jsx)(n.strong,{children:"language"})," (\u7B80\u4F53\u4E2D\u6587 / English).\n:::"]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>o,x:()=>a});var r=t(6540);let s={},i=r.createContext(s);function o(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/5b44acae.eb2b091e.js b/en/assets/js/5b44acae.eb2b091e.js deleted file mode 100644 index f947dce..0000000 --- a/en/assets/js/5b44acae.eb2b091e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8637"],{2424(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>u,frontMatter:()=>l,contentTitle:()=>a,toc:()=>c,assets:()=>o});var s=JSON.parse('{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/en/docs/next/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/intro.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar_label":"Docs Guide","sidebar_position":1},"sidebar":"docs","next":{"title":"Introduction","permalink":"/SqlParserX/en/docs/next/about/introduction"}}'),t=n(4848),i=n(8453);let l={title:"SqlParserX Docs",description:"Entry point for the SqlParserX multi-dialect SQL parsing engine",sidebar_label:"Docs Guide",sidebar_position:1},a="Welcome to SqlParserX",o={},c=[{value:"Get Started",id:"get-started",level:2},{value:"Documentation Map",id:"documentation-map",level:2}];function d(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"welcome-to-sqlparserx",children:"Welcome to SqlParserX"})}),"\n",(0,t.jsxs)(r.p,{children:["SqlParserX is a ",(0,t.jsx)(r.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," for table/DDL parsing, table and column lineage, function extraction, SQL splitting and row-level permission rewriting."]}),"\n",(0,t.jsxs)(r.p,{children:["It is built around two layers: ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," parses SQL into Druid ASTs and owns syntax extensions; ",(0,t.jsx)(r.code,{children:"sqlparserx-core"})," consumes those ASTs through the unified ",(0,t.jsx)(r.code,{children:"ISqlParser"})," contract and produces business parsing results. ",(0,t.jsx)(r.code,{children:"sqlparserx-web"})," and ",(0,t.jsx)(r.code,{children:"sqlparserx-ui"})," provide service and visualization access."]}),"\n",(0,t.jsx)(r.h2,{id:"get-started",children:"Get Started"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["\u{1F680} ",(0,t.jsx)(r.a,{href:"/SqlParserX/en/docs/next/quickstart/setup",children:"Quick Start"})]}),"\n",(0,t.jsxs)(r.li,{children:["\u{1F4D6} ",(0,t.jsx)(r.a,{href:"/SqlParserX/en/docs/next/about/introduction",children:"Introduction"})]}),"\n",(0,t.jsxs)(r.li,{children:["\u{1F3D7}\uFE0F ",(0,t.jsx)(r.a,{href:"/SqlParserX/en/docs/next/about/architecture",children:"Architecture"})]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"documentation-map",children:"Documentation Map"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"About SqlParserX"}),": project introduction and two-layer architecture"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Quick Start"}),": environment setup, build and run"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Core Parsing Capabilities"}),": field lineage, table lineage, table parsing, function parsing"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"Contributing"}),": how to contribute"]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:[":::tip Tip\nUse the navbar to switch ",(0,t.jsx)(r.strong,{children:"version"})," (",(0,t.jsx)(r.code,{children:"1.0"})," / ",(0,t.jsx)(r.code,{children:"Next"}),") and ",(0,t.jsx)(r.strong,{children:"language"})," (\u7B80\u4F53\u4E2D\u6587 / English).\n:::"]})]})}function u(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/6073.79b4ff37.js b/en/assets/js/6073.79b4ff37.js new file mode 100644 index 0000000..3b85da1 --- /dev/null +++ b/en/assets/js/6073.79b4ff37.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["6073"],{7454(e,t,i){function n(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}i.d(t,{S:()=>n}),(0,i(6827).K)(n,"populateCommonDb")},944(e,t,i){i.d(t,{diagram:()=>en});var n=i(7454),a=i(6348),r=i(1177),o=i(1293),l=i(6827),d=i(8731),s=i(7829),m="position frame",c="frame positioned",x="position relation",u="relation positioned",f=(0,l.K)(function(e){o.R.debug("options str",e)},"setOptions"),g=(0,l.K)(function(){return{}},"getOptions"),h=(0,l.K)(function(){b(),(0,r.IU)()},"clear");function b(){v={}}(0,l.K)(b,"reset");var p=r.UI.eventmodeling,w=(0,l.K)(()=>(0,a.$t)({...p,...(0,r.zj)().eventmodeling}),"getConfig"),v={};function y(){let e=K,{ast:t}=v,i=M();if(!t)throw Error("No data for EventModel");return t.frames.forEach((n,a)=>{let r=E(n,t.dataEntities,i);e=L(e,{$kind:m,index:a,frame:n,textProps:r}),O(n)?(o.R.debug("source frame",n.sourceFrames),t.frames.filter(e=>n.sourceFrames.some(t=>t.$refText===e.name)).forEach(t=>{e=L(e,{$kind:x,index:a,frame:n,sourceFrame:t})})):e=L(e,{$kind:x,index:a,frame:n})}),e={...e,sortedSwimlanesArray:H(e.swimlanes)}}function k(e){v.ast=e}(0,l.K)(y,"getState"),(0,l.K)(k,"setAst");var P={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function M(){return P}(0,l.K)(M,"getDiagramProps");var K={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function S(e){let t=e.split(".");if(2===t.length)return t[0]}function B(e){let t=e.split(".");return 2===t.length?t[1]:e}function F(e,t){if(t&&0!==t.length)return Object.values(e).find(e=>e.namespace===t)}function R(e,t,i){return Math.max(t,...Object.keys(e).filter(e=>{let n=Number.parseInt(e);return n>t&&n<i}).map(e=>Number.parseInt(e)))+1}function $(e,t){let i=S(e.entityIdentifier),n=F(t,i);switch(e.modelEntityType){case"ui":case"pcr":case"processor":if(n)return{index:n.index,label:n.namespace||P.labelUiAutomation};if(i)return{index:R(t,0,100),label:P.labelUiAutomationPrefix+i};return{index:0,label:P.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":if(n)return{index:n.index,label:n.namespace||P.labelCommandReadModel};if(i)return{index:R(t,100,200),label:P.labelCommandReadModelPrefix+i};return{index:100,label:P.labelCommandReadModel};default:if(n)return{index:n.index,label:n.namespace||P.labelEvents};if(i)return{index:R(t,200,300),label:P.labelEventsPrefix+i};return{index:200,label:P.labelEvents}}}function A(e){let{themeVariables:t}=(0,r.zj)();switch(e.modelEntityType){case"ui":return{fill:t.emUiFill??"white",stroke:t.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:t.emProcessorFill??"#edb3f6",stroke:t.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:t.emReadModelFill??"#d3f1a2",stroke:t.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:t.emCommandFill??"#bcd6fe",stroke:t.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:t.emEventFill??"#ffb778",stroke:t.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}function E(e,t,i){let n,l=(0,r.zj)(),d=(0,r.jZ)(B(e.entityIdentifier)??"",l),s={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"},m=(0,a.bH)(d,i.textMaxWidth,s),c=`<b>${m}</b>`;if(e.dataInlineValue&&(n=(n=(n=e.dataInlineValue).substring(n.indexOf("{")+1)).substring(0,n.lastIndexOf("}")-1),n=(0,r.jZ)(n,l),n=(n=(0,a.bH)(n,i.textMaxWidth,s)).replaceAll(" "," ")),e.dataReference){let o=t.find(t=>t.name===e.dataReference?.$refText);o&&(n=(n=(n=o.dataBlockValue).substring(n.indexOf("{\n")+2)).substring(0,n.lastIndexOf("}")-1),n=(0,r.jZ)(n,l),n=(n=(0,a.bH)(n,i.textMaxWidth,s)).replaceAll(" "," ")+"<br/>")}let x=void 0!==n;x&&(c+=`<br/><br/><code style="text-align: left; display: block;max-width:${i.textMaxWidth}px">${n}</code>`);let u={fontSize:s.fontSize,fontWeight:s.fontWeight,fontFamily:s.fontFamily},f=(0,a.PX)(c,u),g={content:c,width:x?f.width/3:f.width,height:f.height};return o.R.debug(`[${e.name}] ${e.entityIdentifier} text`,g),g}function T(e,t){let i=A(t.frame),n={width:t.textProps.width+2*P.boxTextPadding,height:t.textProps.height+2*P.boxTextPadding};return[{$kind:c,frame:t.frame,index:t.index,visual:i,dimension:n,textProps:t.textProps}]}function W(e,t,i){return void 0===t?P.contentStartX:t.index===e.index&&e.r?e.r+P.boxPadding:void 0===i?P.contentStartX:i.r-P.boxOverlap+P.boxPadding}function D(e,t){return Math.max(...e.map(e=>e.r),t)}function H(e){return Object.values(e).sort((e,t)=>e.index-t.index)}function I(e,t){let i,n=$(t.frame,e.swimlanes);i=n.index in e.swimlanes?e.swimlanes[n.index]:{index:n.index,label:n.label,r:0,y:n.index*P.swimlaneMinHeight+P.swimlaneGap,height:P.swimlaneMinHeight,maxHeight:P.swimlaneMinHeight};let a=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,r=void 0!==e.previousSwimlaneNumber?e.swimlanes[e.previousSwimlaneNumber]:void 0,o={width:Math.max(P.boxMinWidth,Math.min(P.boxMaxWidth,t.dimension.width))+2*P.boxPadding,height:Math.max(P.boxMinHeight,Math.min(P.boxMaxHeight,t.dimension.height))+2*P.boxPadding},l=W(i,r,a),d=l+o.width+P.boxPadding,s=D(Object.values(e.swimlanes),d);i.r=l+o.width,i.maxHeight=Math.max(i.maxHeight,o.height),i.height=Math.max(P.swimlaneMinHeight,i.maxHeight)+2*P.swimlanePadding;let m={x:l,y:P.swimlanePadding+i.y,r:d,dimension:o,leftSibling:!1,swimlane:i,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},c={...e,boxes:[...e.boxes,m],swimlanes:{...e.swimlanes,[`${i.index}`]:i},previousSwimlaneNumber:n.index,previousFrame:t.frame,maxR:s},x=H(c.swimlanes);x.length>0&&(x[0].y=0);for(let e=1;e<x.length;e++){let t=x[e],i=x[e-1];t.y=i.y+i.height+P.swimlaneGap}return c}function C(e,t){return 0===e&&0===t.sourceFrames.length}function O(e){return void 0!==e.sourceFrames&&null!==e.sourceFrames&&e.sourceFrames.length>0}function j(e,t){if(null!=t)return e.find(e=>e.frame.name===t.name)}function U(e,t,i){if(!(i<0))for(let n=i;n>=0;n--){let i=e[n];if(i.swimlane.index!==t)return i}}function N(e,t){let i;if((0,d.F5)(t.frame)||C(t.index,t.frame))return[];let n=j(e.boxes,t.frame);if(void 0===n)throw Error(`Target box not found for frame ${t.frame.name}`);return void 0===(i=t.sourceFrame?j(e.boxes,t.sourceFrame):U(e.boxes,n.swimlane.index,t.index-1))?[]:[{$kind:u,frame:t.frame,index:t.index,sourceBox:i,targetBox:n}]}function z(e,t){let i={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox};return{...e,relations:[...e.relations,i]}}(0,l.K)(S,"extractNamespace"),(0,l.K)(B,"extractName"),(0,l.K)(F,"findSwimlaneByNamespace"),(0,l.K)(R,"findNextAvailableIndex"),(0,l.K)($,"calculateSwimlaneProps"),(0,l.K)(A,"calculateEntityVisualProps"),(0,l.K)(E,"calculateTextProps"),(0,l.K)(T,"decidePositionFrame"),(0,l.K)(W,"calculateX"),(0,l.K)(D,"calculateMaxRight"),(0,l.K)(H,"sortedSwimlanesArray"),(0,l.K)(I,"evolveFramePositioned"),(0,l.K)(C,"isFirstFrame"),(0,l.K)(O,"hasSourceFrame"),(0,l.K)(j,"findBoxByFrame"),(0,l.K)(U,"findBoxByLineIndex"),(0,l.K)(N,"decidePositionRelation"),(0,l.K)(z,"evolveRelationPositioned");var X={[m]:T,[x]:N},V={[c]:I,[u]:z};function q(e,t){let i=X[t.$kind];if(null==i)return[];let n=i(e,t);return o.R.debug("decided events",n),n}function G(e,t){let i=t.reduce((e,t)=>{let i=V[t.$kind];return null==i?e:i(e,t)},e);return o.R.debug("evolve events",{state:e,newState:i,events:t}),i}function L(e,t){let i=q(e,t);return G(e,i)}(0,l.K)(q,"decide"),(0,l.K)(G,"evolve"),(0,l.K)(L,"dispatch");var Z={getConfig:w,setOptions:f,getOptions:g,clear:h,setAccTitle:r.SV,getAccTitle:r.iN,getAccDescription:r.m7,setAccDescription:r.EI,setDiagramTitle:r.ke,getDiagramTitle:r.ab,setAst:k,getDiagramProps:M,getState:y},Y={parse:(0,l.K)(async e=>{let t=await (0,d.qg)("eventmodeling",e);o.R.debug(t),Z.setAst(t),(0,n.S)(t,Z)},"parse")},J=(0,r.D7)(),Q=J?.eventmodeling;function _(e,t){return i=>{let n=i.swimlane.y+t.swimlanePadding,a=e.append("g").attr("class","em-box");a.append("rect").attr("x",i.x).attr("y",n).attr("rx","3").attr("width",i.dimension.width).attr("height",i.dimension.height).attr("stroke",i.visual.stroke).attr("fill",i.visual.fill),a.append("foreignObject").attr("x",i.x+t.boxPadding).attr("y",n+10).attr("width",i.dimension.width-2*t.boxPadding).attr("height",i.dimension.height-2*t.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(i.text)}}function ee(e,t){return e>t}function et(e,t,i,n){return a=>{let r,l,d=a.sourceBox.swimlane.y+t.swimlanePadding,s=a.targetBox.swimlane.y+t.swimlanePadding,m=ee(d,s),c=a.sourceBox.x+2*a.sourceBox.dimension.width/3,x=a.targetBox.x+a.targetBox.dimension.width/3;o.R.debug(`rendering relation up=${m} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),m?(r=d,l=s+a.targetBox.dimension.height):(r=d+a.sourceBox.dimension.height,l=s);let u=n.emRelationStroke??a.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",a.visual.fill).attr("stroke",u).attr("stroke-width","1").attr("marker-end",`url(#${i})`).attr("d",`M${c} ${r} L${x} ${l}`)}}function ei(e,t,i,n){return a=>{let r=e.append("g").attr("class","em-swimlane"),o=n.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=n.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",a.y).attr("rx","3").attr("width",t+i.swimlanePadding).attr("height",a.height).attr("fill",o).attr("stroke",l),r.append("text").attr("font-weight",i.swimlaneTextFontWeight).attr("x",30).attr("y",a.y+30).text(a.label)}}(0,l.K)(_,"renderD3Box"),(0,l.K)(ee,"dirUpwards"),(0,l.K)(et,"renderD3Relation"),(0,l.K)(ei,"renderD3Swimlane");var en={parser:Y,db:Z,renderer:{draw:(0,l.K)(function(e,t,i,n){if(o.R.debug("in eventmodeling renderer",e+"\n","id:",t,i),!Q)throw Error("EventModeling config not found");let a=n.db,{themeVariables:l,eventmodeling:d}=(0,r.D7)(),m=(0,s.Ltv)(`[id="${t}"]`),c=a.getDiagramProps(),x=a.getState(),u=`em-arrowhead-${t}`,f=l.emArrowhead??"#000000";x.sortedSwimlanesArray.forEach(ei(m,x.maxR,c,l)),x.boxes.forEach(_(m,c)),x.relations.forEach(et(m,c,u,l)),m.append("defs").append("marker").attr("id",u).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",f),(0,r.mj)(void 0,m,d?.padding??30,d?.useMaxWidth)},"draw")},styles:(0,l.K)(e=>"","getStyles")}}}]); \ No newline at end of file diff --git a/en/assets/js/6073.99acb2b6.js b/en/assets/js/6073.99acb2b6.js deleted file mode 100644 index d54c453..0000000 --- a/en/assets/js/6073.99acb2b6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["6073"],{944(e,t,i){i.d(t,{diagram:()=>en});var n=i(7454),a=i(6348),r=i(1177),o=i(1293),l=i(6827),d=i(8731),s=i(7829),m="position frame",x="frame positioned",u="position relation",c="relation positioned",f=(0,l.K)(function(e){o.R.debug("options str",e)},"setOptions"),g=(0,l.K)(function(){return{}},"getOptions"),h=(0,l.K)(function(){b(),(0,r.IU)()},"clear");function b(){v={}}(0,l.K)(b,"reset");var p=r.UI.eventmodeling,w=(0,l.K)(()=>(0,a.$t)({...p,...(0,r.zj)().eventmodeling}),"getConfig"),v={};function y(){let e=K,{ast:t}=v,i=M();if(!t)throw Error("No data for EventModel");return t.frames.forEach((n,a)=>{let r=A(n,t.dataEntities,i);e=L(e,{$kind:m,index:a,frame:n,textProps:r}),C(n)?(o.R.debug("source frame",n.sourceFrames),t.frames.filter(e=>n.sourceFrames.some(t=>t.$refText===e.name)).forEach(t=>{e=L(e,{$kind:u,index:a,frame:n,sourceFrame:t})})):e=L(e,{$kind:u,index:a,frame:n})}),e={...e,sortedSwimlanesArray:T(e.swimlanes)}}function k(e){v.ast=e}(0,l.K)(y,"getState"),(0,l.K)(k,"setAst");var P={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function M(){return P}(0,l.K)(M,"getDiagramProps");var K={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function S(e){let t=e.split(".");if(2===t.length)return t[0]}function B(e){let t=e.split(".");return 2===t.length?t[1]:e}function F(e,t){if(t&&0!==t.length)return Object.values(e).find(e=>e.namespace===t)}function R(e,t,i){return Math.max(t,...Object.keys(e).filter(e=>{let n=Number.parseInt(e);return n>t&&n<i}).map(e=>Number.parseInt(e)))+1}function $(e,t){let i=S(e.entityIdentifier),n=F(t,i);switch(e.modelEntityType){case"ui":case"pcr":case"processor":if(n)return{index:n.index,label:n.namespace||P.labelUiAutomation};if(i)return{index:R(t,0,100),label:P.labelUiAutomationPrefix+i};return{index:0,label:P.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":if(n)return{index:n.index,label:n.namespace||P.labelCommandReadModel};if(i)return{index:R(t,100,200),label:P.labelCommandReadModelPrefix+i};return{index:100,label:P.labelCommandReadModel};default:if(n)return{index:n.index,label:n.namespace||P.labelEvents};if(i)return{index:R(t,200,300),label:P.labelEventsPrefix+i};return{index:200,label:P.labelEvents}}}function E(e){let{themeVariables:t}=(0,r.zj)();switch(e.modelEntityType){case"ui":return{fill:t.emUiFill??"white",stroke:t.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:t.emProcessorFill??"#edb3f6",stroke:t.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:t.emReadModelFill??"#d3f1a2",stroke:t.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:t.emCommandFill??"#bcd6fe",stroke:t.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:t.emEventFill??"#ffb778",stroke:t.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}function A(e,t,i){let n,l=(0,r.zj)(),d=(0,r.jZ)(B(e.entityIdentifier)??"",l),s={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"},m=(0,a.bH)(d,i.textMaxWidth,s),x=`<b>${m}</b>`;if(e.dataInlineValue&&(n=(n=(n=e.dataInlineValue).substring(n.indexOf("{")+1)).substring(0,n.lastIndexOf("}")-1),n=(0,r.jZ)(n,l),n=(n=(0,a.bH)(n,i.textMaxWidth,s)).replaceAll(" "," ")),e.dataReference){let o=t.find(t=>t.name===e.dataReference?.$refText);o&&(n=(n=(n=o.dataBlockValue).substring(n.indexOf("{\n")+2)).substring(0,n.lastIndexOf("}")-1),n=(0,r.jZ)(n,l),n=(n=(0,a.bH)(n,i.textMaxWidth,s)).replaceAll(" "," ")+"<br/>")}let u=void 0!==n;u&&(x+=`<br/><br/><code style="text-align: left; display: block;max-width:${i.textMaxWidth}px">${n}</code>`);let c={fontSize:s.fontSize,fontWeight:s.fontWeight,fontFamily:s.fontFamily},f=(0,a.PX)(x,c),g={content:x,width:u?f.width/3:f.width,height:f.height};return o.R.debug(`[${e.name}] ${e.entityIdentifier} text`,g),g}function W(e,t){let i=E(t.frame),n={width:t.textProps.width+2*P.boxTextPadding,height:t.textProps.height+2*P.boxTextPadding};return[{$kind:x,frame:t.frame,index:t.index,visual:i,dimension:n,textProps:t.textProps}]}function H(e,t,i){return void 0===t?P.contentStartX:t.index===e.index&&e.r?e.r+P.boxPadding:void 0===i?P.contentStartX:i.r-P.boxOverlap+P.boxPadding}function I(e,t){return Math.max(...e.map(e=>e.r),t)}function T(e){return Object.values(e).sort((e,t)=>e.index-t.index)}function O(e,t){let i,n=$(t.frame,e.swimlanes);i=n.index in e.swimlanes?e.swimlanes[n.index]:{index:n.index,label:n.label,r:0,y:n.index*P.swimlaneMinHeight+P.swimlaneGap,height:P.swimlaneMinHeight,maxHeight:P.swimlaneMinHeight};let a=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,r=void 0!==e.previousSwimlaneNumber?e.swimlanes[e.previousSwimlaneNumber]:void 0,o={width:Math.max(P.boxMinWidth,Math.min(P.boxMaxWidth,t.dimension.width))+2*P.boxPadding,height:Math.max(P.boxMinHeight,Math.min(P.boxMaxHeight,t.dimension.height))+2*P.boxPadding},l=H(i,r,a),d=l+o.width+P.boxPadding,s=I(Object.values(e.swimlanes),d);i.r=l+o.width,i.maxHeight=Math.max(i.maxHeight,o.height),i.height=Math.max(P.swimlaneMinHeight,i.maxHeight)+2*P.swimlanePadding;let m={x:l,y:P.swimlanePadding+i.y,r:d,dimension:o,leftSibling:!1,swimlane:i,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},x={...e,boxes:[...e.boxes,m],swimlanes:{...e.swimlanes,[`${i.index}`]:i},previousSwimlaneNumber:n.index,previousFrame:t.frame,maxR:s},u=T(x.swimlanes);u.length>0&&(u[0].y=0);for(let e=1;e<u.length;e++){let t=u[e],i=u[e-1];t.y=i.y+i.height+P.swimlaneGap}return x}function j(e,t){return 0===e&&0===t.sourceFrames.length}function C(e){return void 0!==e.sourceFrames&&null!==e.sourceFrames&&e.sourceFrames.length>0}function D(e,t){if(null!=t)return e.find(e=>e.frame.name===t.name)}function U(e,t,i){if(!(i<0))for(let n=i;n>=0;n--){let i=e[n];if(i.swimlane.index!==t)return i}}function N(e,t){let i;if((0,d.F5)(t.frame)||j(t.index,t.frame))return[];let n=D(e.boxes,t.frame);if(void 0===n)throw Error(`Target box not found for frame ${t.frame.name}`);return void 0===(i=t.sourceFrame?D(e.boxes,t.sourceFrame):U(e.boxes,n.swimlane.index,t.index-1))?[]:[{$kind:c,frame:t.frame,index:t.index,sourceBox:i,targetBox:n}]}function z(e,t){let i={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox};return{...e,relations:[...e.relations,i]}}(0,l.K)(S,"extractNamespace"),(0,l.K)(B,"extractName"),(0,l.K)(F,"findSwimlaneByNamespace"),(0,l.K)(R,"findNextAvailableIndex"),(0,l.K)($,"calculateSwimlaneProps"),(0,l.K)(E,"calculateEntityVisualProps"),(0,l.K)(A,"calculateTextProps"),(0,l.K)(W,"decidePositionFrame"),(0,l.K)(H,"calculateX"),(0,l.K)(I,"calculateMaxRight"),(0,l.K)(T,"sortedSwimlanesArray"),(0,l.K)(O,"evolveFramePositioned"),(0,l.K)(j,"isFirstFrame"),(0,l.K)(C,"hasSourceFrame"),(0,l.K)(D,"findBoxByFrame"),(0,l.K)(U,"findBoxByLineIndex"),(0,l.K)(N,"decidePositionRelation"),(0,l.K)(z,"evolveRelationPositioned");var X={[m]:W,[u]:N},V={[x]:O,[c]:z};function q(e,t){let i=X[t.$kind];if(null==i)return[];let n=i(e,t);return o.R.debug("decided events",n),n}function G(e,t){let i=t.reduce((e,t)=>{let i=V[t.$kind];return null==i?e:i(e,t)},e);return o.R.debug("evolve events",{state:e,newState:i,events:t}),i}function L(e,t){let i=q(e,t);return G(e,i)}(0,l.K)(q,"decide"),(0,l.K)(G,"evolve"),(0,l.K)(L,"dispatch");var Z={getConfig:w,setOptions:f,getOptions:g,clear:h,setAccTitle:r.SV,getAccTitle:r.iN,getAccDescription:r.m7,setAccDescription:r.EI,setDiagramTitle:r.ke,getDiagramTitle:r.ab,setAst:k,getDiagramProps:M,getState:y},Y={parse:(0,l.K)(async e=>{let t=await (0,d.qg)("eventmodeling",e);o.R.debug(t),Z.setAst(t),(0,n.S)(t,Z)},"parse")},J=(0,r.D7)(),Q=J?.eventmodeling;function _(e,t){return i=>{let n=i.swimlane.y+t.swimlanePadding,a=e.append("g").attr("class","em-box");a.append("rect").attr("x",i.x).attr("y",n).attr("rx","3").attr("width",i.dimension.width).attr("height",i.dimension.height).attr("stroke",i.visual.stroke).attr("fill",i.visual.fill),a.append("foreignObject").attr("x",i.x+t.boxPadding).attr("y",n+10).attr("width",i.dimension.width-2*t.boxPadding).attr("height",i.dimension.height-2*t.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(i.text)}}function ee(e,t){return e>t}function et(e,t,i,n){return a=>{let r,l,d=a.sourceBox.swimlane.y+t.swimlanePadding,s=a.targetBox.swimlane.y+t.swimlanePadding,m=ee(d,s),x=a.sourceBox.x+2*a.sourceBox.dimension.width/3,u=a.targetBox.x+a.targetBox.dimension.width/3;o.R.debug(`rendering relation up=${m} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),m?(r=d,l=s+a.targetBox.dimension.height):(r=d+a.sourceBox.dimension.height,l=s);let c=n.emRelationStroke??a.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",a.visual.fill).attr("stroke",c).attr("stroke-width","1").attr("marker-end",`url(#${i})`).attr("d",`M${x} ${r} L${u} ${l}`)}}function ei(e,t,i,n){return a=>{let r=e.append("g").attr("class","em-swimlane"),o=n.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=n.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",a.y).attr("rx","3").attr("width",t+i.swimlanePadding).attr("height",a.height).attr("fill",o).attr("stroke",l),r.append("text").attr("font-weight",i.swimlaneTextFontWeight).attr("x",30).attr("y",a.y+30).text(a.label)}}(0,l.K)(_,"renderD3Box"),(0,l.K)(ee,"dirUpwards"),(0,l.K)(et,"renderD3Relation"),(0,l.K)(ei,"renderD3Swimlane");var en={parser:Y,db:Z,renderer:{draw:(0,l.K)(function(e,t,i,n){if(o.R.debug("in eventmodeling renderer",e+"\n","id:",t,i),!Q)throw Error("EventModeling config not found");let a=n.db,{themeVariables:l,eventmodeling:d}=(0,r.D7)(),m=(0,s.Ltv)(`[id="${t}"]`),x=a.getDiagramProps(),u=a.getState(),c=`em-arrowhead-${t}`,f=l.emArrowhead??"#000000";u.sortedSwimlanesArray.forEach(ei(m,u.maxR,x,l)),u.boxes.forEach(_(m,x)),u.relations.forEach(et(m,x,c,l)),m.append("defs").append("marker").attr("id",c).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",f),(0,r.mj)(void 0,m,d?.padding??30,d?.useMaxWidth)},"draw")},styles:(0,l.K)(e=>"","getStyles")}}}]); \ No newline at end of file diff --git a/en/assets/js/6832.2c2e961f.js b/en/assets/js/6832.438cdfc9.js similarity index 99% rename from en/assets/js/6832.2c2e961f.js rename to en/assets/js/6832.438cdfc9.js index 9e021f9..10b33e1 100644 --- a/en/assets/js/6832.2c2e961f.js +++ b/en/assets/js/6832.438cdfc9.js @@ -33,4 +33,4 @@ translate(${O}, ${D-e.height/2}) translate(${i*o.width/2}, ${n*o.height/2}) rotate(${-1*i*n*45}, 0, ${e.height/2}) - `)}}}}}))},"drawEdges"),z=(0,d.K)(async function(t,e,i,r){let n=.75*i.getConfigField("padding"),s=i.getConfigField("fontSize"),l=i.getConfigField("iconSize")/2;await Promise.all(e.nodes().map(async e=>{let d=b(e);if("group"===d.type){let{h:g,w:c,x1:u,y1:f}=e.boundingBox(),p=t.append("rect");p.attr("id",`${r}-group-${d.id}`).attr("x",u+l).attr("y",f+l).attr("width",c).attr("height",g).attr("class","node-bkg");let m=t.append("g"),v=u,y=f;if(d.icon){let t=m.append("g");t.html(`<g>${await (0,a.WY)(d.icon,{height:n,width:n,fallbackPrefix:H.prefix})}</g>`),t.attr("transform","translate("+(v+l+1)+", "+(y+l+1)+")"),v+=n,y+=s/2-1-2}if(d.label){let t=m.append("g");await (0,o.GZ)(t,d.label,{useHtmlLabels:!1,width:c,classes:"architecture-service-label"},(0,h.D7)()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),t.attr("transform","translate("+(v+l+4)+", "+(y+l+2)+")")}i.setElementForId(d.id,p)}}))},"drawGroups"),B=(0,d.K)(async function(t,e,i,r){let n=(0,h.D7)();for(let s of i){let i=e.append("g"),l=t.getConfigField("iconSize");if(s.title){let t=i.append("g");await (0,o.GZ)(t,s.title,{useHtmlLabels:!1,width:1.5*l,classes:"architecture-service-label"},n),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),t.attr("transform","translate("+l/2+", "+l+")")}let d=i.append("g");if(s.icon)d.html(`<g>${await (0,a.WY)(s.icon,{height:l,width:l,fallbackPrefix:H.prefix})}</g>`);else if(s.iconText){d.html(`<g>${await (0,a.WY)("blank",{height:l,width:l,fallbackPrefix:H.prefix})}</g>`);let t=d.append("g").append("foreignObject").attr("width",l).attr("height",l).append("div").attr("class","node-icon-text").attr("style",`height: ${l}px;`).append("div").html((0,h.jZ)(s.iconText,n)),e=parseInt(window.getComputedStyle(t.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;t.attr("style",`-webkit-line-clamp: ${Math.floor((l-2)/e)};`)}else d.append("path").attr("class","node-bkg").attr("id",`${r}-node-${s.id}`).attr("d",`M0,${l} V5 Q0,0 5,0 H${l-5} Q${l},0 ${l},5 V${l} Z`);i.attr("id",`${r}-service-${s.id}`).attr("class","architecture-service");let{width:g,height:c}=i.node().getBBox();s.width=g,s.height=c,t.setElementForId(s.id,i)}return 0},"drawServices"),V=(0,d.K)(function(t,e,i,r){i.forEach(i=>{let n=e.append("g"),o=t.getConfigField("iconSize");n.append("g").append("rect").attr("id",`${r}-node-${i.id}`).attr("fill-opacity","0").attr("width",o).attr("height",o),n.attr("class","architecture-junction");let{width:a,height:s}=n._groups[0][0].getBBox();n.width=a,n.height=s,t.setElementForId(i.id,n)})},"drawJunctions");function W(t,e,i){t.forEach(t=>{e.add({group:"nodes",data:{type:"service",id:t.id,icon:t.icon,label:t.title,parent:t.in,width:i.getConfigField("iconSize"),height:i.getConfigField("iconSize")},classes:"node-service"})})}function $(t,e,i){t.forEach(t=>{e.add({group:"nodes",data:{type:"junction",id:t.id,parent:t.in,width:i.getConfigField("iconSize"),height:i.getConfigField("iconSize")},classes:"node-junction"})})}function j(t,e){e.nodes().map(e=>{let i=b(e);"group"===i.type||(i.x=e.position().x,i.y=e.position().y,t.getElementById(i.id).attr("transform","translate("+(i.x||0)+","+(i.y||0)+")"))})}function q(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"group",id:t.id,icon:t.icon,label:t.title,parent:t.in},classes:"node-group"})})}function K(t,e){t.forEach(t=>{let{lhsId:i,rhsId:r,lhsInto:n,lhsGroup:o,rhsInto:a,lhsDir:s,rhsDir:h,rhsGroup:l,title:d}=t,g=A(t.lhsDir,t.rhsDir)?"segments":"straight",c={id:`${i}-${r}`,label:d,source:i,sourceDir:s,sourceArrow:n,sourceGroup:o,sourceEndpoint:"L"===s?"0 50%":"R"===s?"100% 50%":"T"===s?"50% 0":"50% 100%",target:r,targetDir:h,targetArrow:a,targetGroup:l,targetEndpoint:"L"===h?"0 50%":"R"===h?"100% 50%":"T"===h?"50% 0":"50% 100%"};e.add({group:"edges",data:c,classes:g})})}function Z(t,e,i,r=[]){let n=(0,d.K)((t,e)=>{let r=new Map;for(let[n,o]of t.entries()){let t=`${n}`,a=0,s=[...o.entries()];if(1===s.length){r.set(t,s[0][1]);continue}for(let n=0;n<s.length-1;n++)for(let o=n+1;o<s.length;o++){let[h,l]=s[n],[d,g]=s[o];if(i.get(D(h,d))===e)r.set(t,[...r.get(t)??[],...l,...g]);else if("default"===h||"default"===d)r.set(t,[...r.get(t)??[],...l,...g]);else{let e=`${t}-${a++}`;r.set(e,l);let i=`${t}-${a++}`;r.set(i,g)}}}return r},"flattenAlignments"),[o,a]=e.map(e=>{let i=new Map,r=new Map;return e.forEach(([e,n],o)=>{let a=t.getNode(o)?.in??"default",s=i.get(n)??new Map;i.has(n)||i.set(n,s);let h=r.get(e)??new Map;for(let t of(r.has(e)||r.set(e,h),[s,h])){let e=t.get(a)??[];t.has(a)||t.set(a,e),e.push(o)}}),{horiz:[...n(i,"horizontal").values()].filter(t=>t.length>1),vert:[...n(r,"vertical").values()].filter(t=>t.length>1)}}).reduce(([t,e],{horiz:i,vert:r})=>[[...t,...i],[...e,...r]],[[],[]]),s=new Set;r.forEach(t=>t.members.forEach(t=>s.add(t)));let h=(0,d.K)(t=>t.filter(t=>!t.some(t=>s.has(t))),"dropOverlapping"),l=h(o),g=h(a);return r.forEach(t=>{t.members.length<2||("row"===t.direction?l.push([...t.members]):g.push([...t.members]))}),{horizontal:l,vertical:g}}function Q(t,e,i=[]){let r=[],n=e.getConfigField("iconSize"),o=e.getConfigField("idealEdgeLengthMultiplier"),a=o*n,s=new Set;i.forEach(t=>{for(let e=0;e<t.members.length-1;e++){let i=t.members[e],n=t.members[e+1];s.add(`${i}|${n}`),s.add(`${n}|${i}`),"row"===t.direction?r.push({left:i,right:n,gap:a}):r.push({top:i,bottom:n,gap:a})}});let h=(0,d.K)(t=>`${t[0]},${t[1]}`,"posToStr"),l=(0,d.K)(t=>t.split(",").map(t=>parseInt(t)),"strToPos");return t.forEach(t=>{let e=new Map([...t.entries()].map(([t,e])=>[h(e),t])),i=[h([0,0])],a={},d={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;i.length>0;){let t=i.shift();if(t){a[t]=1;let g=e.get(t);if(g){let c=l(t);Object.entries(d).forEach(([t,l])=>{let d=h([c[0]+l[0],c[1]+l[1]]),u=e.get(d);if(u&&!a[d]){if(i.push(d),s.has(`${g}|${u}`))return;r.push({[p[t]]:u,[p[y(t)]]:g,gap:o*n})}})}}}}),r}function J(t,e,i,r,n,{spatialMaps:o,groupAlignments:a}){return new Promise(s=>{let h=(0,f.Ltv)("body").append("div").attr("id","cy").attr("style","display:none"),g=(0,c.A)({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge[label]",style:{label:"data(label)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${n.getConfigField("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${n.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});h.remove(),q(i,g),W(t,g,n),$(e,g,n),K(r,g);let u=n.getLayoutHints(),p=Z(n,o,a,u),m=Q(o,n,u),v=n.getConfigField("iconSize"),y=n.getConfigField("idealEdgeLengthMultiplier")*v,E=.5*v,T=n.getConfigField("edgeElasticity"),A=n.getConfigField("seed"),w=g.layout({name:"fcose",quality:"proof",randomize:n.getConfigField("randomize"),nodeSeparation:n.getConfigField("nodeSeparation"),numIter:n.getConfigField("numIter"),styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(t){let[e,i]=t.connectedNodes(),{parent:r}=b(e),{parent:n}=b(i);return r===n?y:E},edgeElasticity(t){let[e,i]=t.connectedNodes(),{parent:r}=b(e),{parent:n}=b(i);return r===n?T:.001},alignmentConstraint:p,relativePlacementConstraint:m});w.one("layoutstop",()=>{function t(t,e,i,r){let n,o,{x:a,y:s}=t,{x:h,y:l}=e;o=(r-s+(a-i)*(s-l)/(a-h))/Math.sqrt(1+Math.pow((s-l)/(a-h),2)),n=Math.sqrt(Math.pow(r-s,2)+Math.pow(i-a,2)-Math.pow(o,2))/Math.sqrt(Math.pow(h-a,2)+Math.pow(l-s,2));let d=(h-a)*(r-s)-(l-s)*(i-a);switch(!0){case d>=0:d=1;break;case d<0:d=-1}let g=(h-a)*(i-a)+(l-s)*(r-s);switch(!0){case g>=0:g=1;break;case g<0:g=-1}return{distances:o=Math.abs(o)*d,weights:n*=g}}for(let e of((0,d.K)(t,"getSegmentWeights"),g.startBatch(),Object.values(g.edges())))if(e.data?.()){let{x:i,y:r}=e.source().position(),{x:n,y:o}=e.target().position();if(i!==n&&r!==o){let i=e.sourceEndpoint(),r=e.targetEndpoint(),{sourceDir:n}=R(e),[o,a]=N(n)?[i.x,r.y]:[r.x,i.y],{weights:s,distances:h}=t(i,r,o,a);e.style("segment-distances",h),e.style("segment-weights",s)}}g.endBatch(),k(A,()=>w.run())});try{k(A,()=>w.run())}catch(t){if(t instanceof RangeError&&t.message.includes("Invalid array length"))throw Error("Architecture layout failed: a declared `align row|column` directive likely contradicts the edge directions, or two declared alignments overlap on a shared node. Check that the order of members in each `align` chain is consistent with the edges between them, and that no node appears in two `align` directives along the same axis.");throw t}g.ready(t=>{l.R.info("Ready",t),s(g)})})}(0,a.pC)([{name:H.prefix,icons:H}]),c.A.use(u),(0,d.K)(W,"addServices"),(0,d.K)($,"addJunctions"),(0,d.K)(j,"positionNodes"),(0,d.K)(q,"addGroups"),(0,d.K)(K,"addEdges"),(0,d.K)(Z,"getAlignments"),(0,d.K)(Q,"getRelativeConstraints"),(0,d.K)(J,"layoutArchitecture");var tt={parser:P,get db(){return new S},renderer:{draw:(0,d.K)(async(t,e,i,r)=>{let o=r.db;o.setDiagramId(e);let a=o.getServices(),s=o.getJunctions(),l=o.getGroups(),d=o.getEdges(),g=o.getDataStructures(),c=(0,n.D)(e),u=c.append("g");u.attr("class","architecture-edges");let f=c.append("g");f.attr("class","architecture-services");let p=c.append("g");p.attr("class","architecture-groups"),await B(o,f,a,e),V(o,f,s,e);let m=await J(a,s,l,d,o,g);await X(u,m,o,e),await z(p,m,o,e),j(o,m),(0,h.ot)(void 0,c,o.getConfigField("padding"),o.getConfigField("useMaxWidth"))},"draw")},styles:U}}}]); \ No newline at end of file + `)}}}}}))},"drawEdges"),z=(0,d.K)(async function(t,e,i,r){let n=.75*i.getConfigField("padding"),s=i.getConfigField("fontSize"),l=i.getConfigField("iconSize")/2;await Promise.all(e.nodes().map(async e=>{let d=b(e);if("group"===d.type){let{h:g,w:c,x1:u,y1:f}=e.boundingBox(),p=t.append("rect");p.attr("id",`${r}-group-${d.id}`).attr("x",u+l).attr("y",f+l).attr("width",c).attr("height",g).attr("class","node-bkg");let m=t.append("g"),v=u,y=f;if(d.icon){let t=m.append("g");t.html(`<g>${await (0,a.WY)(d.icon,{height:n,width:n,fallbackPrefix:H.prefix})}</g>`),t.attr("transform","translate("+(v+l+1)+", "+(y+l+1)+")"),v+=n,y+=s/2-1-2}if(d.label){let t=m.append("g");await (0,o.GZ)(t,d.label,{useHtmlLabels:!1,width:c,classes:"architecture-service-label"},(0,h.D7)()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),t.attr("transform","translate("+(v+l+4)+", "+(y+l+2)+")")}i.setElementForId(d.id,p)}}))},"drawGroups"),B=(0,d.K)(async function(t,e,i,r){let n=(0,h.D7)();for(let s of i){let i=e.append("g"),l=t.getConfigField("iconSize");if(s.title){let t=i.append("g");await (0,o.GZ)(t,s.title,{useHtmlLabels:!1,width:1.5*l,classes:"architecture-service-label"},n),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),t.attr("transform","translate("+l/2+", "+l+")")}let d=i.append("g");if(s.icon)d.html(`<g>${await (0,a.WY)(s.icon,{height:l,width:l,fallbackPrefix:H.prefix})}</g>`);else if(s.iconText){d.html(`<g>${await (0,a.WY)("blank",{height:l,width:l,fallbackPrefix:H.prefix})}</g>`);let t=d.append("g").append("foreignObject").attr("width",l).attr("height",l).append("div").attr("class","node-icon-text").attr("style",`height: ${l}px;`).append("div").html((0,h.jZ)(s.iconText,n)),e=parseInt(window.getComputedStyle(t.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;t.attr("style",`-webkit-line-clamp: ${Math.floor((l-2)/e)};`)}else d.append("path").attr("class","node-bkg").attr("id",`${r}-node-${s.id}`).attr("d",`M0,${l} V5 Q0,0 5,0 H${l-5} Q${l},0 ${l},5 V${l} Z`);i.attr("id",`${r}-service-${s.id}`).attr("class","architecture-service");let{width:g,height:c}=i.node().getBBox();s.width=g,s.height=c,t.setElementForId(s.id,i)}return 0},"drawServices"),V=(0,d.K)(function(t,e,i,r){i.forEach(i=>{let n=e.append("g"),o=t.getConfigField("iconSize");n.append("g").append("rect").attr("id",`${r}-node-${i.id}`).attr("fill-opacity","0").attr("width",o).attr("height",o),n.attr("class","architecture-junction");let{width:a,height:s}=n._groups[0][0].getBBox();n.width=a,n.height=s,t.setElementForId(i.id,n)})},"drawJunctions");function W(t,e,i){t.forEach(t=>{e.add({group:"nodes",data:{type:"service",id:t.id,icon:t.icon,label:t.title,parent:t.in,width:i.getConfigField("iconSize"),height:i.getConfigField("iconSize")},classes:"node-service"})})}function $(t,e,i){t.forEach(t=>{e.add({group:"nodes",data:{type:"junction",id:t.id,parent:t.in,width:i.getConfigField("iconSize"),height:i.getConfigField("iconSize")},classes:"node-junction"})})}function j(t,e){e.nodes().map(e=>{let i=b(e);"group"===i.type||(i.x=e.position().x,i.y=e.position().y,t.getElementById(i.id).attr("transform","translate("+(i.x||0)+","+(i.y||0)+")"))})}function q(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"group",id:t.id,icon:t.icon,label:t.title,parent:t.in},classes:"node-group"})})}function K(t,e){t.forEach(t=>{let{lhsId:i,rhsId:r,lhsInto:n,lhsGroup:o,rhsInto:a,lhsDir:s,rhsDir:h,rhsGroup:l,title:d}=t,g=A(t.lhsDir,t.rhsDir)?"segments":"straight",c={id:`${i}-${r}`,label:d,source:i,sourceDir:s,sourceArrow:n,sourceGroup:o,sourceEndpoint:"L"===s?"0 50%":"R"===s?"100% 50%":"T"===s?"50% 0":"50% 100%",target:r,targetDir:h,targetArrow:a,targetGroup:l,targetEndpoint:"L"===h?"0 50%":"R"===h?"100% 50%":"T"===h?"50% 0":"50% 100%"};e.add({group:"edges",data:c,classes:g})})}function Z(t,e,i,r=[]){let n=(0,d.K)((t,e)=>{let r=new Map;for(let[n,o]of t.entries()){let t=`${n}`,a=0,s=[...o.entries()];if(1===s.length){r.set(t,s[0][1]);continue}for(let n=0;n<s.length-1;n++)for(let o=n+1;o<s.length;o++){let[h,l]=s[n],[d,g]=s[o];if(i.get(D(h,d))===e)r.set(t,[...r.get(t)??[],...l,...g]);else if("default"===h||"default"===d)r.set(t,[...r.get(t)??[],...l,...g]);else{let e=`${t}-${a++}`;r.set(e,l);let i=`${t}-${a++}`;r.set(i,g)}}}return r},"flattenAlignments"),[o,a]=e.map(e=>{let i=new Map,r=new Map;return e.forEach(([e,n],o)=>{let a=t.getNode(o)?.in??"default",s=i.get(n)??new Map;i.has(n)||i.set(n,s);let h=r.get(e)??new Map;for(let t of(r.has(e)||r.set(e,h),[s,h])){let e=t.get(a)??[];t.has(a)||t.set(a,e),e.push(o)}}),{horiz:[...n(i,"horizontal").values()].filter(t=>t.length>1),vert:[...n(r,"vertical").values()].filter(t=>t.length>1)}}).reduce(([t,e],{horiz:i,vert:r})=>[[...t,...i],[...e,...r]],[[],[]]),s=new Set;r.forEach(t=>t.members.forEach(t=>s.add(t)));let h=(0,d.K)(t=>t.filter(t=>!t.some(t=>s.has(t))),"dropOverlapping"),l=h(o),g=h(a);return r.forEach(t=>{t.members.length<2||("row"===t.direction?l.push([...t.members]):g.push([...t.members]))}),{horizontal:l,vertical:g}}function Q(t,e,i=[]){let r=[],n=e.getConfigField("iconSize"),o=e.getConfigField("idealEdgeLengthMultiplier"),a=o*n,s=new Set;i.forEach(t=>{for(let e=0;e<t.members.length-1;e++){let i=t.members[e],n=t.members[e+1];s.add(`${i}|${n}`),s.add(`${n}|${i}`),"row"===t.direction?r.push({left:i,right:n,gap:a}):r.push({top:i,bottom:n,gap:a})}});let h=(0,d.K)(t=>`${t[0]},${t[1]}`,"posToStr"),l=(0,d.K)(t=>t.split(",").map(t=>parseInt(t)),"strToPos");return t.forEach(t=>{let e=new Map([...t.entries()].map(([t,e])=>[h(e),t])),i=[h([0,0])],a={},d={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;i.length>0;){let t=i.shift();if(t){a[t]=1;let g=e.get(t);if(g){let c=l(t);Object.entries(d).forEach(([t,l])=>{let d=h([c[0]+l[0],c[1]+l[1]]),u=e.get(d);if(u&&!a[d]){if(i.push(d),s.has(`${g}|${u}`))return;r.push({[p[t]]:u,[p[y(t)]]:g,gap:o*n})}})}}}}),r}function J(t,e,i,r,n,{spatialMaps:o,groupAlignments:a}){return new Promise(s=>{let h=(0,f.Ltv)("body").append("div").attr("id","cy").attr("style","display:none"),g=(0,c.A)({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge[label]",style:{label:"data(label)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${n.getConfigField("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${n.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});h.remove(),q(i,g),W(t,g,n),$(e,g,n),K(r,g);let u=n.getLayoutHints(),p=Z(n,o,a,u),m=Q(o,n,u),v=n.getConfigField("iconSize"),y=n.getConfigField("idealEdgeLengthMultiplier")*v,E=.5*v,T=n.getConfigField("edgeElasticity"),A=n.getConfigField("seed"),w=g.layout({name:"fcose",quality:"proof",randomize:n.getConfigField("randomize"),nodeSeparation:n.getConfigField("nodeSeparation"),numIter:n.getConfigField("numIter"),styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(t){let[e,i]=t.connectedNodes(),{parent:r}=b(e),{parent:n}=b(i);return r===n?y:E},edgeElasticity(t){let[e,i]=t.connectedNodes(),{parent:r}=b(e),{parent:n}=b(i);return r===n?T:.001},alignmentConstraint:p,relativePlacementConstraint:m});w.one("layoutstop",()=>{function t(t,e,i,r){let n,o,{x:a,y:s}=t,{x:h,y:l}=e;o=(r-s+(a-i)*(s-l)/(a-h))/Math.sqrt(1+Math.pow((s-l)/(a-h),2)),n=Math.sqrt(Math.pow(r-s,2)+Math.pow(i-a,2)-Math.pow(o,2))/Math.sqrt(Math.pow(h-a,2)+Math.pow(l-s,2));let d=(h-a)*(r-s)-(l-s)*(i-a);switch(!0){case d>=0:d=1;break;case d<0:d=-1}let g=(h-a)*(i-a)+(l-s)*(r-s);switch(!0){case g>=0:g=1;break;case g<0:g=-1}return{distances:o=Math.abs(o)*d,weights:n*=g}}for(let e of((0,d.K)(t,"getSegmentWeights"),g.startBatch(),Object.values(g.edges())))if(e.data?.()){let{x:i,y:r}=e.source().position(),{x:n,y:o}=e.target().position();if(i!==n&&r!==o){let i=e.sourceEndpoint(),r=e.targetEndpoint(),{sourceDir:n}=R(e),[o,a]=N(n)?[i.x,r.y]:[r.x,i.y],{weights:s,distances:h}=t(i,r,o,a);e.style("segment-distances",h),e.style("segment-weights",s)}}g.endBatch(),k(A,()=>w.run())});try{k(A,()=>w.run())}catch(t){if(t instanceof RangeError&&t.message.includes("Invalid array length"))throw Error("Architecture layout failed: a declared `align row|column` directive likely contradicts the edge directions, or two declared alignments overlap on a shared node. Check that the order of members in each `align` chain is consistent with the edges between them, and that no node appears in two `align` directives along the same axis.");throw t}g.ready(t=>{l.R.info("Ready",t),s(g)})})}(0,a.pC)([{name:H.prefix,icons:H}]),c.A.use(u),(0,d.K)(W,"addServices"),(0,d.K)($,"addJunctions"),(0,d.K)(j,"positionNodes"),(0,d.K)(q,"addGroups"),(0,d.K)(K,"addEdges"),(0,d.K)(Z,"getAlignments"),(0,d.K)(Q,"getRelativeConstraints"),(0,d.K)(J,"layoutArchitecture");var tt={parser:P,get db(){return new S},renderer:{draw:(0,d.K)(async(t,e,i,r)=>{let o=r.db;o.setDiagramId(e);let a=o.getServices(),s=o.getJunctions(),l=o.getGroups(),d=o.getEdges(),g=o.getDataStructures(),c=(0,n.D)(e),u=c.append("g");u.attr("class","architecture-edges");let f=c.append("g");f.attr("class","architecture-services");let p=c.append("g");p.attr("class","architecture-groups"),await B(o,f,a,e),V(o,f,s,e);let m=await J(a,s,l,d,o,g);await X(u,m,o,e),await z(p,m,o,e),j(o,m),(0,h.ot)(void 0,c,o.getConfigField("padding"),o.getConfigField("useMaxWidth"))},"draw")},styles:U}},7454(t,e,i){"use strict";function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}i.d(e,{S:()=>r}),(0,i(6827).K)(r,"populateCommonDb")}}]); \ No newline at end of file diff --git a/en/assets/js/7256.b8012a00.js b/en/assets/js/7256.b8012a00.js deleted file mode 100644 index 6414fc4..0000000 --- a/en/assets/js/7256.b8012a00.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7256"],{6699(t,e,a){a.d(e,{diagram:()=>$});var r=a(7454),l=a(4924),i=a(6348),o=a(1177),s=a(1293),n=a(6827),c=a(8731),d=o.UI.packet,k=class{constructor(){this.packet=[],this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getAccDescription=o.m7,this.setAccDescription=o.EI}static{(0,n.K)(this,"PacketDB")}getConfig(){let t=(0,i.$t)({...d,...(0,o.zj)().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){(0,o.IU)(),this.packet=[]}},p=(0,n.K)((t,e)=>{(0,r.S)(t,e);let a=-1,l=[],i=1,{bitsPerRow:o}=e.getConfig();for(let{start:r,end:n,bits:c,label:d}of t.blocks){if(void 0!==r&&void 0!==n&&n<r)throw Error(`Packet block ${r} - ${n} is invalid. End must be greater than start.`);if((r??=a+1)!==a+1)throw Error(`Packet block ${r} - ${n??r} is not contiguous. It should start from ${a+1}.`);if(0===c)throw Error(`Packet block ${r} is invalid. Cannot have a zero bit field.`);for(n??=r+(c??1)-1,c??=n-r+1,a=n,s.R.debug(`Packet block ${r} - ${a} with label ${d}`);l.length<=o+1&&e.getPacket().length<1e4;){let[t,a]=h({start:r,end:n,bits:c,label:d},i,o);if(l.push(t),t.end+1===i*o&&(e.pushWord(l),l=[],i++),!a)break;({start:r,end:n,bits:c,label:d}=a)}}e.pushWord(l)},"populate"),h=(0,n.K)((t,e,a)=>{if(void 0===t.start)throw Error("start should have been set during first phase");if(void 0===t.end)throw Error("end should have been set during first phase");if(t.start>t.end)throw Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*a)return[t,void 0];let r=e*a-1,l=e*a;return[{start:t.start,end:r,label:t.label,bits:r-t.start},{start:l,end:t.end,label:t.label,bits:t.end-l}]},"getNextFittingBlock"),b={parser:{yy:void 0},parse:(0,n.K)(async t=>{let e=await (0,c.qg)("packet",t),a=b.parser?.yy;if(!(a instanceof k))throw Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");s.R.debug(e),p(e,a)},"parse")},f=(0,n.K)((t,e,a,r)=>{let i=r.db,s=i.getConfig(),{rowHeight:n,paddingY:c,bitWidth:d,bitsPerRow:k}=s,p=i.getPacket(),h=i.getDiagramTitle(),b=n+c,f=b*(p.length+1)-(h?0:n),u=d*k+2,$=(0,l.D)(e);for(let[t,e]of($.attr("viewBox",`0 0 ${u} ${f}`),(0,o.a$)($,f,u,s.useMaxWidth),p.entries()))g($,e,t,s);$.append("text").text(h).attr("x",u/2).attr("y",f-b/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),g=(0,n.K)((t,e,a,{rowHeight:r,paddingX:l,paddingY:i,bitWidth:o,bitsPerRow:s,showBits:n})=>{let c=t.append("g"),d=a*(r+i)+i;for(let t of e){let e=t.start%s*o+1,a=(t.end-t.start+1)*o-l;if(c.append("rect").attr("x",e).attr("y",d).attr("width",a).attr("height",r).attr("class","packetBlock"),c.append("text").attr("x",e+a/2).attr("y",d+r/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(t.label),!n)continue;let i=t.end===t.start,k=d-2;c.append("text").attr("x",e+(i?a/2:0)).attr("y",k).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",i?"middle":"start").text(t.start),i||c.append("text").attr("x",e+a).attr("y",k).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(t.end)}},"drawWord"),u={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},$={parser:b,get db(){return new k},renderer:{draw:f},styles:(0,n.K)(({packet:t}={})=>{let e=(0,i.$t)(u,t);return` - .packetByte { - font-size: ${e.byteFontSize}; - } - .packetByte.start { - fill: ${e.startByteColor}; - } - .packetByte.end { - fill: ${e.endByteColor}; - } - .packetLabel { - fill: ${e.labelColor}; - font-size: ${e.labelFontSize}; - } - .packetTitle { - fill: ${e.titleColor}; - font-size: ${e.titleFontSize}; - } - .packetBlock { - stroke: ${e.blockStrokeColor}; - stroke-width: ${e.blockStrokeWidth}; - fill: ${e.blockFillColor}; - } - `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/7256.bfa531c9.js b/en/assets/js/7256.bfa531c9.js new file mode 100644 index 0000000..cc624d9 --- /dev/null +++ b/en/assets/js/7256.bfa531c9.js @@ -0,0 +1,24 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7256"],{7454(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(6827).K)(r,"populateCommonDb")},6699(t,e,a){a.d(e,{diagram:()=>$});var r=a(7454),i=a(4924),l=a(6348),o=a(1177),s=a(1293),c=a(6827),n=a(8731),d=o.UI.packet,p=class{constructor(){this.packet=[],this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getAccDescription=o.m7,this.setAccDescription=o.EI}static{(0,c.K)(this,"PacketDB")}getConfig(){let t=(0,l.$t)({...d,...(0,o.zj)().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){(0,o.IU)(),this.packet=[]}},k=(0,c.K)((t,e)=>{(0,r.S)(t,e);let a=-1,i=[],l=1,{bitsPerRow:o}=e.getConfig();for(let{start:r,end:c,bits:n,label:d}of t.blocks){if(void 0!==r&&void 0!==c&&c<r)throw Error(`Packet block ${r} - ${c} is invalid. End must be greater than start.`);if((r??=a+1)!==a+1)throw Error(`Packet block ${r} - ${c??r} is not contiguous. It should start from ${a+1}.`);if(0===n)throw Error(`Packet block ${r} is invalid. Cannot have a zero bit field.`);for(c??=r+(n??1)-1,n??=c-r+1,a=c,s.R.debug(`Packet block ${r} - ${a} with label ${d}`);i.length<=o+1&&e.getPacket().length<1e4;){let[t,a]=h({start:r,end:c,bits:n,label:d},l,o);if(i.push(t),t.end+1===l*o&&(e.pushWord(i),i=[],l++),!a)break;({start:r,end:c,bits:n,label:d}=a)}}e.pushWord(i)},"populate"),h=(0,c.K)((t,e,a)=>{if(void 0===t.start)throw Error("start should have been set during first phase");if(void 0===t.end)throw Error("end should have been set during first phase");if(t.start>t.end)throw Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*a)return[t,void 0];let r=e*a-1,i=e*a;return[{start:t.start,end:r,label:t.label,bits:r-t.start},{start:i,end:t.end,label:t.label,bits:t.end-i}]},"getNextFittingBlock"),b={parser:{yy:void 0},parse:(0,c.K)(async t=>{let e=await (0,n.qg)("packet",t),a=b.parser?.yy;if(!(a instanceof p))throw Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");s.R.debug(e),k(e,a)},"parse")},f=(0,c.K)((t,e,a,r)=>{let l=r.db,s=l.getConfig(),{rowHeight:c,paddingY:n,bitWidth:d,bitsPerRow:p}=s,k=l.getPacket(),h=l.getDiagramTitle(),b=c+n,f=b*(k.length+1)-(h?0:c),u=d*p+2,$=(0,i.D)(e);for(let[t,e]of($.attr("viewBox",`0 0 ${u} ${f}`),(0,o.a$)($,f,u,s.useMaxWidth),k.entries()))g($,e,t,s);$.append("text").text(h).attr("x",u/2).attr("y",f-b/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),g=(0,c.K)((t,e,a,{rowHeight:r,paddingX:i,paddingY:l,bitWidth:o,bitsPerRow:s,showBits:c})=>{let n=t.append("g"),d=a*(r+l)+l;for(let t of e){let e=t.start%s*o+1,a=(t.end-t.start+1)*o-i;if(n.append("rect").attr("x",e).attr("y",d).attr("width",a).attr("height",r).attr("class","packetBlock"),n.append("text").attr("x",e+a/2).attr("y",d+r/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(t.label),!c)continue;let l=t.end===t.start,p=d-2;n.append("text").attr("x",e+(l?a/2:0)).attr("y",p).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",l?"middle":"start").text(t.start),l||n.append("text").attr("x",e+a).attr("y",p).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(t.end)}},"drawWord"),u={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},$={parser:b,get db(){return new p},renderer:{draw:f},styles:(0,c.K)(({packet:t}={})=>{let e=(0,l.$t)(u,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles")}}}]); \ No newline at end of file diff --git a/en/assets/js/773100d1.d64ce887.js b/en/assets/js/773100d1.d8d80707.js similarity index 88% rename from en/assets/js/773100d1.d64ce887.js rename to en/assets/js/773100d1.d8d80707.js index 5d42747..bb77621 100644 --- a/en/assets/js/773100d1.d64ce887.js +++ b/en/assets/js/773100d1.d8d80707.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4413"],{4282(e,n,s){s.r(n),s.d(n,{metadata:()=>r,default:()=>u,frontMatter:()=>t,contentTitle:()=>i,toc:()=>o,assets:()=>d});var r=JSON.parse('{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/en/docs/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/quickstart/setup.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar_label":"Setup & Build","sidebar_position":1},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/SqlParserX/en/docs/about/architecture"},"next":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/core/field-lineage"}}'),a=s(4848),l=s(8453);let t={title:"Quick Start",description:"Add the dependency, build and run SqlParserX locally",sidebar_label:"Setup & Build",sidebar_position:1},i="Quick Start",d={},o=[{value:"1. Requirements",id:"1-requirements",level:2},{value:"2. Add the Dependency",id:"2-add-the-dependency",level:2},{value:"3. Hello World: Parse a SQL",id:"3-hello-world-parse-a-sql",level:2},{value:"4. Next Steps",id:"4-next-steps",level:2}];function c(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"quick-start",children:"Quick Start"})}),"\n",(0,a.jsx)(n.h2,{id:"1-requirements",children:"1. Requirements"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Dependency"}),(0,a.jsx)(n.th,{children:"Version"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"JDK"}),(0,a.jsx)(n.td,{children:"Java 8+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Maven"}),(0,a.jsx)(n.td,{children:"3.6+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsxs)(n.td,{children:["Node.js (only ",(0,a.jsx)(n.code,{children:"sqlparserx-ui"}),")"]}),(0,a.jsx)(n.td,{children:">= 20"})]})]})]}),"\n",(0,a.jsx)(n.h2,{id:"2-add-the-dependency",children:"2. Add the Dependency"}),"\n",(0,a.jsxs)(n.p,{children:["Add the ",(0,a.jsx)(n.strong,{children:"business parsing layer"})," ",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," to your ",(0,a.jsx)(n.code,{children:"pom.xml"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,a.jsxs)(n.p,{children:[":::tip Dependency note\n",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," (syntax layer) and official Druid, so business parsing only needs the single ",(0,a.jsx)(n.code,{children:"core"})," coordinate. If you only need SQL\u2192AST syntax parsing, you can depend on ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," alone.\n:::"]}),"\n",(0,a.jsxs)(n.p,{children:[":::note Use from source\nIf ",(0,a.jsx)(n.code,{children:"1.0-SNAPSHOT"})," is not published to a remote repository yet, build and install it locally first:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,a.jsx)(n.p,{children:":::"}),"\n",(0,a.jsx)(n.h2,{id:"3-hello-world-parse-a-sql",children:"3. Hello World: Parse a SQL"}),"\n",(0,a.jsxs)(n.p,{children:["A ",(0,a.jsx)(n.strong,{children:"complete runnable"})," class covering table parsing, column lineage, table lineage and functions, consistent with the official ",(0,a.jsx)(n.code,{children:"sqlparserx-core/README.md"})," demo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser by datasource type (mysql/hive/doris/... 15+ dialects)\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse column lineage (pass metadata for select * cases)\n Map<String, List<Column>> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4. Parse table lineage\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List<TableLineage> tableLineages = tableLineageResult.getTableLineages();\n System.out.println("table lineage: " + tableLineages);\n\n // 5. Parse functions\n Set<String> functions = parser.parseFunction(sql);\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\ntable lineage: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\nfunctions: [sum, count]\n"})}),"\n",(0,a.jsx)(n.h2,{id:"4-next-steps",children:"4. Next Steps"}),"\n",(0,a.jsx)(n.p,{children:"Dependency + complete example for each capability:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/field-lineage",children:"Field lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/table-lineage",children:"Table lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/table-parse",children:"Table parsing"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/function-parse",children:"Function parsing"})}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4413"],{4282(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>l,contentTitle:()=>i,toc:()=>d,assets:()=>o});var s=JSON.parse('{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/en/docs/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/quickstart/setup.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar_label":"Setup & Build","sidebar_position":1},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/SqlParserX/en/docs/about/architecture"},"next":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/core/sql-type"}}'),a=r(4848),t=r(8453);let l={title:"Quick Start",description:"Add the dependency, build and run SqlParserX locally",sidebar_label:"Setup & Build",sidebar_position:1},i="Quick Start",o={},d=[{value:"1. Requirements",id:"1-requirements",level:2},{value:"2. Add the Dependency",id:"2-add-the-dependency",level:2},{value:"3. Hello World: Parse a SQL",id:"3-hello-world-parse-a-sql",level:2},{value:"4. Next Steps",id:"4-next-steps",level:2}];function c(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"quick-start",children:"Quick Start"})}),"\n",(0,a.jsx)(n.h2,{id:"1-requirements",children:"1. Requirements"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Dependency"}),(0,a.jsx)(n.th,{children:"Version"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"JDK"}),(0,a.jsx)(n.td,{children:"Java 8+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Maven"}),(0,a.jsx)(n.td,{children:"3.6+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsxs)(n.td,{children:["Node.js (only ",(0,a.jsx)(n.code,{children:"sqlparserx-ui"}),")"]}),(0,a.jsx)(n.td,{children:">= 20"})]})]})]}),"\n",(0,a.jsx)(n.h2,{id:"2-add-the-dependency",children:"2. Add the Dependency"}),"\n",(0,a.jsxs)(n.p,{children:["Add the ",(0,a.jsx)(n.strong,{children:"business parsing layer"})," ",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," to your ",(0,a.jsx)(n.code,{children:"pom.xml"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,a.jsxs)(n.p,{children:[":::tip Dependency note\n",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," (syntax layer) and official Druid, so business parsing only needs the single ",(0,a.jsx)(n.code,{children:"core"})," coordinate. If you only need SQL\u2192AST syntax parsing, you can depend on ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," alone.\n:::"]}),"\n",(0,a.jsxs)(n.p,{children:[":::note Use from source\nIf ",(0,a.jsx)(n.code,{children:"1.0-SNAPSHOT"})," is not published to a remote repository yet, build and install it locally first:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,a.jsx)(n.p,{children:":::"}),"\n",(0,a.jsx)(n.h2,{id:"3-hello-world-parse-a-sql",children:"3. Hello World: Parse a SQL"}),"\n",(0,a.jsxs)(n.p,{children:["A ",(0,a.jsx)(n.strong,{children:"complete runnable"})," class covering table parsing, column lineage, table lineage and functions, consistent with the official ",(0,a.jsx)(n.code,{children:"sqlparserx-core/README.md"})," demo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser by datasource type (mysql/hive/doris/... 15+ dialects)\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse column lineage (pass metadata for select * cases)\n Map<String, List<Column>> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4. Parse table lineage\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List<TableLineage> tableLineages = tableLineageResult.getTableLineages();\n System.out.println("table lineage: " + tableLineages);\n\n // 5. Parse functions\n Set<String> functions = parser.parseFunction(sql);\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\ntable lineage: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\nfunctions: [sum, count]\n"})}),"\n",(0,a.jsx)(n.h2,{id:"4-next-steps",children:"4. Next Steps"}),"\n",(0,a.jsx)(n.p,{children:"Dependency + complete example for each capability:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/field-lineage",children:"Field lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/table-lineage",children:"Table lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/table-parse",children:"Table parsing"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/function-parse",children:"Function parsing"})}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>l,x:()=>i});var s=r(6540);let a={},t=s.createContext(a);function l(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/7ba64a19.5461fd25.js b/en/assets/js/7ba64a19.5461fd25.js deleted file mode 100644 index 4f1c44a..0000000 --- a/en/assets/js/7ba64a19.5461fd25.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["947"],{6296(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>o,assets:()=>d});var s=JSON.parse('{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/en/docs/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/field-lineage.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar_label":"Field Lineage","sidebar_position":1},"sidebar":"docs","previous":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/quickstart/setup"},"next":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/core/table-lineage"}}'),l=r(4848),t=r(8453);let a={title:"Field Lineage",description:"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL",sidebar_label:"Field Lineage",sidebar_position:1},i="Field Lineage",d={},o=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function c(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"field-lineage",children:"Field Lineage"})}),"\n",(0,l.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,l.jsxs)(n.p,{children:["A ",(0,l.jsx)(n.strong,{children:"complete runnable"})," class from parser creation to printing column lineage, using the official ",(0,l.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Metadata: table -> columns (used for select * / column expansion)\n Map<String, List<Column>> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3. Parse column lineage\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4. Print result: target table + target column -> source column\n System.out.println("target table: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,l.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"target table: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,l.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,l.jsxs)(n.p,{children:["Derive ",(0,l.jsx)(n.strong,{children:"source table.column \u2192 target table.column"})," column-level lineage from SQL."]}),"\n",(0,l.jsxs)(n.p,{children:["The core idea: normalize the source select field list and target field list into sets of ",(0,l.jsx)(n.code,{children:"(real column, alias, real table)"})," triples, then generate lineage by fixed matching rules. Field lineage takes insert/create-table SQL as input; pure query SQL produces no lineage."]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 target column list + source select column list\n \u2192 addColumnRelations match one by one\n \u2192 ColumnLineageResult\n"})}),"\n",(0,l.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Item"}),(0,l.jsx)(n.th,{children:"Content"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Core entry"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Default impl"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,l.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Return type"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"ColumnLineageResult"})," (",(0,l.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,l.jsx)(n.code,{children:"getColumnLineages()"}),")"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Applicable"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"SQLInsertStatement"}),", ",(0,l.jsx)(n.code,{children:"SQLCreateTableStatement"})," (AS SELECT)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Metadata input"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"Map<String, List<Column>> tableColumnsMap"})})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Capability"}),(0,l.jsx)(n.th,{children:"Status"}),(0,l.jsx)(n.th,{children:"Notes"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"catalog.db.table.column"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Supported \u2705"})}),(0,l.jsx)(n.td,{children:"Multi-catalog scenarios such as Hive/Trino/StarRocks"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"db.table.column"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Supported \u2705"})}),(0,l.jsx)(n.td,{children:"Standard MySQL/PostgreSQL usage"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:["Column expressions (",(0,l.jsx)(n.code,{children:"SQLBinaryOpExpr"}),")"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Supported \u2705"})}),(0,l.jsxs)(n.td,{children:["e.g. ",(0,l.jsx)(n.code,{children:"t5.level + 1"}),", recursively collect columns"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"*"})," / ",(0,l.jsx)(n.code,{children:"xx.*"})," expansion"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Supported \u2705"})}),(0,l.jsxs)(n.td,{children:["Read from metadata ",(0,l.jsx)(n.code,{children:"tableColumnsMap"}),"; keep ",(0,l.jsx)(n.code,{children:"*"})," without metadata"]})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/7ba64a19.c7666b43.js b/en/assets/js/7ba64a19.c7666b43.js new file mode 100644 index 0000000..937496a --- /dev/null +++ b/en/assets/js/7ba64a19.c7666b43.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["947"],{6296(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>o,assets:()=>d});var t=JSON.parse('{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/en/docs/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/field-lineage.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar_label":"Field Lineage","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/core/sql-type"},"next":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/core/table-lineage"}}'),s=r(4848),l=r(8453);let a={title:"Field Lineage",description:"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL",sidebar_label:"Field Lineage",sidebar_position:1},i="Field Lineage",d={},o=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function c(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"field-lineage",children:"Field Lineage"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"complete runnable"})," class from parser creation to printing column lineage, using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Metadata: table -> columns (used for select * / column expansion)\n Map<String, List<Column>> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3. Parse column lineage\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4. Print result: target table + target column -> source column\n System.out.println("target table: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"target table: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Derive ",(0,s.jsx)(n.strong,{children:"source table.column \u2192 target table.column"})," column-level lineage from SQL."]}),"\n",(0,s.jsxs)(n.p,{children:["The core idea: normalize the source select field list and target field list into sets of ",(0,s.jsx)(n.code,{children:"(real column, alias, real table)"})," triples, then generate lineage by fixed matching rules. Field lineage takes insert/create-table SQL as input; pure query SQL produces no lineage."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 target column list + source select column list\n \u2192 addColumnRelations match one by one\n \u2192 ColumnLineageResult\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,s.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"ColumnLineageResult"})," (",(0,s.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,s.jsx)(n.code,{children:"getColumnLineages()"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Applicable"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"SQLInsertStatement"}),", ",(0,s.jsx)(n.code,{children:"SQLCreateTableStatement"})," (AS SELECT)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Metadata input"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Map<String, List<Column>> tableColumnsMap"})})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"catalog.db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Multi-catalog scenarios such as Hive/Trino/StarRocks"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Standard MySQL/PostgreSQL usage"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:["Column expressions (",(0,s.jsx)(n.code,{children:"SQLBinaryOpExpr"}),")"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"t5.level + 1"}),", recursively collect columns"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"*"})," / ",(0,s.jsx)(n.code,{children:"xx.*"})," expansion"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["Read from metadata ",(0,s.jsx)(n.code,{children:"tableColumnsMap"}),"; keep ",(0,s.jsx)(n.code,{children:"*"})," without metadata"]})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>a,x:()=>i});var t=r(6540);let s={},l=t.createContext(s);function a(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1447.ce362a6b.js b/en/assets/js/8738.3885adf6.js similarity index 89% rename from en/assets/js/1447.ce362a6b.js rename to en/assets/js/8738.3885adf6.js index 7a14ac9..581296d 100644 --- a/en/assets/js/1447.ce362a6b.js +++ b/en/assets/js/8738.3885adf6.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1447"],{1578(e,t,r){r.d(t,{$:()=>O,U:()=>j,db:()=>F});var i=r(4924),a=r(1177),n=r(1293),o=r(6827),l="",s="",d="",m=[],c=new Map,h=(0,o.K)(e=>(0,a.jZ)(e,(0,a.D7)()),"sanitizeText"),p=(0,o.K)(e=>{switch(e.type){case"terminal":return{...e,value:h(e.value)};case"nonterminal":return{...e,name:h(e.name)};case"sequence":return{...e,elements:e.elements.map(p)};case"choice":return{...e,alternatives:e.alternatives.map(p)};case"optional":return{...e,element:p(e.element)};case"repetition":return{...e,element:p(e.element),separator:e.separator?p(e.separator):void 0};case"special":return{...e,text:h(e.text)}}},"sanitizeAstNode"),u=(0,o.K)(()=>{l="",s="",d="",m.length=0,c.clear(),(0,a.IU)(),n.R.debug("[Railroad] Database cleared")},"clear"),g=(0,o.K)(e=>{l=h(e),n.R.debug("[Railroad] Title set:",e)},"setTitle"),T=(0,o.K)(()=>l,"getTitle"),f=(0,o.K)(e=>{let t={...e,name:h(e.name),definition:p(e.definition),comment:e.comment?h(e.comment):void 0};n.R.debug("[Railroad] Adding rule:",t.name),c.has(t.name)&&n.R.warn(`[Railroad] Rule '${t.name}' is already defined. Overwriting.`),m.push(t),c.set(t.name,t)},"addRule"),x=(0,o.K)(()=>m,"getRules"),w=(0,o.K)(e=>c.get(e),"getRule"),k=(0,o.K)(e=>{s=h(e).replace(/^\s+/g,""),n.R.debug("[Railroad] Accessibility title set:",e)},"setAccTitle"),C=(0,o.K)(()=>s,"getAccTitle"),$=(0,o.K)(e=>{d=h(e).replace(/\n\s+/g,"\n"),n.R.debug("[Railroad] Accessibility description set:",e)},"setAccDescription"),F={clear:u,setTitle:g,getTitle:T,addRule:f,getRules:x,getRule:w,setAccTitle:k,getAccTitle:C,setAccDescription:$,getAccDescription:(0,o.K)(()=>d,"getAccDescription"),setDiagramTitle:g,getDiagramTitle:T},S={compactMode:!1,padding:10,verticalSeparation:8,horizontalSeparation:10,arcRadius:10,fontSize:14,fontFamily:"monospace",terminalFill:"#FFFFC0",terminalStroke:"#000000",terminalTextColor:"#000000",nonTerminalFill:"#FFFFFF",nonTerminalStroke:"#000000",nonTerminalTextColor:"#000000",lineColor:"#000000",strokeWidth:2,markerFill:"#000000",commentFill:"#E8E8E8",commentStroke:"#888888",commentTextColor:"#666666",specialFill:"#F0E0FF",specialStroke:"#8800CC",ruleNameColor:"#000066",showMarkers:!0,markerRadius:5},y=/^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([\d\s%+,./-]+\)$|^[a-z]+$/i,R=/^[\w "',.-]+$/,b=new Set(["compactMode","padding","verticalSeparation","horizontalSeparation","arcRadius","fontSize","fontFamily","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","showMarkers","markerRadius"]),v=(0,o.K)(e=>!!e&&Object.keys(e).every(e=>"railroad"===e||b.has(e)),"isRailroadStyleOptions"),z=(0,o.K)(e=>e?"railroad"in e&&e.railroad?e.railroad:v(e)?e:{}:{},"extractRailroadOverrides"),K=(0,o.K)(e=>{if(!e||v(e))return{};let{railroad:t,svgId:r,theme:i,look:a,...n}=e;return n},"extractThemeOverrides"),M=(0,o.K)((e,t)=>{if("string"!=typeof e)return t;let r=e.trim();return y.test(r)?r:t},"sanitizeColorValue"),N=(0,o.K)((e,t)=>{if("string"!=typeof e)return t;let r=e.trim();return R.test(r)?r:t},"sanitizeFontFamilyValue"),A=(0,o.K)((e,t)=>{let r="number"==typeof e?e:"string"==typeof e?Number.parseFloat(e):NaN;return Number.isFinite(r)&&r>=0?r:t},"sanitizeNumberValue"),B=(0,o.K)(e=>{let t="number"==typeof e?e:"string"==typeof e?Number.parseFloat(e):NaN;return Number.isFinite(t)&&t>0?t:void 0},"parseThemeFontSize"),D=(0,o.K)(e=>{let t=N(e.fontFamily,S.fontFamily),r=B(e.fontSize)??S.fontSize;return{...S,fontFamily:t,fontSize:r,terminalFill:M(e.secondBkg??e.secondaryColor,S.terminalFill),terminalStroke:M(e.secondaryBorderColor??e.lineColor,S.terminalStroke),terminalTextColor:M(e.secondaryTextColor??e.textColor,S.terminalTextColor),nonTerminalFill:M(e.mainBkg??e.background,S.nonTerminalFill),nonTerminalStroke:M(e.primaryBorderColor??e.lineColor,S.nonTerminalStroke),nonTerminalTextColor:M(e.primaryTextColor??e.textColor,S.nonTerminalTextColor),lineColor:M(e.lineColor,S.lineColor),markerFill:M(e.lineColor,S.markerFill),commentFill:M(e.labelBackground??e.tertiaryColor,S.commentFill),commentStroke:M(e.tertiaryBorderColor??e.lineColor,S.commentStroke),commentTextColor:M(e.tertiaryTextColor??e.textColor,S.commentTextColor),specialFill:M(e.tertiaryColor??e.secondaryColor,S.specialFill),specialStroke:M(e.tertiaryBorderColor??e.secondaryBorderColor,S.specialStroke),ruleNameColor:M(e.titleColor??e.textColor,S.ruleNameColor)}},"buildThemeDefaults"),E=(0,o.K)(e=>{let t=(0,a.zj)(),r=D({...(0,a.P$)(),...t.themeVariables??{},...K(e)}),i={...t.railroad??{},...z(e)};return{compactMode:i.compactMode??r.compactMode,padding:A(i.padding,r.padding),verticalSeparation:A(i.verticalSeparation,r.verticalSeparation),horizontalSeparation:A(i.horizontalSeparation,r.horizontalSeparation),arcRadius:A(i.arcRadius,r.arcRadius),fontSize:A(i.fontSize,r.fontSize),fontFamily:N(i.fontFamily,r.fontFamily),terminalFill:M(i.terminalFill,r.terminalFill),terminalStroke:M(i.terminalStroke,r.terminalStroke),terminalTextColor:M(i.terminalTextColor,r.terminalTextColor),nonTerminalFill:M(i.nonTerminalFill,r.nonTerminalFill),nonTerminalStroke:M(i.nonTerminalStroke,r.nonTerminalStroke),nonTerminalTextColor:M(i.nonTerminalTextColor,r.nonTerminalTextColor),lineColor:M(i.lineColor,r.lineColor),strokeWidth:A(i.strokeWidth,r.strokeWidth),markerFill:M(i.markerFill,r.markerFill),commentFill:M(i.commentFill,r.commentFill),commentStroke:M(i.commentStroke,r.commentStroke),commentTextColor:M(i.commentTextColor,r.commentTextColor),specialFill:M(i.specialFill,r.specialFill),specialStroke:M(i.specialStroke,r.specialStroke),ruleNameColor:M(i.ruleNameColor,r.ruleNameColor),showMarkers:i.showMarkers??r.showMarkers,markerRadius:A(i.markerRadius,r.markerRadius)}},"buildRailroadStyleOptions"),O=(0,o.K)(e=>{let{fontFamily:t,fontSize:r,terminalFill:i,terminalStroke:a,terminalTextColor:n,nonTerminalFill:o,nonTerminalStroke:l,nonTerminalTextColor:s,lineColor:d,strokeWidth:m,markerFill:c,commentFill:h,commentStroke:p,commentTextColor:u,specialFill:g,specialStroke:T,ruleNameColor:f}=E(e);return` +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8738"],{1578(e,t,r){r.d(t,{$:()=>O,U:()=>j,db:()=>S});var i=r(4924),a=r(1177),n=r(1293),o=r(6827),l="",s="",d="",m=[],c=new Map,h=(0,o.K)(e=>(0,a.jZ)(e,(0,a.D7)()),"sanitizeText"),p=(0,o.K)(e=>{switch(e.type){case"terminal":return{...e,value:h(e.value)};case"nonterminal":return{...e,name:h(e.name)};case"sequence":return{...e,elements:e.elements.map(p)};case"choice":return{...e,alternatives:e.alternatives.map(p)};case"optional":return{...e,element:p(e.element)};case"repetition":return{...e,element:p(e.element),separator:e.separator?p(e.separator):void 0};case"special":return{...e,text:h(e.text)}}},"sanitizeAstNode"),u=(0,o.K)(()=>{l="",s="",d="",m.length=0,c.clear(),(0,a.IU)(),n.R.debug("[Railroad] Database cleared")},"clear"),g=(0,o.K)(e=>{l=h(e),n.R.debug("[Railroad] Title set:",e)},"setTitle"),T=(0,o.K)(()=>l,"getTitle"),f=(0,o.K)(e=>{let t={...e,name:h(e.name),definition:p(e.definition),comment:e.comment?h(e.comment):void 0};n.R.debug("[Railroad] Adding rule:",t.name),c.has(t.name)&&n.R.warn(`[Railroad] Rule '${t.name}' is already defined. Overwriting.`),m.push(t),c.set(t.name,t)},"addRule"),x=(0,o.K)(()=>m,"getRules"),w=(0,o.K)(e=>c.get(e),"getRule"),k=(0,o.K)(e=>{s=h(e).replace(/^\s+/g,""),n.R.debug("[Railroad] Accessibility title set:",e)},"setAccTitle"),C=(0,o.K)(()=>s,"getAccTitle"),$=(0,o.K)(e=>{d=h(e).replace(/\n\s+/g,"\n"),n.R.debug("[Railroad] Accessibility description set:",e)},"setAccDescription"),S={clear:u,setTitle:g,getTitle:T,addRule:f,getRules:x,getRule:w,setAccTitle:k,getAccTitle:C,setAccDescription:$,getAccDescription:(0,o.K)(()=>d,"getAccDescription"),setDiagramTitle:g,getDiagramTitle:T},F={compactMode:!1,padding:10,verticalSeparation:8,horizontalSeparation:10,arcRadius:10,fontSize:14,fontFamily:"monospace",terminalFill:"#FFFFC0",terminalStroke:"#000000",terminalTextColor:"#000000",nonTerminalFill:"#FFFFFF",nonTerminalStroke:"#000000",nonTerminalTextColor:"#000000",lineColor:"#000000",strokeWidth:2,markerFill:"#000000",commentFill:"#E8E8E8",commentStroke:"#888888",commentTextColor:"#666666",specialFill:"#F0E0FF",specialStroke:"#8800CC",ruleNameColor:"#000066",showMarkers:!0,markerRadius:5},y=/^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([\d\s%+,./-]+\)$|^[a-z]+$/i,R=/^[\w "',.-]+$/,b=new Set(["compactMode","padding","verticalSeparation","horizontalSeparation","arcRadius","fontSize","fontFamily","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","showMarkers","markerRadius"]),v=(0,o.K)(e=>!!e&&Object.keys(e).every(e=>"railroad"===e||b.has(e)),"isRailroadStyleOptions"),z=(0,o.K)(e=>e?"railroad"in e&&e.railroad?e.railroad:v(e)?e:{}:{},"extractRailroadOverrides"),K=(0,o.K)(e=>{if(!e||v(e))return{};let{railroad:t,svgId:r,theme:i,look:a,...n}=e;return n},"extractThemeOverrides"),M=(0,o.K)((e,t)=>{if("string"!=typeof e)return t;let r=e.trim();return y.test(r)?r:t},"sanitizeColorValue"),N=(0,o.K)((e,t)=>{if("string"!=typeof e)return t;let r=e.trim();return R.test(r)?r:t},"sanitizeFontFamilyValue"),A=(0,o.K)((e,t)=>{let r="number"==typeof e?e:"string"==typeof e?Number.parseFloat(e):NaN;return Number.isFinite(r)&&r>=0?r:t},"sanitizeNumberValue"),D=(0,o.K)(e=>{let t="number"==typeof e?e:"string"==typeof e?Number.parseFloat(e):NaN;return Number.isFinite(t)&&t>0?t:void 0},"parseThemeFontSize"),B=(0,o.K)(e=>{let t=N(e.fontFamily,F.fontFamily),r=D(e.fontSize)??F.fontSize;return{...F,fontFamily:t,fontSize:r,terminalFill:M(e.secondBkg??e.secondaryColor,F.terminalFill),terminalStroke:M(e.secondaryBorderColor??e.lineColor,F.terminalStroke),terminalTextColor:M(e.secondaryTextColor??e.textColor,F.terminalTextColor),nonTerminalFill:M(e.mainBkg??e.background,F.nonTerminalFill),nonTerminalStroke:M(e.primaryBorderColor??e.lineColor,F.nonTerminalStroke),nonTerminalTextColor:M(e.primaryTextColor??e.textColor,F.nonTerminalTextColor),lineColor:M(e.lineColor,F.lineColor),markerFill:M(e.lineColor,F.markerFill),commentFill:M(e.labelBackground??e.tertiaryColor,F.commentFill),commentStroke:M(e.tertiaryBorderColor??e.lineColor,F.commentStroke),commentTextColor:M(e.tertiaryTextColor??e.textColor,F.commentTextColor),specialFill:M(e.tertiaryColor??e.secondaryColor,F.specialFill),specialStroke:M(e.tertiaryBorderColor??e.secondaryBorderColor,F.specialStroke),ruleNameColor:M(e.titleColor??e.textColor,F.ruleNameColor)}},"buildThemeDefaults"),E=(0,o.K)(e=>{let t=(0,a.zj)(),r=B({...(0,a.P$)(),...t.themeVariables??{},...K(e)}),i={...t.railroad??{},...z(e)};return{compactMode:i.compactMode??r.compactMode,padding:A(i.padding,r.padding),verticalSeparation:A(i.verticalSeparation,r.verticalSeparation),horizontalSeparation:A(i.horizontalSeparation,r.horizontalSeparation),arcRadius:A(i.arcRadius,r.arcRadius),fontSize:A(i.fontSize,r.fontSize),fontFamily:N(i.fontFamily,r.fontFamily),terminalFill:M(i.terminalFill,r.terminalFill),terminalStroke:M(i.terminalStroke,r.terminalStroke),terminalTextColor:M(i.terminalTextColor,r.terminalTextColor),nonTerminalFill:M(i.nonTerminalFill,r.nonTerminalFill),nonTerminalStroke:M(i.nonTerminalStroke,r.nonTerminalStroke),nonTerminalTextColor:M(i.nonTerminalTextColor,r.nonTerminalTextColor),lineColor:M(i.lineColor,r.lineColor),strokeWidth:A(i.strokeWidth,r.strokeWidth),markerFill:M(i.markerFill,r.markerFill),commentFill:M(i.commentFill,r.commentFill),commentStroke:M(i.commentStroke,r.commentStroke),commentTextColor:M(i.commentTextColor,r.commentTextColor),specialFill:M(i.specialFill,r.specialFill),specialStroke:M(i.specialStroke,r.specialStroke),ruleNameColor:M(i.ruleNameColor,r.ruleNameColor),showMarkers:i.showMarkers??r.showMarkers,markerRadius:A(i.markerRadius,r.markerRadius)}},"buildRailroadStyleOptions"),O=(0,o.K)(e=>{let{fontFamily:t,fontSize:r,terminalFill:i,terminalStroke:a,terminalTextColor:n,nonTerminalFill:o,nonTerminalStroke:l,nonTerminalTextColor:s,lineColor:d,strokeWidth:m,markerFill:c,commentFill:h,commentStroke:p,commentTextColor:u,specialFill:g,specialStroke:T,ruleNameColor:f}=E(e);return` .railroad-diagram { font-family: ${t}; font-size: ${r}px; @@ -83,4 +83,4 @@ .railroad-group { /* Grouping container, no specific styles */ } -`},"getStyles"),q=class{constructor(){this.d=""}static{(0,o.K)(this,"PathBuilder")}moveTo(e,t){return this.d+=`M ${e} ${t} `,this}lineTo(e,t){return this.d+=`L ${e} ${t} `,this}horizontalTo(e){return this.d+=`H ${e} `,this}verticalTo(e){return this.d+=`V ${e} `,this}arcTo(e,t,r,i,a,n,o){return this.d+=`A ${e} ${t} ${r} ${+!!i} ${+!!a} ${n} ${o} `,this}build(){return this.d.trim()}},W=class{constructor(e,t=E()){this.textCache=new Map,this.svg=e,this.config=t}static{(0,o.K)(this,"RailroadRenderer")}measureText(e){if(this.textCache.has(e))return this.textCache.get(e);let t=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(e),r=t.node().getBBox(),i={width:r.width,height:r.height};return t.remove(),this.textCache.set(e,i),i}renderTerminal(e,t){let r=this.measureText(t),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-terminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a).attr("rx",10).attr("ry",10),n.append("text").attr("x",i/2).attr("y",a/2).text(t),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderNonTerminal(e,t){let r=this.measureText(t),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-nonterminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a),n.append("text").attr("x",i/2).attr("y",a/2).text(t),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderSequence(e,t){let r=t.map(t=>this.renderExpression(e,t)),i=0,a=0,n=0;for(let e of r)i+=e.dimensions.width,a=Math.max(a,e.dimensions.up),n=Math.max(n,e.dimensions.down);i+=(r.length-1)*this.config.horizontalSeparation;let o=e.append("g").attr("class","railroad-sequence"),l=0;for(let e=0;e<r.length;e++){let t=r[e],i=a-t.dimensions.up;if(o.node().appendChild(t.element).setAttribute("transform",`translate(${l}, ${i})`),e<r.length-1){let e=l+t.dimensions.width,r=e+this.config.horizontalSeparation,i=a;o.append("path").attr("class","railroad-line").attr("d",new q().moveTo(e,i).lineTo(r,i).build())}l+=t.dimensions.width+this.config.horizontalSeparation}return{element:o.node(),dimensions:{width:i,height:a+n,up:a,down:n}}}renderChoice(e,t){let r=t.map(t=>this.renderExpression(e,t)),i=0,a=0;for(let e of r)i=Math.max(i,e.dimensions.width),a+=e.dimensions.height;a+=(r.length-1)*this.config.verticalSeparation;let n=this.config.arcRadius,o=i+4*n,l=e.append("g").attr("class","railroad-choice"),s=0,d=a/2;for(let e of r){let t=s,r=t+e.dimensions.up,a=2*n+(i-e.dimensions.width)/2;l.node().appendChild(e.element).setAttribute("transform",`translate(${a}, ${t})`);let m=new q,c=r>d;r===d?m.moveTo(0,d).lineTo(a,r):m.moveTo(0,d).arcTo(n,n,0,!1,c,n,d+(c?n:-n)).lineTo(n,r-(c?n:-n)).arcTo(n,n,0,!1,!c,2*n,r).lineTo(a,r),l.append("path").attr("class","railroad-line").attr("d",m.build());let h=new q,p=a+e.dimensions.width,u=o-2*n;r===d?h.moveTo(p,r).lineTo(o,d):h.moveTo(p,r).lineTo(u,r).arcTo(n,n,0,!1,!c,o-n,r+(c?-n:n)).lineTo(o-n,d+(c?n:-n)).arcTo(n,n,0,!1,c,o,d),l.append("path").attr("class","railroad-line").attr("d",h.build()),s+=e.dimensions.height+this.config.verticalSeparation}return{element:l.node(),dimensions:{width:o,height:a,up:d,down:a-d}}}renderOptional(e,t){let r=this.renderExpression(e,t),i=this.config.arcRadius,a=2*i,n=r.dimensions.width+4*i,o=r.dimensions.height+a,l=e.append("g").attr("class","railroad-optional"),s=2*i;l.node().appendChild(r.element).setAttribute("transform",`translate(${s}, ${a})`);let d=a+r.dimensions.up,m=new q().moveTo(0,d).lineTo(2*i,d);l.append("path").attr("class","railroad-line").attr("d",m.build());let c=new q().moveTo(s+r.dimensions.width,d).lineTo(n,d);l.append("path").attr("class","railroad-line").attr("d",c.build());let h=new q().moveTo(0,d).arcTo(i,i,0,!1,!1,i,d-i).lineTo(i,i).arcTo(i,i,0,!1,!0,2*i,0).lineTo(n-2*i,0).arcTo(i,i,0,!1,!0,n-i,i).lineTo(n-i,d-i).arcTo(i,i,0,!1,!1,n,d);return l.append("path").attr("class","railroad-line").attr("d",h.build()),{element:l.node(),dimensions:{width:n,height:o,up:d,down:o-d}}}renderRepetition(e,t,r){let i=this.renderExpression(e,t),a=this.config.arcRadius,n=2*a,o=i.dimensions.width+4*a,l=0===r,s=i.dimensions.height+n+(l?n:0),d=e.append("g").attr("class","railroad-repetition"),m=2*a,c=l?n:0;d.node().appendChild(i.element).setAttribute("transform",`translate(${m}, ${c})`);let h=c+i.dimensions.up;d.append("path").attr("class","railroad-line").attr("d",new q().moveTo(0,h).lineTo(2*a,h).build()),d.append("path").attr("class","railroad-line").attr("d",new q().moveTo(m+i.dimensions.width,h).lineTo(o,h).build());let p=c+i.dimensions.height+a,u=new q().moveTo(m+i.dimensions.width,h).arcTo(a,a,0,!1,!0,m+i.dimensions.width+a,h+a).lineTo(m+i.dimensions.width+a,p).arcTo(a,a,0,!1,!0,m+i.dimensions.width,p+a).lineTo(2*a,p+a).arcTo(a,a,0,!1,!0,a,p).lineTo(a,h+a).arcTo(a,a,0,!1,!0,2*a,h);if(d.append("path").attr("class","railroad-line").attr("d",u.build()),l){let e=new q().moveTo(0,h).arcTo(a,a,0,!1,!1,a,h-a).lineTo(a,a).arcTo(a,a,0,!1,!0,2*a,0).lineTo(o-2*a,0).arcTo(a,a,0,!1,!0,o-a,a).lineTo(o-a,h-a).arcTo(a,a,0,!1,!1,o,h);d.append("path").attr("class","railroad-line").attr("d",e.build())}return{element:d.node(),dimensions:{width:o,height:s,up:h,down:s-h}}}renderSpecial(e,t){let r=this.measureText("? "+t+" ?"),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-special");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a),n.append("text").attr("x",i/2).attr("y",a/2).text("? "+t+" ?"),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderExpression(e,t){switch(t.type){case"terminal":return this.renderTerminal(e,t.value);case"nonterminal":return this.renderNonTerminal(e,t.name);case"sequence":return this.renderSequence(e,t.elements);case"choice":return this.renderChoice(e,t.alternatives);case"optional":return this.renderOptional(e,t.element);case"repetition":return this.renderRepetition(e,t.element,t.min);case"special":return this.renderSpecial(e,t.text);default:throw Error(`Unknown node type: ${t.type}`)}}renderRule(e,t){let r=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${t})`),i=e.name+" =",a=this.measureText(i).width+20,n=a+20,o=r.append("g"),l=this.renderExpression(o,e.definition),s=Math.max(20,l.dimensions.up),d=s-l.dimensions.up;return o.attr("transform",`translate(${n}, ${d})`),r.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",s).text(i),r.append("g").attr("class","railroad-start").append("circle").attr("cx",a).attr("cy",s).attr("r",this.config.markerRadius),r.append("g").attr("class","railroad-end").append("circle").attr("cx",n+l.dimensions.width+10).attr("cy",s).attr("r",this.config.markerRadius),r.append("path").attr("class","railroad-line").attr("d",new q().moveTo(a+this.config.markerRadius,s).lineTo(n,s).build()),r.append("path").attr("class","railroad-line").attr("d",new q().moveTo(n+l.dimensions.width,s).lineTo(n+l.dimensions.width+10-this.config.markerRadius,s).build()),{height:Math.max(40,d+l.dimensions.height+2*this.config.padding),width:n+l.dimensions.width+10+this.config.markerRadius}}renderDiagram(e){let t=this.config.padding,r=0;for(let i of e){let e=this.renderRule(i,t);t+=e.height+this.config.verticalSeparation,r=Math.max(r,e.width)}return{width:r+2*this.config.padding,height:t+this.config.padding}}},V=(0,o.K)((e,t,r)=>{(0,a.a$)(e,t.height,t.width,r),e.attr("viewBox",`0 0 ${t.width} ${t.height}`)},"configureRailroadSvgSize"),j={draw:(0,o.K)((e,t,r)=>{n.R.debug("[Railroad] Rendering diagram\n"+e);try{let e=(0,i.D)(t);e.attr("class","railroad-diagram");let r=(0,a.zj)().railroad,o=r?.useMaxWidth??!0,l=F.getRules();if(n.R.debug(`[Railroad] Rendering ${l.length} rules`),0===l.length){n.R.warn("[Railroad] No rules to render"),V(e,{height:100,width:200},o);return}let s=new W(e,E()).renderDiagram(l);V(e,s,o),n.R.debug("[Railroad] Render complete")}catch(e){throw n.R.error("[Railroad] Render error:",e),e}},"draw")}}}]); \ No newline at end of file +`},"getStyles"),q=class{constructor(){this.d=""}static{(0,o.K)(this,"PathBuilder")}moveTo(e,t){return this.d+=`M ${e} ${t} `,this}lineTo(e,t){return this.d+=`L ${e} ${t} `,this}horizontalTo(e){return this.d+=`H ${e} `,this}verticalTo(e){return this.d+=`V ${e} `,this}arcTo(e,t,r,i,a,n,o){return this.d+=`A ${e} ${t} ${r} ${+!!i} ${+!!a} ${n} ${o} `,this}build(){return this.d.trim()}},W=class{constructor(e,t=E()){this.textCache=new Map,this.svg=e,this.config=t}static{(0,o.K)(this,"RailroadRenderer")}measureText(e){if(this.textCache.has(e))return this.textCache.get(e);let t=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(e),r=t.node().getBBox(),i={width:r.width,height:r.height};return t.remove(),this.textCache.set(e,i),i}renderTerminal(e,t){let r=this.measureText(t),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-terminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a).attr("rx",10).attr("ry",10),n.append("text").attr("x",i/2).attr("y",a/2).text(t),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderNonTerminal(e,t){let r=this.measureText(t),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-nonterminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a),n.append("text").attr("x",i/2).attr("y",a/2).text(t),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderSequence(e,t){let r=t.map(t=>this.renderExpression(e,t)),i=0,a=0,n=0;for(let e of r)i+=e.dimensions.width,a=Math.max(a,e.dimensions.up),n=Math.max(n,e.dimensions.down);i+=(r.length-1)*this.config.horizontalSeparation;let o=e.append("g").attr("class","railroad-sequence"),l=0;for(let e=0;e<r.length;e++){let t=r[e],i=a-t.dimensions.up;if(o.node().appendChild(t.element).setAttribute("transform",`translate(${l}, ${i})`),e<r.length-1){let e=l+t.dimensions.width,r=e+this.config.horizontalSeparation,i=a;o.append("path").attr("class","railroad-line").attr("d",new q().moveTo(e,i).lineTo(r,i).build())}l+=t.dimensions.width+this.config.horizontalSeparation}return{element:o.node(),dimensions:{width:i,height:a+n,up:a,down:n}}}renderChoice(e,t){let r=t.map(t=>this.renderExpression(e,t)),i=0,a=0;for(let e of r)i=Math.max(i,e.dimensions.width),a+=e.dimensions.height;a+=(r.length-1)*this.config.verticalSeparation;let n=this.config.arcRadius,o=i+4*n,l=e.append("g").attr("class","railroad-choice"),s=0,d=a/2;for(let e of r){let t=s,r=t+e.dimensions.up,a=2*n+(i-e.dimensions.width)/2;l.node().appendChild(e.element).setAttribute("transform",`translate(${a}, ${t})`);let m=new q,c=r>d;r===d?m.moveTo(0,d).lineTo(a,r):m.moveTo(0,d).arcTo(n,n,0,!1,c,n,d+(c?n:-n)).lineTo(n,r-(c?n:-n)).arcTo(n,n,0,!1,!c,2*n,r).lineTo(a,r),l.append("path").attr("class","railroad-line").attr("d",m.build());let h=new q,p=a+e.dimensions.width,u=o-2*n;r===d?h.moveTo(p,r).lineTo(o,d):h.moveTo(p,r).lineTo(u,r).arcTo(n,n,0,!1,!c,o-n,r+(c?-n:n)).lineTo(o-n,d+(c?n:-n)).arcTo(n,n,0,!1,c,o,d),l.append("path").attr("class","railroad-line").attr("d",h.build()),s+=e.dimensions.height+this.config.verticalSeparation}return{element:l.node(),dimensions:{width:o,height:a,up:d,down:a-d}}}renderOptional(e,t){let r=this.renderExpression(e,t),i=this.config.arcRadius,a=2*i,n=r.dimensions.width+4*i,o=r.dimensions.height+a,l=e.append("g").attr("class","railroad-optional"),s=2*i;l.node().appendChild(r.element).setAttribute("transform",`translate(${s}, ${a})`);let d=a+r.dimensions.up,m=new q().moveTo(0,d).lineTo(2*i,d);l.append("path").attr("class","railroad-line").attr("d",m.build());let c=new q().moveTo(s+r.dimensions.width,d).lineTo(n,d);l.append("path").attr("class","railroad-line").attr("d",c.build());let h=new q().moveTo(0,d).arcTo(i,i,0,!1,!1,i,d-i).lineTo(i,i).arcTo(i,i,0,!1,!0,2*i,0).lineTo(n-2*i,0).arcTo(i,i,0,!1,!0,n-i,i).lineTo(n-i,d-i).arcTo(i,i,0,!1,!1,n,d);return l.append("path").attr("class","railroad-line").attr("d",h.build()),{element:l.node(),dimensions:{width:n,height:o,up:d,down:o-d}}}renderRepetition(e,t,r){let i=this.renderExpression(e,t),a=this.config.arcRadius,n=2*a,o=i.dimensions.width+4*a,l=0===r,s=i.dimensions.height+n+(l?n:0),d=e.append("g").attr("class","railroad-repetition"),m=2*a,c=l?n:0;d.node().appendChild(i.element).setAttribute("transform",`translate(${m}, ${c})`);let h=c+i.dimensions.up;d.append("path").attr("class","railroad-line").attr("d",new q().moveTo(0,h).lineTo(2*a,h).build()),d.append("path").attr("class","railroad-line").attr("d",new q().moveTo(m+i.dimensions.width,h).lineTo(o,h).build());let p=c+i.dimensions.height+a,u=new q().moveTo(m+i.dimensions.width,h).arcTo(a,a,0,!1,!0,m+i.dimensions.width+a,h+a).lineTo(m+i.dimensions.width+a,p).arcTo(a,a,0,!1,!0,m+i.dimensions.width,p+a).lineTo(2*a,p+a).arcTo(a,a,0,!1,!0,a,p).lineTo(a,h+a).arcTo(a,a,0,!1,!0,2*a,h);if(d.append("path").attr("class","railroad-line").attr("d",u.build()),l){let e=new q().moveTo(0,h).arcTo(a,a,0,!1,!1,a,h-a).lineTo(a,a).arcTo(a,a,0,!1,!0,2*a,0).lineTo(o-2*a,0).arcTo(a,a,0,!1,!0,o-a,a).lineTo(o-a,h-a).arcTo(a,a,0,!1,!1,o,h);d.append("path").attr("class","railroad-line").attr("d",e.build())}return{element:d.node(),dimensions:{width:o,height:s,up:h,down:s-h}}}renderSpecial(e,t){let r=this.measureText("? "+t+" ?"),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-special");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a),n.append("text").attr("x",i/2).attr("y",a/2).text("? "+t+" ?"),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderExpression(e,t){switch(t.type){case"terminal":return this.renderTerminal(e,t.value);case"nonterminal":return this.renderNonTerminal(e,t.name);case"sequence":return this.renderSequence(e,t.elements);case"choice":return this.renderChoice(e,t.alternatives);case"optional":return this.renderOptional(e,t.element);case"repetition":return this.renderRepetition(e,t.element,t.min);case"special":return this.renderSpecial(e,t.text);default:throw Error(`Unknown node type: ${t.type}`)}}renderRule(e,t){let r=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${t})`),i=e.name+" =",a=this.measureText(i).width+20,n=a+20,o=r.append("g"),l=this.renderExpression(o,e.definition),s=Math.max(20,l.dimensions.up),d=s-l.dimensions.up;return o.attr("transform",`translate(${n}, ${d})`),r.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",s).text(i),r.append("g").attr("class","railroad-start").append("circle").attr("cx",a).attr("cy",s).attr("r",this.config.markerRadius),r.append("g").attr("class","railroad-end").append("circle").attr("cx",n+l.dimensions.width+10).attr("cy",s).attr("r",this.config.markerRadius),r.append("path").attr("class","railroad-line").attr("d",new q().moveTo(a+this.config.markerRadius,s).lineTo(n,s).build()),r.append("path").attr("class","railroad-line").attr("d",new q().moveTo(n+l.dimensions.width,s).lineTo(n+l.dimensions.width+10-this.config.markerRadius,s).build()),{height:Math.max(40,d+l.dimensions.height+2*this.config.padding),width:n+l.dimensions.width+10+this.config.markerRadius}}renderDiagram(e){let t=this.config.padding,r=0;for(let i of e){let e=this.renderRule(i,t);t+=e.height+this.config.verticalSeparation,r=Math.max(r,e.width)}return{width:r+2*this.config.padding,height:t+this.config.padding}}},V=(0,o.K)((e,t,r)=>{(0,a.a$)(e,t.height,t.width,r),e.attr("viewBox",`0 0 ${t.width} ${t.height}`)},"configureRailroadSvgSize"),j={draw:(0,o.K)((e,t,r)=>{n.R.debug("[Railroad] Rendering diagram\n"+e);try{let e=(0,i.D)(t);e.attr("class","railroad-diagram");let r=(0,a.zj)().railroad,o=r?.useMaxWidth??!0,l=S.getRules();if(n.R.debug(`[Railroad] Rendering ${l.length} rules`),0===l.length){n.R.warn("[Railroad] No rules to render"),V(e,{height:100,width:200},o);return}let s=new W(e,E()).renderDiagram(l);V(e,s,o),n.R.debug("[Railroad] Render complete")}catch(e){throw n.R.error("[Railroad] Render error:",e),e}},"draw")}},7454(e,t,r){function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}r.d(t,{S:()=>i}),(0,r(6827).K)(i,"populateCommonDb")}}]); \ No newline at end of file diff --git a/en/assets/js/8927.68e81f0d.js b/en/assets/js/8927.68e81f0d.js new file mode 100644 index 0000000..e1841d4 --- /dev/null +++ b/en/assets/js/8927.68e81f0d.js @@ -0,0 +1,24 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8927"],{7454(e,t,a){function l(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>l}),(0,a(6827).K)(l,"populateCommonDb")},5869(e,t,a){a.d(t,{P:()=>i});var l=a(1177),r=a(1293),s=a(6827),i=(0,s.K)((e,t,a,s)=>{e.attr("class",a);let{width:i,height:c,x:d,y:p}=n(e,t);(0,l.a$)(e,c,i,s);let h=o(d,p,i,c,t);e.attr("viewBox",h),r.R.debug(`viewBox configured: ${h} with padding: ${t}`)},"setupViewPortForSVG"),n=(0,s.K)((e,t)=>{let a=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:a.width+2*t,height:a.height+2*t,x:a.x,y:a.y}},"calculateDimensionsWithPadding"),o=(0,s.K)((e,t,a,l,r)=>`${e-r} ${t-r} ${a} ${l}`,"createViewBox")},4738(e,t,a){a.d(t,{diagram:()=>b});var l=a(7454),r=a(4924),s=a(5869),i=a(739),n=a(6348),o=a(1177),c=a(1293),d=a(6827),p=a(8731),h=a(7829),m=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getAccDescription=o.m7,this.setAccDescription=o.EI}static{(0,d.K)(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let e=o.UI,t=(0,o.zj)();return(0,n.$t)({...e.treemap,...t.treemap??{}})}addNode(e,t){this.nodes.push(e),this.levels.set(e,t),0===t&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,t){let a=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=t.replace(/\\,/g,"\xa7\xa7\xa7").replace(/,/g,";").replace(/\xa7\xa7\xa7/g,",").split(";");l&&l.forEach(e=>{(0,i.KX)(e)&&(a?.textStyles?a.textStyles.push(e):a.textStyles=[e]),a?.styles?a.styles.push(e):a.styles=[e]}),this.classes.set(e,a)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){(0,o.IU)(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function y(e){if(!e.length)return[];let t=[],a=[];return e.forEach(e=>{let l={name:e.name,children:"Leaf"===e.type?void 0:[]};for(l.classSelector=e?.classSelector,e?.cssCompiledStyles&&(l.cssCompiledStyles=e.cssCompiledStyles),"Leaf"===e.type&&void 0!==e.value&&(l.value=e.value);a.length>0&&a[a.length-1].level>=e.level;)a.pop();if(0===a.length)t.push(l);else{let e=a[a.length-1].node;e.children?e.children.push(l):e.children=[l]}"Leaf"!==e.type&&a.push({node:l,level:e.level})}),t}(0,d.K)(y,"buildHierarchy");var f=(0,d.K)((e,t)=>{(0,l.S)(e,t);let a=[];for(let a of e.TreemapRows??[])"ClassDefStatement"===a.$type&&t.addClass(a.className??"",a.styleText??"");for(let l of e.TreemapRows??[]){let e=l.item;if(!e)continue;let r=l.indent?parseInt(l.indent):0,s=u(e),i=e.classSelector?t.getStylesForClass(e.classSelector):[],n=i.length>0?i:void 0,o={level:r,name:s,type:e.$type,value:e.value,classSelector:e.classSelector,cssCompiledStyles:n};a.push(o)}let r=y(a),s=(0,d.K)((e,a)=>{for(let l of e)t.addNode(l,a),l.children&&l.children.length>0&&s(l.children,a+1)},"addNodesRecursively");s(r,0)},"populate"),u=(0,d.K)(e=>e.name?String(e.name):"","getItemName"),S={parser:{yy:void 0},parse:(0,d.K)(async e=>{try{let t=p.qg,a=await t("treemap",e);c.R.debug("Treemap AST:",a);let l=S.parser?.yy;if(!(l instanceof m))throw Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");f(a,l)}catch(e){throw c.R.error("Error parsing treemap:",e),e}},"parse")},g=(0,d.K)((e,t,a,l)=>{let n,p=l.db,m=p.getConfig(),y=m.padding??10,f=p.getDiagramTitle(),u=p.getRoot(),{themeVariables:S}=(0,o.zj)();if(!u)return;let g=30*!!f,x=(0,r.D)(t),$=m.nodeWidth?10*m.nodeWidth:960,b=m.nodeHeight?10*m.nodeHeight:500,v=b+g;x.attr("viewBox",`0 0 ${$} ${v}`),(0,o.a$)(x,v,$,m.useMaxWidth);try{let e=m.valueFormat||",";if("$0,0"===e)n=(0,d.K)(e=>"$"+(0,h.GPZ)(",")(e),"valueFormat");else if(e.startsWith("$")&&e.includes(",")){let t=/\.\d+/.exec(e),a=t?t[0]:"";n=(0,d.K)(e=>"$"+(0,h.GPZ)(","+a)(e),"valueFormat")}else if(e.startsWith("$")){let t=e.substring(1);n=(0,d.K)(e=>"$"+(0,h.GPZ)(t||"")(e),"valueFormat")}else n=(0,h.GPZ)(e)}catch(e){c.R.error("Error creating format function:",e),n=(0,h.GPZ)(",")}let C=(0,h.UMr)().range(["transparent",S.cScale0,S.cScale1,S.cScale2,S.cScale3,S.cScale4,S.cScale5,S.cScale6,S.cScale7,S.cScale8,S.cScale9,S.cScale10,S.cScale11]),w=(0,h.UMr)().range(["transparent",S.cScalePeer0,S.cScalePeer1,S.cScalePeer2,S.cScalePeer3,S.cScalePeer4,S.cScalePeer5,S.cScalePeer6,S.cScalePeer7,S.cScalePeer8,S.cScalePeer9,S.cScalePeer10,S.cScalePeer11]),L=(0,h.UMr)().range([S.cScaleLabel0,S.cScaleLabel1,S.cScaleLabel2,S.cScaleLabel3,S.cScaleLabel4,S.cScaleLabel5,S.cScaleLabel6,S.cScaleLabel7,S.cScaleLabel8,S.cScaleLabel9,S.cScaleLabel10,S.cScaleLabel11]);f&&x.append("text").attr("x",$/2).attr("y",g/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(f);let k=x.append("g").attr("transform",`translate(0, ${g})`).attr("class","treemapContainer"),T=(0,h.Sk5)(u).sum(e=>e.value??0).sort((e,t)=>(t.value??0)-(e.value??0)),P=(0,h.hkb)().size([$,b]).paddingTop(e=>e.children&&e.children.length>0?35:0).paddingInner(y).paddingLeft(e=>e.children&&e.children.length>0?10:0).paddingRight(e=>e.children&&e.children.length>0?10:0).paddingBottom(e=>e.children&&e.children.length>0?10:0).round(!0)(T),M=P.descendants().filter(e=>e.children&&e.children.length>0),z=k.selectAll(".treemapSection").data(M).enter().append("g").attr("class","treemapSection").attr("transform",e=>`translate(${e.x0},${e.y0})`);z.append("rect").attr("width",e=>e.x1-e.x0).attr("height",25).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",e=>0===e.depth?"display: none;":""),z.append("clipPath").attr("id",(e,a)=>`clip-section-${t}-${a}`).append("rect").attr("width",e=>Math.max(0,e.x1-e.x0-12)).attr("height",25),z.append("rect").attr("width",e=>e.x1-e.x0).attr("height",e=>e.y1-e.y0).attr("class",(e,t)=>`treemapSection section${t}`).attr("fill",e=>C(e.data.name)).attr("fill-opacity",.6).attr("stroke",e=>w(e.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",e=>{if(0===e.depth)return"display: none;";let t=(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles});return t.nodeStyles+";"+t.borderStyles.join(";")}),z.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",12.5).attr("dominant-baseline","middle").text(e=>0===e.depth?"":e.data.name).attr("font-weight","bold").attr("clip-path",(e,a)=>`url(#clip-section-${t}-${a})`).attr("style",e=>0===e.depth?"display: none;":"dominant-baseline: middle; font-size: 12px; fill:"+L(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).each(function(e){if(0===e.depth)return;let t=(0,h.Ltv)(this),a=e.data.name;t.text(a);let l=e.x1-e.x0,r=Math.max(15,!1!==m.showValues&&e.value?l-10-30-10-6:l-6-6),s=t.node();if(s.getComputedTextLength()>r){let e=a;for(;e.length>0;){if(0===(e=a.substring(0,e.length-1)).length){t.text("..."),s.getComputedTextLength()>r&&t.text("");break}if(t.text(e+"..."),s.getComputedTextLength()<=r)break}}}),!1!==m.showValues&&z.append("text").attr("class","treemapSectionValue").attr("x",e=>e.x1-e.x0-10).attr("y",12.5).attr("text-anchor","end").attr("dominant-baseline","middle").text(e=>e.value?n(e.value):"").attr("font-style","italic").attr("style",e=>0===e.depth?"display: none;":"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+L(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:"));let F=P.leaves(),K=F.length>20,D=K?16:38,N=K?14:28,G=K?4:8,V=K?4:6,W=K?2:4,R=K?8:10,A=K?1:2,B=k.selectAll(".treemapLeafGroup").data(F).enter().append("g").attr("class",(e,t)=>`treemapNode treemapLeafGroup leaf${t}${e.data.classSelector?` ${e.data.classSelector}`:""}x`).attr("transform",e=>`translate(${e.x0},${e.y0})`);B.append("rect").attr("width",e=>e.x1-e.x0).attr("height",e=>e.y1-e.y0).attr("class","treemapLeaf").attr("fill",e=>e.parent?C(e.parent.data.name):C(e.data.name)).attr("style",e=>(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",e=>e.parent?C(e.parent.data.name):C(e.data.name)).attr("stroke-width",3),B.append("clipPath").attr("id",(e,a)=>`clip-${t}-${a}`).append("rect").attr("width",e=>Math.max(0,e.x1-e.x0-4)).attr("height",e=>Math.max(0,e.y1-e.y0-4)),B.append("text").attr("class","treemapLabel").attr("x",e=>(e.x1-e.x0)/2).attr("y",e=>(e.y1-e.y0)/2).attr("style",e=>`text-anchor: middle; dominant-baseline: middle; font-size: ${D}px;fill:`+L(e.data.name)+";"+(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(e,a)=>`url(#clip-${t}-${a})`).text(e=>e.data.name).each(function(e){let t=(0,h.Ltv)(this),a=e.x1-e.x0,l=e.y1-e.y0,r=t.node(),s=a-2*W,i=l-2*W;if(s<R||i<R)return void t.style("display","none");let n=parseInt(t.style("font-size"),10);for(;r.getComputedTextLength()>s&&n>G;)n--,t.style("font-size",`${n}px`);let o=Math.max(V,Math.min(N,Math.round(.6*n))),c=n+A+o;for(;c>i&&n>G&&(!((o=Math.max(V,Math.min(N,Math.round(.6*--n))))<V)||n!==G);)t.style("font-size",`${n}px`),c=n+A+o;t.style("font-size",`${n}px`),K?(n<G||i<G)&&t.style("display","none"):(r.getComputedTextLength()>s||n<G||i<n)&&t.style("display","none")}),!1!==m.showValues&&B.append("text").attr("class","treemapValue").attr("x",e=>(e.x1-e.x0)/2).attr("y",function(e){return(e.y1-e.y0)/2}).attr("style",e=>`text-anchor: middle; dominant-baseline: hanging; font-size: ${N}px;fill:`+L(e.data.name)+";"+(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(e,a)=>`url(#clip-${t}-${a})`).text(e=>e.value?n(e.value):"").each(function(e){let t=(0,h.Ltv)(this),a=this.parentNode;if(!a)return void t.style("display","none");let l=(0,h.Ltv)(a).select(".treemapLabel");if(l.empty()||"none"===l.style("display"))return void t.style("display","none");let r=parseFloat(l.style("font-size")),s=Math.max(V,Math.min(N,Math.round(.6*r)));t.style("font-size",`${s}px`);let i=(e.y1-e.y0)/2+r/2+A;t.attr("y",i);let n=e.x1-e.x0,o=e.y1-e.y0;t.node().getComputedTextLength()>n-2*W||i+s>o-4||s<V?t.style("display","none"):t.style("display",null)});let I=m.diagramPadding??8;(0,s.P)(x,I,"flowchart",m?.useMaxWidth||!1)},"draw"),x=(0,d.K)(function(e,t){return t.db.getClasses()},"getClasses"),$={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},b={parser:S,get db(){return new m},renderer:{draw:g,getClasses:x},styles:(0,d.K)(({treemap:e}={})=>{let t=(0,o.P$)(),a=(0,o.zj)(),l=(0,n.$t)(t,a.themeVariables),r=(0,n.$t)($,e),s=r.titleColor??l.titleColor,i=r.labelColor??l.textColor,c=r.valueColor??l.textColor;return` + .treemapNode.section { + stroke: ${r.sectionStrokeColor}; + stroke-width: ${r.sectionStrokeWidth}; + fill: ${r.sectionFillColor}; + } + .treemapNode.leaf { + stroke: ${r.leafStrokeColor}; + stroke-width: ${r.leafStrokeWidth}; + fill: ${r.leafFillColor}; + } + .treemapLabel { + fill: ${i}; + font-size: ${r.labelFontSize}; + } + .treemapValue { + fill: ${c}; + font-size: ${r.valueFontSize}; + } + .treemapTitle { + fill: ${s}; + font-size: ${r.titleFontSize}; + } + `},"getStyles")}}}]); \ No newline at end of file diff --git a/en/assets/js/8927.7a51b0fb.js b/en/assets/js/8927.7a51b0fb.js deleted file mode 100644 index 0364f9b..0000000 --- a/en/assets/js/8927.7a51b0fb.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8927"],{5869(e,t,a){a.d(t,{P:()=>i});var l=a(1177),r=a(1293),s=a(6827),i=(0,s.K)((e,t,a,s)=>{e.attr("class",a);let{width:i,height:c,x:d,y:p}=n(e,t);(0,l.a$)(e,c,i,s);let h=o(d,p,i,c,t);e.attr("viewBox",h),r.R.debug(`viewBox configured: ${h} with padding: ${t}`)},"setupViewPortForSVG"),n=(0,s.K)((e,t)=>{let a=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:a.width+2*t,height:a.height+2*t,x:a.x,y:a.y}},"calculateDimensionsWithPadding"),o=(0,s.K)((e,t,a,l,r)=>`${e-r} ${t-r} ${a} ${l}`,"createViewBox")},4738(e,t,a){a.d(t,{diagram:()=>b});var l=a(7454),r=a(4924),s=a(5869),i=a(739),n=a(6348),o=a(1177),c=a(1293),d=a(6827),p=a(8731),h=a(7829),m=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getAccDescription=o.m7,this.setAccDescription=o.EI}static{(0,d.K)(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let e=o.UI,t=(0,o.zj)();return(0,n.$t)({...e.treemap,...t.treemap??{}})}addNode(e,t){this.nodes.push(e),this.levels.set(e,t),0===t&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,t){let a=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=t.replace(/\\,/g,"\xa7\xa7\xa7").replace(/,/g,";").replace(/\xa7\xa7\xa7/g,",").split(";");l&&l.forEach(e=>{(0,i.KX)(e)&&(a?.textStyles?a.textStyles.push(e):a.textStyles=[e]),a?.styles?a.styles.push(e):a.styles=[e]}),this.classes.set(e,a)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){(0,o.IU)(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function y(e){if(!e.length)return[];let t=[],a=[];return e.forEach(e=>{let l={name:e.name,children:"Leaf"===e.type?void 0:[]};for(l.classSelector=e?.classSelector,e?.cssCompiledStyles&&(l.cssCompiledStyles=e.cssCompiledStyles),"Leaf"===e.type&&void 0!==e.value&&(l.value=e.value);a.length>0&&a[a.length-1].level>=e.level;)a.pop();if(0===a.length)t.push(l);else{let e=a[a.length-1].node;e.children?e.children.push(l):e.children=[l]}"Leaf"!==e.type&&a.push({node:l,level:e.level})}),t}(0,d.K)(y,"buildHierarchy");var f=(0,d.K)((e,t)=>{(0,l.S)(e,t);let a=[];for(let a of e.TreemapRows??[])"ClassDefStatement"===a.$type&&t.addClass(a.className??"",a.styleText??"");for(let l of e.TreemapRows??[]){let e=l.item;if(!e)continue;let r=l.indent?parseInt(l.indent):0,s=u(e),i=e.classSelector?t.getStylesForClass(e.classSelector):[],n=i.length>0?i:void 0,o={level:r,name:s,type:e.$type,value:e.value,classSelector:e.classSelector,cssCompiledStyles:n};a.push(o)}let r=y(a),s=(0,d.K)((e,a)=>{for(let l of e)t.addNode(l,a),l.children&&l.children.length>0&&s(l.children,a+1)},"addNodesRecursively");s(r,0)},"populate"),u=(0,d.K)(e=>e.name?String(e.name):"","getItemName"),S={parser:{yy:void 0},parse:(0,d.K)(async e=>{try{let t=p.qg,a=await t("treemap",e);c.R.debug("Treemap AST:",a);let l=S.parser?.yy;if(!(l instanceof m))throw Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");f(a,l)}catch(e){throw c.R.error("Error parsing treemap:",e),e}},"parse")},g=(0,d.K)((e,t,a,l)=>{let n,p=l.db,m=p.getConfig(),y=m.padding??10,f=p.getDiagramTitle(),u=p.getRoot(),{themeVariables:S}=(0,o.zj)();if(!u)return;let g=30*!!f,x=(0,r.D)(t),$=m.nodeWidth?10*m.nodeWidth:960,b=m.nodeHeight?10*m.nodeHeight:500,v=b+g;x.attr("viewBox",`0 0 ${$} ${v}`),(0,o.a$)(x,v,$,m.useMaxWidth);try{let e=m.valueFormat||",";if("$0,0"===e)n=(0,d.K)(e=>"$"+(0,h.GPZ)(",")(e),"valueFormat");else if(e.startsWith("$")&&e.includes(",")){let t=/\.\d+/.exec(e),a=t?t[0]:"";n=(0,d.K)(e=>"$"+(0,h.GPZ)(","+a)(e),"valueFormat")}else if(e.startsWith("$")){let t=e.substring(1);n=(0,d.K)(e=>"$"+(0,h.GPZ)(t||"")(e),"valueFormat")}else n=(0,h.GPZ)(e)}catch(e){c.R.error("Error creating format function:",e),n=(0,h.GPZ)(",")}let C=(0,h.UMr)().range(["transparent",S.cScale0,S.cScale1,S.cScale2,S.cScale3,S.cScale4,S.cScale5,S.cScale6,S.cScale7,S.cScale8,S.cScale9,S.cScale10,S.cScale11]),w=(0,h.UMr)().range(["transparent",S.cScalePeer0,S.cScalePeer1,S.cScalePeer2,S.cScalePeer3,S.cScalePeer4,S.cScalePeer5,S.cScalePeer6,S.cScalePeer7,S.cScalePeer8,S.cScalePeer9,S.cScalePeer10,S.cScalePeer11]),L=(0,h.UMr)().range([S.cScaleLabel0,S.cScaleLabel1,S.cScaleLabel2,S.cScaleLabel3,S.cScaleLabel4,S.cScaleLabel5,S.cScaleLabel6,S.cScaleLabel7,S.cScaleLabel8,S.cScaleLabel9,S.cScaleLabel10,S.cScaleLabel11]);f&&x.append("text").attr("x",$/2).attr("y",g/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(f);let k=x.append("g").attr("transform",`translate(0, ${g})`).attr("class","treemapContainer"),P=(0,h.Sk5)(u).sum(e=>e.value??0).sort((e,t)=>(t.value??0)-(e.value??0)),M=(0,h.hkb)().size([$,b]).paddingTop(e=>e.children&&e.children.length>0?35:0).paddingInner(y).paddingLeft(e=>e.children&&e.children.length>0?10:0).paddingRight(e=>e.children&&e.children.length>0?10:0).paddingBottom(e=>e.children&&e.children.length>0?10:0).round(!0)(P),z=M.descendants().filter(e=>e.children&&e.children.length>0),T=k.selectAll(".treemapSection").data(z).enter().append("g").attr("class","treemapSection").attr("transform",e=>`translate(${e.x0},${e.y0})`);T.append("rect").attr("width",e=>e.x1-e.x0).attr("height",25).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",e=>0===e.depth?"display: none;":""),T.append("clipPath").attr("id",(e,a)=>`clip-section-${t}-${a}`).append("rect").attr("width",e=>Math.max(0,e.x1-e.x0-12)).attr("height",25),T.append("rect").attr("width",e=>e.x1-e.x0).attr("height",e=>e.y1-e.y0).attr("class",(e,t)=>`treemapSection section${t}`).attr("fill",e=>C(e.data.name)).attr("fill-opacity",.6).attr("stroke",e=>w(e.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",e=>{if(0===e.depth)return"display: none;";let t=(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles});return t.nodeStyles+";"+t.borderStyles.join(";")}),T.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",12.5).attr("dominant-baseline","middle").text(e=>0===e.depth?"":e.data.name).attr("font-weight","bold").attr("clip-path",(e,a)=>`url(#clip-section-${t}-${a})`).attr("style",e=>0===e.depth?"display: none;":"dominant-baseline: middle; font-size: 12px; fill:"+L(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).each(function(e){if(0===e.depth)return;let t=(0,h.Ltv)(this),a=e.data.name;t.text(a);let l=e.x1-e.x0,r=Math.max(15,!1!==m.showValues&&e.value?l-10-30-10-6:l-6-6),s=t.node();if(s.getComputedTextLength()>r){let e=a;for(;e.length>0;){if(0===(e=a.substring(0,e.length-1)).length){t.text("..."),s.getComputedTextLength()>r&&t.text("");break}if(t.text(e+"..."),s.getComputedTextLength()<=r)break}}}),!1!==m.showValues&&T.append("text").attr("class","treemapSectionValue").attr("x",e=>e.x1-e.x0-10).attr("y",12.5).attr("text-anchor","end").attr("dominant-baseline","middle").text(e=>e.value?n(e.value):"").attr("font-style","italic").attr("style",e=>0===e.depth?"display: none;":"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+L(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:"));let F=M.leaves(),K=F.length>20,N=K?16:38,G=K?14:28,V=K?4:8,W=K?4:6,D=K?2:4,R=K?8:10,B=K?1:2,A=k.selectAll(".treemapLeafGroup").data(F).enter().append("g").attr("class",(e,t)=>`treemapNode treemapLeafGroup leaf${t}${e.data.classSelector?` ${e.data.classSelector}`:""}x`).attr("transform",e=>`translate(${e.x0},${e.y0})`);A.append("rect").attr("width",e=>e.x1-e.x0).attr("height",e=>e.y1-e.y0).attr("class","treemapLeaf").attr("fill",e=>e.parent?C(e.parent.data.name):C(e.data.name)).attr("style",e=>(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",e=>e.parent?C(e.parent.data.name):C(e.data.name)).attr("stroke-width",3),A.append("clipPath").attr("id",(e,a)=>`clip-${t}-${a}`).append("rect").attr("width",e=>Math.max(0,e.x1-e.x0-4)).attr("height",e=>Math.max(0,e.y1-e.y0-4)),A.append("text").attr("class","treemapLabel").attr("x",e=>(e.x1-e.x0)/2).attr("y",e=>(e.y1-e.y0)/2).attr("style",e=>`text-anchor: middle; dominant-baseline: middle; font-size: ${N}px;fill:`+L(e.data.name)+";"+(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(e,a)=>`url(#clip-${t}-${a})`).text(e=>e.data.name).each(function(e){let t=(0,h.Ltv)(this),a=e.x1-e.x0,l=e.y1-e.y0,r=t.node(),s=a-2*D,i=l-2*D;if(s<R||i<R)return void t.style("display","none");let n=parseInt(t.style("font-size"),10);for(;r.getComputedTextLength()>s&&n>V;)n--,t.style("font-size",`${n}px`);let o=Math.max(W,Math.min(G,Math.round(.6*n))),c=n+B+o;for(;c>i&&n>V&&(!((o=Math.max(W,Math.min(G,Math.round(.6*--n))))<W)||n!==V);)t.style("font-size",`${n}px`),c=n+B+o;t.style("font-size",`${n}px`),K?(n<V||i<V)&&t.style("display","none"):(r.getComputedTextLength()>s||n<V||i<n)&&t.style("display","none")}),!1!==m.showValues&&A.append("text").attr("class","treemapValue").attr("x",e=>(e.x1-e.x0)/2).attr("y",function(e){return(e.y1-e.y0)/2}).attr("style",e=>`text-anchor: middle; dominant-baseline: hanging; font-size: ${G}px;fill:`+L(e.data.name)+";"+(0,i.GX)({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(e,a)=>`url(#clip-${t}-${a})`).text(e=>e.value?n(e.value):"").each(function(e){let t=(0,h.Ltv)(this),a=this.parentNode;if(!a)return void t.style("display","none");let l=(0,h.Ltv)(a).select(".treemapLabel");if(l.empty()||"none"===l.style("display"))return void t.style("display","none");let r=parseFloat(l.style("font-size")),s=Math.max(W,Math.min(G,Math.round(.6*r)));t.style("font-size",`${s}px`);let i=(e.y1-e.y0)/2+r/2+B;t.attr("y",i);let n=e.x1-e.x0,o=e.y1-e.y0;t.node().getComputedTextLength()>n-2*D||i+s>o-4||s<W?t.style("display","none"):t.style("display",null)});let I=m.diagramPadding??8;(0,s.P)(x,I,"flowchart",m?.useMaxWidth||!1)},"draw"),x=(0,d.K)(function(e,t){return t.db.getClasses()},"getClasses"),$={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},b={parser:S,get db(){return new m},renderer:{draw:g,getClasses:x},styles:(0,d.K)(({treemap:e}={})=>{let t=(0,o.P$)(),a=(0,o.zj)(),l=(0,n.$t)(t,a.themeVariables),r=(0,n.$t)($,e),s=r.titleColor??l.titleColor,i=r.labelColor??l.textColor,c=r.valueColor??l.textColor;return` - .treemapNode.section { - stroke: ${r.sectionStrokeColor}; - stroke-width: ${r.sectionStrokeWidth}; - fill: ${r.sectionFillColor}; - } - .treemapNode.leaf { - stroke: ${r.leafStrokeColor}; - stroke-width: ${r.leafStrokeWidth}; - fill: ${r.leafFillColor}; - } - .treemapLabel { - fill: ${i}; - font-size: ${r.labelFontSize}; - } - .treemapValue { - fill: ${c}; - font-size: ${r.valueFontSize}; - } - .treemapTitle { - fill: ${s}; - font-size: ${r.titleFontSize}; - } - `},"getStyles")}}}]); \ No newline at end of file diff --git a/en/assets/js/92d5f697.1b48d711.js b/en/assets/js/92d5f697.1b48d711.js new file mode 100644 index 0000000..1bdba21 --- /dev/null +++ b/en/assets/js/92d5f697.1b48d711.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4128"],{1110(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>c,contentTitle:()=>d,toc:()=>a,assets:()=>o});var t=JSON.parse('{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/en/docs/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/function-parse.md","tags":[],"version":"1.0","sidebarPosition":4,"frontMatter":{"title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar_label":"Function Parsing","sidebar_position":4},"sidebar":"docs","previous":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/core/table-parse"},"next":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/core/parameter-compile"}}'),s=r(4848),i=r(8453);let c={title:"Function Parsing",description:"Extract functions, arguments and contexts used in SQL",sidebar_label:"Function Parsing",sidebar_position:4},d="Function Parsing",o={},a=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function l(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"function-parsing",children:"Function Parsing"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["Using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL to extract the set of functions:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse functions used in the SQL\n Set<String> functions = parser.parseFunction(sql);\n\n // 3. Read the result\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"functions: [sum, count]\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Extract ",(0,s.jsx)(n.strong,{children:"function calls"})," from SQL as a de-duplicated set of function names for function-level governance and dependency analysis."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 traverse AST to collect function expressions\n \u2192 Set<String> functions\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Set<String>"})," (function names, lower-cased)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Coverage"}),(0,s.jsx)(n.td,{children:"built-in, aggregate, window, custom functions"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Regular function calls"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"substr(name, 1, 3)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Aggregate functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"sum"}),", ",(0,s.jsx)(n.code,{children:"count"}),", ",(0,s.jsx)(n.code,{children:"max"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Window functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"row_number() over(...)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Nested functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Recursively collect inner and outer functions"})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453(e,n,r){r.d(n,{R:()=>c,x:()=>d});var t=r(6540);let s={},i=t.createContext(s);function c(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/92d5f697.98e740c5.js b/en/assets/js/92d5f697.98e740c5.js deleted file mode 100644 index 322a4e2..0000000 --- a/en/assets/js/92d5f697.98e740c5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4128"],{1110(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>d,contentTitle:()=>c,toc:()=>l,assets:()=>a});var s=JSON.parse('{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/en/docs/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/function-parse.md","tags":[],"version":"1.0","sidebarPosition":4,"frontMatter":{"title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar_label":"Function Parsing","sidebar_position":4},"sidebar":"docs","previous":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/core/table-parse"},"next":{"title":"Contributing","permalink":"/SqlParserX/en/docs/contributing"}}'),t=r(4848),i=r(8453);let d={title:"Function Parsing",description:"Extract functions, arguments and contexts used in SQL",sidebar_label:"Function Parsing",sidebar_position:4},c="Function Parsing",a={},l=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"function-parsing",children:"Function Parsing"})}),"\n",(0,t.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,t.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,t.jsxs)(n.p,{children:["Using the official ",(0,t.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL to extract the set of functions:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse functions used in the SQL\n Set<String> functions = parser.parseFunction(sql);\n\n // 3. Read the result\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,t.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"functions: [sum, count]\n"})}),"\n",(0,t.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,t.jsxs)(n.p,{children:["Extract ",(0,t.jsx)(n.strong,{children:"function calls"})," from SQL as a de-duplicated set of function names for function-level governance and dependency analysis."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 traverse AST to collect function expressions\n \u2192 Set<String> functions\n"})}),"\n",(0,t.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Item"}),(0,t.jsx)(n.th,{children:"Content"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Core entry"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Default impl"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Return type"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"Set<String>"})," (function names, lower-cased)"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Coverage"}),(0,t.jsx)(n.td,{children:"built-in, aggregate, window, custom functions"})]})]})]}),"\n",(0,t.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Capability"}),(0,t.jsx)(n.th,{children:"Status"}),(0,t.jsx)(n.th,{children:"Notes"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Regular function calls"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsxs)(n.td,{children:["e.g. ",(0,t.jsx)(n.code,{children:"substr(name, 1, 3)"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Aggregate functions"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsxs)(n.td,{children:["e.g. ",(0,t.jsx)(n.code,{children:"sum"}),", ",(0,t.jsx)(n.code,{children:"count"}),", ",(0,t.jsx)(n.code,{children:"max"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Window functions"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsxs)(n.td,{children:["e.g. ",(0,t.jsx)(n.code,{children:"row_number() over(...)"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Nested functions"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsx)(n.td,{children:"Recursively collect inner and outer functions"})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/9aae347e.74700eb1.js b/en/assets/js/9aae347e.2a52863b.js similarity index 94% rename from en/assets/js/9aae347e.74700eb1.js rename to en/assets/js/9aae347e.2a52863b.js index bde46b7..94040e4 100644 --- a/en/assets/js/9aae347e.74700eb1.js +++ b/en/assets/js/9aae347e.2a52863b.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1759"],{1421(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/en/docs/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/table-parse.md","tags":[],"version":"1.0","sidebarPosition":3,"frontMatter":{"title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar_label":"Table Parsing","sidebar_position":3},"sidebar":"docs","previous":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/core/table-lineage"},"next":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/core/function-parse"}}'),n=s(4848),a=s(8453);let l={title:"Table Parsing",description:"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL",sidebar_label:"Table Parsing",sidebar_position:3},i="Table Parsing",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"table-parsing",children:"Table Parsing"})}),"\n",(0,n.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,n.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,n.jsxs)(r.p,{children:["Using the official ",(0,n.jsx)(r.code,{children:"sqlparserx-core/README.md"}),' sample SQL to demonstrate both "parse real tables" and "parse CREATE TABLE":']}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables in the SQL\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse the CREATE TABLE structure\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("created table: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("column count: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,n.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\ncreated table: null.user_order_summary\ncolumn count: 4\n"})}),"\n",(0,n.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,n.jsxs)(r.p,{children:["Identify ",(0,n.jsx)(r.strong,{children:"real tables"})," from SQL text, including query tables, CTEs, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"})," definitions, partitions and table properties."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 collect tables / CTEs / DDL / partitions / properties\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,n.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Item"}),(0,n.jsx)(r.th,{children:"Content"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Core entry"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),", ",(0,n.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Default impl"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,n.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Return type"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ParseTableResult"}),", ",(0,n.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Coverage"}),(0,n.jsxs)(r.td,{children:["query tables, CTE, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"}),", partitions, properties"]})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Capability"}),(0,n.jsx)(r.th,{children:"Status"}),(0,n.jsx)(r.th,{children:"Notes"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Query table detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"CTE detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"WITH-defined temporary tables"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Table name, columns, types, comments"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Partitions & properties"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Dialect differences internalized in syntax layer"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"catalog.db.table"})}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Multi-catalog scenarios"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1759"],{1421(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/en/docs/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/table-parse.md","tags":[],"version":"1.0","sidebarPosition":3,"frontMatter":{"title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar_label":"Table Parsing","sidebar_position":3},"sidebar":"docs","previous":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/core/table-lineage"},"next":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/core/function-parse"}}'),n=s(4848),a=s(8453);let l={title:"Table Parsing",description:"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL",sidebar_label:"Table Parsing",sidebar_position:3},i="Table Parsing",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"table-parsing",children:"Table Parsing"})}),"\n",(0,n.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,n.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,n.jsxs)(r.p,{children:["Using the official ",(0,n.jsx)(r.code,{children:"sqlparserx-core/README.md"}),' sample SQL to demonstrate both "parse real tables" and "parse CREATE TABLE":']}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables in the SQL\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse the CREATE TABLE structure\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("created table: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("column count: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,n.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\ncreated table: null.user_order_summary\ncolumn count: 4\n"})}),"\n",(0,n.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,n.jsxs)(r.p,{children:["Identify ",(0,n.jsx)(r.strong,{children:"real tables"})," from SQL text, including query tables, CTEs, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"})," definitions, partitions and table properties."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 collect tables / CTEs / DDL / partitions / properties\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,n.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Item"}),(0,n.jsx)(r.th,{children:"Content"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Core entry"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),", ",(0,n.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Default impl"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,n.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Return type"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ParseTableResult"}),", ",(0,n.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Coverage"}),(0,n.jsxs)(r.td,{children:["query tables, CTE, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"}),", partitions, properties"]})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Capability"}),(0,n.jsx)(r.th,{children:"Status"}),(0,n.jsx)(r.th,{children:"Notes"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Query table detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"CTE detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"WITH-defined temporary tables"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Table name, columns, types, comments"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Partitions & properties"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Dialect differences internalized in syntax layer"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"catalog.db.table"})}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Multi-catalog scenarios"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>l,x:()=>i});var t=s(6540);let n={},a=t.createContext(n);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/9c37e8a9.639e262d.js b/en/assets/js/9c37e8a9.639e262d.js new file mode 100644 index 0000000..ec63277 --- /dev/null +++ b/en/assets/js/9c37e8a9.639e262d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1033"],{6845(e,r,t){t.r(r),t.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>a,assets:()=>o});var s=JSON.parse('{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/en/docs/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/about/introduction.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar_label":"Introduction","sidebar_position":1},"sidebar":"docs","previous":{"title":"Docs Guide","permalink":"/SqlParserX/en/docs/intro"},"next":{"title":"Architecture","permalink":"/SqlParserX/en/docs/about/architecture"}}'),i=t(4848),n=t(8453);let d={title:"Introduction",description:"Positioning, capabilities and modules of SqlParserX",sidebar_label:"Introduction",sidebar_position:1},l="Introduction to SqlParserX",o={},a=[{value:"Problems It Solves",id:"problems-it-solves",level:2},{value:"Modules",id:"modules",level:2},{value:"Supported Datasources",id:"supported-datasources",level:2},{value:"Further Reading",id:"further-reading",level:2}];function c(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"introduction-to-sqlparserx",children:"Introduction to SqlParserX"})}),"\n",(0,i.jsxs)(r.p,{children:["SqlParserX is a ",(0,i.jsx)(r.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," offering SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,i.jsx)(r.h2,{id:"problems-it-solves",children:"Problems It Solves"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Problem"}),(0,i.jsx)(r.th,{children:"Solution"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Dialects differ greatly"}),(0,i.jsxs)(r.td,{children:["Route Druid dialects via ",(0,i.jsx)(r.code,{children:"DbType"})," with a unified AST"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Real tables and DDL hide in SQL text"}),(0,i.jsxs)(r.td,{children:["Table, CTE, ",(0,i.jsx)(r.code,{children:"CREATE TABLE"}),", partition and property parsing"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Data dependencies are hard to trace"}),(0,i.jsx)(r.td,{children:"Table/column lineage across JOIN, UNION, subqueries, aggregates and CTEs"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Scripts contain multiple statements"}),(0,i.jsx)(r.td,{children:"SQL splitting and syntax validation"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Permission predicates are hard to maintain"}),(0,i.jsx)(r.td,{children:"Row-level permission SQL rewriting"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"modules",children:"Modules"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Module"}),(0,i.jsx)(r.th,{children:"Layer"}),(0,i.jsx)(r.th,{children:"Description"}),(0,i.jsx)(r.th,{children:"Technology"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-syntax"})}),(0,i.jsx)(r.td,{children:"Syntax parsing"}),(0,i.jsx)(r.td,{children:"SQL-to-AST, validation, splitting and Druid dialect extensions"}),(0,i.jsx)(r.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-core"})}),(0,i.jsx)(r.td,{children:"Business parsing"}),(0,i.jsx)(r.td,{children:"Tables, lineage, DDL, functions and SQL rewriting"}),(0,i.jsxs)(r.td,{children:["Java 8 + ",(0,i.jsx)(r.code,{children:"sqlparserx-syntax"})]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-web"})}),(0,i.jsx)(r.td,{children:"Access layer"}),(0,i.jsx)(r.td,{children:"Spring Boot REST service"}),(0,i.jsx)(r.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-ui"})}),(0,i.jsx)(r.td,{children:"Access layer"}),(0,i.jsx)(r.td,{children:"Lineage visualization and online parsing tools"}),(0,i.jsx)(r.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"supported-datasources",children:"Supported Datasources"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Datasource"}),(0,i.jsx)(r.th,{children:"Support"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"MySQL"}),(0,i.jsxs)(r.td,{children:["Priority support with enhanced ",(0,i.jsx)(r.code,{children:"RENAME TABLE"})," handling"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Doris"}),(0,i.jsx)(r.td,{children:"Strong support with dedicated DDL and lineage tests"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"StarRocks"}),(0,i.jsxs)(r.td,{children:["Dedicated ",(0,i.jsx)(r.code,{children:"DISTRIBUTED BY"})," and key DDL support"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,i.jsx)(r.td,{children:"Registered parsers with common business implementation"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"further-reading",children:"Further Reading"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.a,{href:"/SqlParserX/en/docs/about/architecture",children:"Architecture"})}),"\n",(0,i.jsxs)(r.li,{children:["Background: ",(0,i.jsx)(r.a,{href:"/blog/origin-of-sqlparserx",children:"The Origin of SqlParserX"})]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453(e,r,t){t.d(r,{R:()=>d,x:()=>l});var s=t(6540);let i={},n=s.createContext(i);function d(e){let r=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/9c37e8a9.7fe8a96d.js b/en/assets/js/9c37e8a9.7fe8a96d.js deleted file mode 100644 index a22fd34..0000000 --- a/en/assets/js/9c37e8a9.7fe8a96d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1033"],{6845(e,r,s){s.r(r),s.d(r,{metadata:()=>i,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>c,assets:()=>a});var i=JSON.parse('{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/en/docs/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/about/introduction.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar_label":"Introduction","sidebar_position":1},"sidebar":"docs","previous":{"title":"Docs Guide","permalink":"/SqlParserX/en/docs/intro"},"next":{"title":"Architecture","permalink":"/SqlParserX/en/docs/about/architecture"}}'),t=s(4848),n=s(8453);let d={title:"Introduction",description:"Positioning, capabilities and modules of SqlParserX",sidebar_label:"Introduction",sidebar_position:1},l="Introduction to SqlParserX",a={},c=[{value:"Problems It Solves",id:"problems-it-solves",level:2},{value:"Modules",id:"modules",level:2},{value:"Supported Datasources",id:"supported-datasources",level:2},{value:"Further Reading",id:"further-reading",level:2}];function o(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"introduction-to-sqlparserx",children:"Introduction to SqlParserX"})}),"\n",(0,t.jsxs)(r.p,{children:["SqlParserX is a ",(0,t.jsx)(r.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," offering table/DDL parsing, table and column lineage, function extraction, SQL splitting and row-level permission rewriting."]}),"\n",(0,t.jsx)(r.h2,{id:"problems-it-solves",children:"Problems It Solves"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Problem"}),(0,t.jsx)(r.th,{children:"Solution"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Dialects differ greatly"}),(0,t.jsxs)(r.td,{children:["Route Druid dialects via ",(0,t.jsx)(r.code,{children:"DbType"})," with a unified AST"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Real tables and DDL hide in SQL text"}),(0,t.jsxs)(r.td,{children:["Table, CTE, ",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),", partition and property parsing"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Data dependencies are hard to trace"}),(0,t.jsx)(r.td,{children:"Table/column lineage across JOIN, UNION, subqueries, aggregates and CTEs"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Scripts contain multiple statements"}),(0,t.jsx)(r.td,{children:"SQL splitting and syntax validation"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Permission predicates are hard to maintain"}),(0,t.jsx)(r.td,{children:"Row-level permission SQL rewriting"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"modules",children:"Modules"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Module"}),(0,t.jsx)(r.th,{children:"Layer"}),(0,t.jsx)(r.th,{children:"Description"}),(0,t.jsx)(r.th,{children:"Technology"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})}),(0,t.jsx)(r.td,{children:"Syntax parsing"}),(0,t.jsx)(r.td,{children:"SQL-to-AST, validation, splitting and Druid dialect extensions"}),(0,t.jsx)(r.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-core"})}),(0,t.jsx)(r.td,{children:"Business parsing"}),(0,t.jsx)(r.td,{children:"Tables, lineage, DDL, functions and SQL rewriting"}),(0,t.jsxs)(r.td,{children:["Java 8 + ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-web"})}),(0,t.jsx)(r.td,{children:"Access layer"}),(0,t.jsx)(r.td,{children:"Spring Boot REST service"}),(0,t.jsx)(r.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-ui"})}),(0,t.jsx)(r.td,{children:"Access layer"}),(0,t.jsx)(r.td,{children:"Lineage visualization and online parsing tools"}),(0,t.jsx)(r.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"supported-datasources",children:"Supported Datasources"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Datasource"}),(0,t.jsx)(r.th,{children:"Support"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"MySQL"}),(0,t.jsxs)(r.td,{children:["Priority support with enhanced ",(0,t.jsx)(r.code,{children:"RENAME TABLE"})," handling"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Doris"}),(0,t.jsx)(r.td,{children:"Strong support with dedicated DDL and lineage tests"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"StarRocks"}),(0,t.jsxs)(r.td,{children:["Dedicated ",(0,t.jsx)(r.code,{children:"DISTRIBUTED BY"})," and key DDL support"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,t.jsx)(r.td,{children:"Registered parsers with common business implementation"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"further-reading",children:"Further Reading"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"/SqlParserX/en/docs/about/architecture",children:"Architecture"})}),"\n",(0,t.jsxs)(r.li,{children:["Background: ",(0,t.jsx)(r.a,{href:"/blog/origin-of-sqlparserx",children:"The Origin of SqlParserX"})]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/a16ef744.39fbe70d.js b/en/assets/js/a16ef744.39fbe70d.js deleted file mode 100644 index 33d9d1c..0000000 --- a/en/assets/js/a16ef744.39fbe70d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9984"],{3349(e,n,i){i.r(n),i.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>l,contentTitle:()=>o,toc:()=>a,assets:()=>c});var t=JSON.parse('{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/en/docs/next/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/contributing.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Contributing","description":"How to contribute to SqlParserX","sidebar_label":"Contributing","sidebar_position":1},"sidebar":"docs","previous":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/next/core/function-parse"}}'),s=i(4848),r=i(8453);let l={title:"Contributing",description:"How to contribute to SqlParserX",sidebar_label:"Contributing",sidebar_position:1},o="Contributing",c={},a=[{value:"Ways to Contribute",id:"ways-to-contribute",level:2},{value:"Development Workflow",id:"development-workflow",level:2},{value:"Conventions",id:"conventions",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"contributing",children:"Contributing"})}),"\n",(0,s.jsx)(n.p,{children:"Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome."}),"\n",(0,s.jsx)(n.h2,{id:"ways-to-contribute",children:"Ways to Contribute"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Report bugs or request features: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["Submit code: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Join discussions: see ",(0,s.jsx)(n.a,{href:"/community",children:"Community"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"development-workflow",children:"Development Workflow"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Fork the repo and create a feature branch: ",(0,s.jsx)(n.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,s.jsxs)(n.li,{children:["Build locally: ",(0,s.jsx)(n.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Write code and tests, ensure ",(0,s.jsx)(n.code,{children:"mvn test"})," passes"]}),"\n",(0,s.jsx)(n.li,{children:"Push the branch and open a Pull Request"}),"\n",(0,s.jsx)(n.li,{children:"Merge after CI and review"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conventions",children:"Conventions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Follow the module layering: syntax differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"}),", business differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})]}),"\n",(0,s.jsx)(n.li,{children:"When adding a datasource, also update capability docs and regression tests"}),"\n",(0,s.jsx)(n.li,{children:"Match the existing code style and avoid unrelated dependencies"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Docs are maintained in the project root ",(0,s.jsx)(n.code,{children:"docs/"})," and synced to this site"]}),"\n",(0,s.jsx)(n.li,{children:"Update the relevant capability docs when adding parsing capabilities"}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/a16ef744.4468786b.js b/en/assets/js/a16ef744.4468786b.js new file mode 100644 index 0000000..c17c0ba --- /dev/null +++ b/en/assets/js/a16ef744.4468786b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9984"],{3349(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>u,frontMatter:()=>o,contentTitle:()=>l,toc:()=>a,assets:()=>c});var i=JSON.parse('{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/en/docs/next/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/contributing.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Contributing","description":"How to contribute to SqlParserX","sidebar_label":"Contributing","sidebar_position":1},"sidebar":"docs","previous":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/next/core/parameter-compile"}}'),s=t(4848),r=t(8453);let o={title:"Contributing",description:"How to contribute to SqlParserX",sidebar_label:"Contributing",sidebar_position:1},l="Contributing",c={},a=[{value:"Ways to Contribute",id:"ways-to-contribute",level:2},{value:"Development Workflow",id:"development-workflow",level:2},{value:"Conventions",id:"conventions",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"contributing",children:"Contributing"})}),"\n",(0,s.jsx)(n.p,{children:"Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome."}),"\n",(0,s.jsx)(n.h2,{id:"ways-to-contribute",children:"Ways to Contribute"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Report bugs or request features: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["Submit code: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Join discussions: see ",(0,s.jsx)(n.a,{href:"/community",children:"Community"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"development-workflow",children:"Development Workflow"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Fork the repo and create a feature branch: ",(0,s.jsx)(n.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,s.jsxs)(n.li,{children:["Build locally: ",(0,s.jsx)(n.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Write code and tests, ensure ",(0,s.jsx)(n.code,{children:"mvn test"})," passes"]}),"\n",(0,s.jsx)(n.li,{children:"Push the branch and open a Pull Request"}),"\n",(0,s.jsx)(n.li,{children:"Merge after CI and review"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conventions",children:"Conventions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Follow the module layering: syntax differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"}),", business differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})]}),"\n",(0,s.jsx)(n.li,{children:"When adding a datasource, also update capability docs and regression tests"}),"\n",(0,s.jsx)(n.li,{children:"Match the existing code style and avoid unrelated dependencies"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Docs are maintained in the project root ",(0,s.jsx)(n.code,{children:"docs/"})," and synced to this site"]}),"\n",(0,s.jsx)(n.li,{children:"Update the relevant capability docs when adding parsing capabilities"}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>o,x:()=>l});var i=t(6540);let s={},r=i.createContext(s);function o(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/a84fc31f.1d7e9083.js b/en/assets/js/a84fc31f.1d7e9083.js new file mode 100644 index 0000000..05e9a93 --- /dev/null +++ b/en/assets/js/a84fc31f.1d7e9083.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9414"],{3893(e,t,r){r.r(t),r.d(t,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>a,assets:()=>c});var s=JSON.parse('{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/en/docs/next/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/about/introduction.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar_label":"Introduction","sidebar_position":1},"sidebar":"docs","previous":{"title":"Docs Guide","permalink":"/SqlParserX/en/docs/next/intro"},"next":{"title":"Architecture","permalink":"/SqlParserX/en/docs/next/about/architecture"}}'),n=r(4848),i=r(8453);let d={title:"Introduction",description:"Positioning, capabilities and modules of SqlParserX",sidebar_label:"Introduction",sidebar_position:1},l="Introduction to SqlParserX",c={},a=[{value:"Problems It Solves",id:"problems-it-solves",level:2},{value:"Modules",id:"modules",level:2},{value:"Supported Datasources",id:"supported-datasources",level:2},{value:"Further Reading",id:"further-reading",level:2}];function o(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"introduction-to-sqlparserx",children:"Introduction to SqlParserX"})}),"\n",(0,n.jsxs)(t.p,{children:["SqlParserX is a ",(0,n.jsx)(t.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," offering SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,n.jsx)(t.h2,{id:"problems-it-solves",children:"Problems It Solves"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Problem"}),(0,n.jsx)(t.th,{children:"Solution"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Dialects differ greatly"}),(0,n.jsxs)(t.td,{children:["Route Druid dialects via ",(0,n.jsx)(t.code,{children:"DbType"})," with a unified AST"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Real tables and DDL hide in SQL text"}),(0,n.jsxs)(t.td,{children:["Table, CTE, ",(0,n.jsx)(t.code,{children:"CREATE TABLE"}),", partition and property parsing"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Data dependencies are hard to trace"}),(0,n.jsx)(t.td,{children:"Table/column lineage across JOIN, UNION, subqueries, aggregates and CTEs"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Scripts contain multiple statements"}),(0,n.jsx)(t.td,{children:"SQL splitting and syntax validation"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Permission predicates are hard to maintain"}),(0,n.jsx)(t.td,{children:"Row-level permission SQL rewriting"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"modules",children:"Modules"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Module"}),(0,n.jsx)(t.th,{children:"Layer"}),(0,n.jsx)(t.th,{children:"Description"}),(0,n.jsx)(t.th,{children:"Technology"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-syntax"})}),(0,n.jsx)(t.td,{children:"Syntax parsing"}),(0,n.jsx)(t.td,{children:"SQL-to-AST, validation, splitting and Druid dialect extensions"}),(0,n.jsx)(t.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-core"})}),(0,n.jsx)(t.td,{children:"Business parsing"}),(0,n.jsx)(t.td,{children:"Tables, lineage, DDL, functions and SQL rewriting"}),(0,n.jsxs)(t.td,{children:["Java 8 + ",(0,n.jsx)(t.code,{children:"sqlparserx-syntax"})]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-web"})}),(0,n.jsx)(t.td,{children:"Access layer"}),(0,n.jsx)(t.td,{children:"Spring Boot REST service"}),(0,n.jsx)(t.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-ui"})}),(0,n.jsx)(t.td,{children:"Access layer"}),(0,n.jsx)(t.td,{children:"Lineage visualization and online parsing tools"}),(0,n.jsx)(t.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"supported-datasources",children:"Supported Datasources"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Datasource"}),(0,n.jsx)(t.th,{children:"Support"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"MySQL"}),(0,n.jsxs)(t.td,{children:["Priority support with enhanced ",(0,n.jsx)(t.code,{children:"RENAME TABLE"})," handling"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Doris"}),(0,n.jsx)(t.td,{children:"Strong support with dedicated DDL and lineage tests"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"StarRocks"}),(0,n.jsxs)(t.td,{children:["Dedicated ",(0,n.jsx)(t.code,{children:"DISTRIBUTED BY"})," and key DDL support"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,n.jsx)(t.td,{children:"Registered parsers with common business implementation"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"further-reading",children:"Further Reading"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"/SqlParserX/en/docs/next/about/architecture",children:"Architecture"})}),"\n",(0,n.jsxs)(t.li,{children:["Background: ",(0,n.jsx)(t.a,{href:"/blog/origin-of-sqlparserx",children:"The Origin of SqlParserX"})]}),"\n"]})]})}function h(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453(e,t,r){r.d(t,{R:()=>d,x:()=>l});var s=r(6540);let n={},i=s.createContext(n);function d(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/a84fc31f.1e52c8d8.js b/en/assets/js/a84fc31f.1e52c8d8.js deleted file mode 100644 index 678ed00..0000000 --- a/en/assets/js/a84fc31f.1e52c8d8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9414"],{3893(e,r,s){s.r(r),s.d(r,{metadata:()=>i,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>c,assets:()=>a});var i=JSON.parse('{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/en/docs/next/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/about/introduction.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar_label":"Introduction","sidebar_position":1},"sidebar":"docs","previous":{"title":"Docs Guide","permalink":"/SqlParserX/en/docs/next/intro"},"next":{"title":"Architecture","permalink":"/SqlParserX/en/docs/next/about/architecture"}}'),t=s(4848),n=s(8453);let d={title:"Introduction",description:"Positioning, capabilities and modules of SqlParserX",sidebar_label:"Introduction",sidebar_position:1},l="Introduction to SqlParserX",a={},c=[{value:"Problems It Solves",id:"problems-it-solves",level:2},{value:"Modules",id:"modules",level:2},{value:"Supported Datasources",id:"supported-datasources",level:2},{value:"Further Reading",id:"further-reading",level:2}];function o(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"introduction-to-sqlparserx",children:"Introduction to SqlParserX"})}),"\n",(0,t.jsxs)(r.p,{children:["SqlParserX is a ",(0,t.jsx)(r.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," offering table/DDL parsing, table and column lineage, function extraction, SQL splitting and row-level permission rewriting."]}),"\n",(0,t.jsx)(r.h2,{id:"problems-it-solves",children:"Problems It Solves"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Problem"}),(0,t.jsx)(r.th,{children:"Solution"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Dialects differ greatly"}),(0,t.jsxs)(r.td,{children:["Route Druid dialects via ",(0,t.jsx)(r.code,{children:"DbType"})," with a unified AST"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Real tables and DDL hide in SQL text"}),(0,t.jsxs)(r.td,{children:["Table, CTE, ",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),", partition and property parsing"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Data dependencies are hard to trace"}),(0,t.jsx)(r.td,{children:"Table/column lineage across JOIN, UNION, subqueries, aggregates and CTEs"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Scripts contain multiple statements"}),(0,t.jsx)(r.td,{children:"SQL splitting and syntax validation"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Permission predicates are hard to maintain"}),(0,t.jsx)(r.td,{children:"Row-level permission SQL rewriting"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"modules",children:"Modules"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Module"}),(0,t.jsx)(r.th,{children:"Layer"}),(0,t.jsx)(r.th,{children:"Description"}),(0,t.jsx)(r.th,{children:"Technology"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})}),(0,t.jsx)(r.td,{children:"Syntax parsing"}),(0,t.jsx)(r.td,{children:"SQL-to-AST, validation, splitting and Druid dialect extensions"}),(0,t.jsx)(r.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-core"})}),(0,t.jsx)(r.td,{children:"Business parsing"}),(0,t.jsx)(r.td,{children:"Tables, lineage, DDL, functions and SQL rewriting"}),(0,t.jsxs)(r.td,{children:["Java 8 + ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-web"})}),(0,t.jsx)(r.td,{children:"Access layer"}),(0,t.jsx)(r.td,{children:"Spring Boot REST service"}),(0,t.jsx)(r.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-ui"})}),(0,t.jsx)(r.td,{children:"Access layer"}),(0,t.jsx)(r.td,{children:"Lineage visualization and online parsing tools"}),(0,t.jsx)(r.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"supported-datasources",children:"Supported Datasources"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Datasource"}),(0,t.jsx)(r.th,{children:"Support"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"MySQL"}),(0,t.jsxs)(r.td,{children:["Priority support with enhanced ",(0,t.jsx)(r.code,{children:"RENAME TABLE"})," handling"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Doris"}),(0,t.jsx)(r.td,{children:"Strong support with dedicated DDL and lineage tests"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"StarRocks"}),(0,t.jsxs)(r.td,{children:["Dedicated ",(0,t.jsx)(r.code,{children:"DISTRIBUTED BY"})," and key DDL support"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,t.jsx)(r.td,{children:"Registered parsers with common business implementation"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"further-reading",children:"Further Reading"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"/SqlParserX/en/docs/next/about/architecture",children:"Architecture"})}),"\n",(0,t.jsxs)(r.li,{children:["Background: ",(0,t.jsx)(r.a,{href:"/blog/origin-of-sqlparserx",children:"The Origin of SqlParserX"})]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/aa9e3246.260a5858.js b/en/assets/js/aa9e3246.260a5858.js deleted file mode 100644 index b36c363..0000000 --- a/en/assets/js/aa9e3246.260a5858.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2687"],{6321(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next \u{1F6A7}","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"link","href":"/SqlParserX/en/docs/next/intro","label":"Docs Guide","docId":"intro","unlisted":false},{"type":"category","label":"\u5173\u4E8E SqlParserX","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/next/about/introduction","label":"Introduction","docId":"about/introduction","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/about/architecture","label":"Architecture","docId":"about/architecture","unlisted":false}],"collapsible":true},{"type":"category","label":"Getting Started","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/next/quickstart/setup","label":"Setup & Build","docId":"quickstart/setup","unlisted":false}],"collapsible":true},{"type":"category","label":"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/next/core/field-lineage","label":"Field Lineage","docId":"core/field-lineage","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/core/table-lineage","label":"Table Lineage","docId":"core/table-lineage","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/core/table-parse","label":"Table Parsing","docId":"core/table-parse","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/core/function-parse","label":"Function Parsing","docId":"core/function-parse","unlisted":false}],"collapsible":true},{"type":"category","label":"\u8D21\u732E\u6307\u5357","collapsed":true,"items":[{"type":"link","href":"/SqlParserX/en/docs/next/contributing","label":"Contributing","docId":"contributing","unlisted":false}],"collapsible":true}]},"docs":{"about/architecture":{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar":"docs"},"about/introduction":{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar":"docs"},"contributing":{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","sidebar":"docs"},"core/field-lineage":{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar":"docs"},"core/function-parse":{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar":"docs"},"core/table-lineage":{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar":"docs"},"core/table-parse":{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar":"docs"},"intro":{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar":"docs"},"quickstart/setup":{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/en/assets/js/aa9e3246.77f04ee4.js b/en/assets/js/aa9e3246.77f04ee4.js new file mode 100644 index 0000000..bdbe7c9 --- /dev/null +++ b/en/assets/js/aa9e3246.77f04ee4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2687"],{6321(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next \u{1F6A7}","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"link","href":"/SqlParserX/en/docs/next/intro","label":"Docs Guide","docId":"intro","unlisted":false},{"type":"category","label":"\u5173\u4E8E SqlParserX","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/next/about/introduction","label":"Introduction","docId":"about/introduction","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/about/architecture","label":"Architecture","docId":"about/architecture","unlisted":false}],"collapsible":true},{"type":"category","label":"Getting Started","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/next/quickstart/setup","label":"Setup & Build","docId":"quickstart/setup","unlisted":false}],"collapsible":true},{"type":"category","label":"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/next/core/sql-type","label":"SQL Type Detection","docId":"core/sql-type","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/core/field-lineage","label":"Field Lineage","docId":"core/field-lineage","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/core/table-lineage","label":"Table Lineage","docId":"core/table-lineage","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/core/table-parse","label":"Table Parsing","docId":"core/table-parse","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/core/function-parse","label":"Function Parsing","docId":"core/function-parse","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/next/core/parameter-compile","label":"Parameter Extraction","docId":"core/parameter-compile","unlisted":false}],"collapsible":true},{"type":"category","label":"\u8D21\u732E\u6307\u5357","collapsed":true,"items":[{"type":"link","href":"/SqlParserX/en/docs/next/contributing","label":"Contributing","docId":"contributing","unlisted":false}],"collapsible":true}]},"docs":{"about/architecture":{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar":"docs"},"about/introduction":{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar":"docs"},"contributing":{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","sidebar":"docs"},"core/field-lineage":{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar":"docs"},"core/function-parse":{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar":"docs"},"core/parameter-compile":{"id":"core/parameter-compile","title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","sidebar":"docs"},"core/sql-type":{"id":"core/sql-type","title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","sidebar":"docs"},"core/table-lineage":{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar":"docs"},"core/table-parse":{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar":"docs"},"intro":{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar":"docs"},"quickstart/setup":{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/en/assets/js/ac311984.d9c3b59b.js b/en/assets/js/ac311984.eb22d05b.js similarity index 92% rename from en/assets/js/ac311984.d9c3b59b.js rename to en/assets/js/ac311984.eb22d05b.js index dc610f5..6910082 100644 --- a/en/assets/js/ac311984.d9c3b59b.js +++ b/en/assets/js/ac311984.eb22d05b.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9590"],{7821(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>d,toc:()=>c,assets:()=>i});var t=JSON.parse('{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/en/docs/next/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/table-parse.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar_label":"Table Parsing","sidebar_position":3},"sidebar":"docs","previous":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage"},"next":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/next/core/function-parse"}}'),n=s(4848),a=s(8453);let l={title:"Table Parsing",description:"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL",sidebar_label:"Table Parsing",sidebar_position:3},d="Table Parsing",i={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"table-parsing",children:"Table Parsing"})}),"\n",(0,n.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,n.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,n.jsxs)(r.p,{children:["Using the official ",(0,n.jsx)(r.code,{children:"sqlparserx-core/README.md"}),' sample SQL to demonstrate both "parse real tables" and "parse CREATE TABLE":']}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables in the SQL\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse the CREATE TABLE structure\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("created table: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("column count: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,n.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\ncreated table: null.user_order_summary\ncolumn count: 4\n"})}),"\n",(0,n.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,n.jsxs)(r.p,{children:["Identify ",(0,n.jsx)(r.strong,{children:"real tables"})," from SQL text, including query tables, CTEs, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"})," definitions, partitions and table properties."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 collect tables / CTEs / DDL / partitions / properties\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,n.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Item"}),(0,n.jsx)(r.th,{children:"Content"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Core entry"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),", ",(0,n.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Default impl"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,n.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Return type"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ParseTableResult"}),", ",(0,n.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Coverage"}),(0,n.jsxs)(r.td,{children:["query tables, CTE, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"}),", partitions, properties"]})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Capability"}),(0,n.jsx)(r.th,{children:"Status"}),(0,n.jsx)(r.th,{children:"Notes"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Query table detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"CTE detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"WITH-defined temporary tables"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Table name, columns, types, comments"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Partitions & properties"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Dialect differences internalized in syntax layer"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"catalog.db.table"})}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Multi-catalog scenarios"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9590"],{7821(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/en/docs/next/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/table-parse.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar_label":"Table Parsing","sidebar_position":3},"sidebar":"docs","previous":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage"},"next":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/next/core/function-parse"}}'),n=s(4848),a=s(8453);let l={title:"Table Parsing",description:"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL",sidebar_label:"Table Parsing",sidebar_position:3},i="Table Parsing",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"table-parsing",children:"Table Parsing"})}),"\n",(0,n.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,n.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,n.jsxs)(r.p,{children:["Using the official ",(0,n.jsx)(r.code,{children:"sqlparserx-core/README.md"}),' sample SQL to demonstrate both "parse real tables" and "parse CREATE TABLE":']}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables in the SQL\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse the CREATE TABLE structure\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("created table: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("column count: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,n.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\ncreated table: null.user_order_summary\ncolumn count: 4\n"})}),"\n",(0,n.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,n.jsxs)(r.p,{children:["Identify ",(0,n.jsx)(r.strong,{children:"real tables"})," from SQL text, including query tables, CTEs, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"})," definitions, partitions and table properties."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 collect tables / CTEs / DDL / partitions / properties\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,n.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Item"}),(0,n.jsx)(r.th,{children:"Content"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Core entry"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),", ",(0,n.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Default impl"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,n.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Return type"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ParseTableResult"}),", ",(0,n.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Coverage"}),(0,n.jsxs)(r.td,{children:["query tables, CTE, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"}),", partitions, properties"]})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Capability"}),(0,n.jsx)(r.th,{children:"Status"}),(0,n.jsx)(r.th,{children:"Notes"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Query table detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"CTE detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"WITH-defined temporary tables"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Table name, columns, types, comments"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Partitions & properties"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Dialect differences internalized in syntax layer"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"catalog.db.table"})}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Multi-catalog scenarios"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>l,x:()=>i});var t=s(6540);let n={},a=t.createContext(n);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/ac4ff279.5ca528d4.js b/en/assets/js/ac4ff279.5ca528d4.js new file mode 100644 index 0000000..68f7ef9 --- /dev/null +++ b/en/assets/js/ac4ff279.5ca528d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8222"],{6462(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>u,frontMatter:()=>o,contentTitle:()=>l,toc:()=>a,assets:()=>c});var i=JSON.parse('{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/en/docs/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/contributing.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Contributing","description":"How to contribute to SqlParserX","sidebar_label":"Contributing","sidebar_position":1},"sidebar":"docs","previous":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/core/parameter-compile"}}'),s=t(4848),r=t(8453);let o={title:"Contributing",description:"How to contribute to SqlParserX",sidebar_label:"Contributing",sidebar_position:1},l="Contributing",c={},a=[{value:"Ways to Contribute",id:"ways-to-contribute",level:2},{value:"Development Workflow",id:"development-workflow",level:2},{value:"Conventions",id:"conventions",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"contributing",children:"Contributing"})}),"\n",(0,s.jsx)(n.p,{children:"Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome."}),"\n",(0,s.jsx)(n.h2,{id:"ways-to-contribute",children:"Ways to Contribute"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Report bugs or request features: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["Submit code: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Join discussions: see ",(0,s.jsx)(n.a,{href:"/community",children:"Community"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"development-workflow",children:"Development Workflow"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Fork the repo and create a feature branch: ",(0,s.jsx)(n.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,s.jsxs)(n.li,{children:["Build locally: ",(0,s.jsx)(n.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Write code and tests, ensure ",(0,s.jsx)(n.code,{children:"mvn test"})," passes"]}),"\n",(0,s.jsx)(n.li,{children:"Push the branch and open a Pull Request"}),"\n",(0,s.jsx)(n.li,{children:"Merge after CI and review"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conventions",children:"Conventions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Follow the module layering: syntax differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"}),", business differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})]}),"\n",(0,s.jsx)(n.li,{children:"When adding a datasource, also update capability docs and regression tests"}),"\n",(0,s.jsx)(n.li,{children:"Match the existing code style and avoid unrelated dependencies"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Docs are maintained in the project root ",(0,s.jsx)(n.code,{children:"docs/"})," and synced to this site"]}),"\n",(0,s.jsx)(n.li,{children:"Update the relevant capability docs when adding parsing capabilities"}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>o,x:()=>l});var i=t(6540);let s={},r=i.createContext(s);function o(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/ac4ff279.f1c344ee.js b/en/assets/js/ac4ff279.f1c344ee.js deleted file mode 100644 index 91e9789..0000000 --- a/en/assets/js/ac4ff279.f1c344ee.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8222"],{6462(e,n,i){i.r(n),i.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>o,contentTitle:()=>l,toc:()=>a,assets:()=>c});var s=JSON.parse('{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/en/docs/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/contributing.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Contributing","description":"How to contribute to SqlParserX","sidebar_label":"Contributing","sidebar_position":1},"sidebar":"docs","previous":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/core/function-parse"}}'),t=i(4848),r=i(8453);let o={title:"Contributing",description:"How to contribute to SqlParserX",sidebar_label:"Contributing",sidebar_position:1},l="Contributing",c={},a=[{value:"Ways to Contribute",id:"ways-to-contribute",level:2},{value:"Development Workflow",id:"development-workflow",level:2},{value:"Conventions",id:"conventions",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"contributing",children:"Contributing"})}),"\n",(0,t.jsx)(n.p,{children:"Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome."}),"\n",(0,t.jsx)(n.h2,{id:"ways-to-contribute",children:"Ways to Contribute"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Report bugs or request features: ",(0,t.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,t.jsxs)(n.li,{children:["Submit code: ",(0,t.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,t.jsxs)(n.li,{children:["Join discussions: see ",(0,t.jsx)(n.a,{href:"/community",children:"Community"})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"development-workflow",children:"Development Workflow"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Fork the repo and create a feature branch: ",(0,t.jsx)(n.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,t.jsxs)(n.li,{children:["Build locally: ",(0,t.jsx)(n.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,t.jsxs)(n.li,{children:["Write code and tests, ensure ",(0,t.jsx)(n.code,{children:"mvn test"})," passes"]}),"\n",(0,t.jsx)(n.li,{children:"Push the branch and open a Pull Request"}),"\n",(0,t.jsx)(n.li,{children:"Merge after CI and review"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"conventions",children:"Conventions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Follow the module layering: syntax differences \u2192 ",(0,t.jsx)(n.code,{children:"sqlparserx-syntax"}),", business differences \u2192 ",(0,t.jsx)(n.code,{children:"sqlparserx-core"})]}),"\n",(0,t.jsx)(n.li,{children:"When adding a datasource, also update capability docs and regression tests"}),"\n",(0,t.jsx)(n.li,{children:"Match the existing code style and avoid unrelated dependencies"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Docs are maintained in the project root ",(0,t.jsx)(n.code,{children:"docs/"})," and synced to this site"]}),"\n",(0,t.jsx)(n.li,{children:"Update the relevant capability docs when adding parsing capabilities"}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/bd32d0d5.2cdaeaae.js b/en/assets/js/bd32d0d5.2cdaeaae.js new file mode 100644 index 0000000..0effbea --- /dev/null +++ b/en/assets/js/bd32d0d5.2cdaeaae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5940"],{4241(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"1.0","label":"Next \u{1F6A7}","banner":null,"badge":true,"noIndex":false,"className":"docs-version-1.0","isLast":true,"docsSidebars":{"docs":[{"type":"link","href":"/SqlParserX/en/docs/intro","label":"Docs Guide","docId":"intro","unlisted":false},{"type":"category","label":"\u5173\u4E8E SqlParserX","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/about/introduction","label":"Introduction","docId":"about/introduction","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/about/architecture","label":"Architecture","docId":"about/architecture","unlisted":false}],"collapsible":true},{"type":"category","label":"Getting Started","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/quickstart/setup","label":"Setup & Build","docId":"quickstart/setup","unlisted":false}],"collapsible":true},{"type":"category","label":"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/core/sql-type","label":"SQL Type Detection","docId":"core/sql-type","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/core/field-lineage","label":"Field Lineage","docId":"core/field-lineage","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/core/table-lineage","label":"Table Lineage","docId":"core/table-lineage","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/core/table-parse","label":"Table Parsing","docId":"core/table-parse","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/core/function-parse","label":"Function Parsing","docId":"core/function-parse","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/core/parameter-compile","label":"Parameter Extraction","docId":"core/parameter-compile","unlisted":false}],"collapsible":true},{"type":"category","label":"\u8D21\u732E\u6307\u5357","collapsed":true,"items":[{"type":"link","href":"/SqlParserX/en/docs/contributing","label":"Contributing","docId":"contributing","unlisted":false}],"collapsible":true}]},"docs":{"about/architecture":{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar":"docs"},"about/introduction":{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar":"docs"},"contributing":{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","sidebar":"docs"},"core/field-lineage":{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar":"docs"},"core/function-parse":{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar":"docs"},"core/parameter-compile":{"id":"core/parameter-compile","title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","sidebar":"docs"},"core/sql-type":{"id":"core/sql-type","title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","sidebar":"docs"},"core/table-lineage":{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar":"docs"},"core/table-parse":{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar":"docs"},"intro":{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar":"docs"},"quickstart/setup":{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/en/assets/js/bd32d0d5.4cd1db7b.js b/en/assets/js/bd32d0d5.4cd1db7b.js deleted file mode 100644 index 7eb8694..0000000 --- a/en/assets/js/bd32d0d5.4cd1db7b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5940"],{4241(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"1.0","label":"Next \u{1F6A7}","banner":null,"badge":true,"noIndex":false,"className":"docs-version-1.0","isLast":true,"docsSidebars":{"docs":[{"type":"link","href":"/SqlParserX/en/docs/intro","label":"Docs Guide","docId":"intro","unlisted":false},{"type":"category","label":"\u5173\u4E8E SqlParserX","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/about/introduction","label":"Introduction","docId":"about/introduction","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/about/architecture","label":"Architecture","docId":"about/architecture","unlisted":false}],"collapsible":true},{"type":"category","label":"Getting Started","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/quickstart/setup","label":"Setup & Build","docId":"quickstart/setup","unlisted":false}],"collapsible":true},{"type":"category","label":"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528","collapsed":false,"items":[{"type":"link","href":"/SqlParserX/en/docs/core/field-lineage","label":"Field Lineage","docId":"core/field-lineage","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/core/table-lineage","label":"Table Lineage","docId":"core/table-lineage","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/core/table-parse","label":"Table Parsing","docId":"core/table-parse","unlisted":false},{"type":"link","href":"/SqlParserX/en/docs/core/function-parse","label":"Function Parsing","docId":"core/function-parse","unlisted":false}],"collapsible":true},{"type":"category","label":"\u8D21\u732E\u6307\u5357","collapsed":true,"items":[{"type":"link","href":"/SqlParserX/en/docs/contributing","label":"Contributing","docId":"contributing","unlisted":false}],"collapsible":true}]},"docs":{"about/architecture":{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar":"docs"},"about/introduction":{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar":"docs"},"contributing":{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","sidebar":"docs"},"core/field-lineage":{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar":"docs"},"core/function-parse":{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar":"docs"},"core/table-lineage":{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar":"docs"},"core/table-parse":{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar":"docs"},"intro":{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar":"docs"},"quickstart/setup":{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/en/assets/js/c4f5d8e4.97d426b8.js b/en/assets/js/c4f5d8e4.97d426b8.js new file mode 100644 index 0000000..7f4508c --- /dev/null +++ b/en/assets/js/c4f5d8e4.97d426b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4823"],{7641(e,s,a){a.r(s),a.d(s,{default:()=>k});var i=a(4848);a(6540);var c=a(6525),r=a(898),l=a(5310),d=a(568),n=a(6497);let t={hero:"hero_reY0",gridBg:"gridBg_zRbt",glowA:"glowA_dnBZ",glowB:"glowB_NjYj",inner:"inner_IGGz",left:"left_uKTZ",badge:"badge_D9jF",badgeDot:"badgeDot_ycdE",title:"title_DbXn",brandLogo:"brandLogo_fzYv",titleGrad:"titleGrad_wsmG",tagline:"tagline_Omcq",desc:"desc_oE5c",actions:"actions_BPoi",ctaPrimary:"ctaPrimary_nzdu",arrow:"arrow_ohpH",ctaSecondary:"ctaSecondary_ioAi",ghLink:"ghLink_HXFT",stats:"stats_UghV",right:"right_YUha",window:"window_mZAp",windowBar:"windowBar_IG7S",dots:"dots_dSgu",windowTitle:"windowTitle_C7Wi",pane:"pane_IGTq",paneLabel:"paneLabel_AJ3a",code:"code_ciTM",kw:"kw_CYEt",tbl:"tbl_ICwn",divider:"divider_ybTj",dividerDot:"dividerDot_PbM6",result:"result_UYmE",resLine:"resLine_Yxvh",check:"check_W2bt",tag:"tag_bkpi",tagWarm:"tagWarm_CVvE",arrowSm:"arrowSm_NRI0"};function h(){let e=(0,n.Ay)("/img/logo.png");return(0,i.jsxs)("header",{className:t.hero,children:[(0,i.jsx)("div",{className:t.gridBg,"aria-hidden":"true"}),(0,i.jsx)("div",{className:t.glowA,"aria-hidden":"true"}),(0,i.jsx)("div",{className:t.glowB,"aria-hidden":"true"}),(0,i.jsxs)("div",{className:t.inner,children:[(0,i.jsxs)("div",{className:t.left,children:[(0,i.jsxs)("div",{className:t.badge,children:[(0,i.jsx)("span",{className:t.badgeDot}),(0,i.jsx)(d.A,{id:"homepage.hero.badge",children:"Java 8 \xb7 Druid 1.2.28 \xb7 15+ \u65B9\u8A00"})]}),(0,i.jsxs)("h1",{className:t.title,children:[(0,i.jsx)("img",{className:t.brandLogo,src:e,alt:""}),(0,i.jsx)("span",{children:"SqlParser"}),(0,i.jsx)("span",{className:t.titleGrad,children:"X"})]}),(0,i.jsx)("p",{className:t.tagline,children:(0,i.jsx)(d.A,{id:"homepage.hero.tagline",children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"})}),(0,i.jsx)("p",{className:t.desc,children:(0,i.jsx)(d.A,{id:"homepage.hero.desc",children:"SQL \u7C7B\u578B\u8BC6\u522B \xb7 \u8868\u4E0E\u5B57\u6BB5\u8840\u7F18 \xb7 \u8868/DDL \u89E3\u6790 \xb7 \u51FD\u6570\u63D0\u53D6 \xb7 \u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1"})}),(0,i.jsxs)("div",{className:t.actions,children:[(0,i.jsxs)(l.A,{className:`button button--primary button--lg ${t.ctaPrimary}`,to:"/docs/quickstart/setup",children:[(0,i.jsx)(d.A,{id:"homepage.hero.cta.primary",children:"\u5FEB\u901F\u5F00\u59CB"}),(0,i.jsx)("span",{"aria-hidden":"true",className:t.arrow,children:"\u2192"})]}),(0,i.jsx)(l.A,{className:`button button--secondary button--lg ${t.ctaSecondary}`,to:"/docs/about/introduction",children:(0,i.jsx)(d.A,{id:"homepage.hero.cta.secondary",children:"\u9879\u76EE\u4ECB\u7ECD"})}),(0,i.jsx)(l.A,{className:t.ghLink,href:"https://github.com/DTStack/SqlParserX","aria-label":"GitHub repository",children:"GitHub"})]}),(0,i.jsxs)("ul",{className:t.stats,children:[(0,i.jsxs)("li",{children:[(0,i.jsx)("strong",{children:"15"}),(0,i.jsx)("span",{children:(0,i.jsx)(d.A,{id:"homepage.hero.stat.datasource",children:"\u6570\u636E\u6E90\u65B9\u8A00"})})]}),(0,i.jsxs)("li",{children:[(0,i.jsx)("strong",{children:"6"}),(0,i.jsx)("span",{children:(0,i.jsx)(d.A,{id:"homepage.hero.stat.capability",children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B"})})]}),(0,i.jsxs)("li",{children:[(0,i.jsx)("strong",{children:"2"}),(0,i.jsx)("span",{children:(0,i.jsx)(d.A,{id:"homepage.hero.stat.layer",children:"\u5C42\u7EDF\u4E00\u67B6\u6784"})})]}),(0,i.jsxs)("li",{children:[(0,i.jsx)("strong",{children:"100%"}),(0,i.jsx)("span",{children:(0,i.jsx)(d.A,{id:"homepage.hero.stat.compat",children:"Java 8 \u517C\u5BB9"})})]})]})]}),(0,i.jsx)("div",{className:t.right,children:(0,i.jsxs)("div",{className:t.window,children:[(0,i.jsxs)("div",{className:t.windowBar,children:[(0,i.jsxs)("span",{className:t.dots,children:[(0,i.jsx)("i",{}),(0,i.jsx)("i",{}),(0,i.jsx)("i",{})]}),(0,i.jsx)("span",{className:t.windowTitle,children:"LineagePreview"})]}),(0,i.jsxs)("div",{className:t.pane,children:[(0,i.jsx)("div",{className:t.paneLabel,children:(0,i.jsx)(d.A,{id:"homepage.hero.pane.input",children:"SQL \u8F93\u5165"})}),(0,i.jsxs)("div",{className:t.code,children:[(0,i.jsxs)("div",{className:t.line,children:[(0,i.jsx)("span",{className:t.kw,children:"INSERT INTO"})," ",(0,i.jsx)("span",{className:t.tbl,children:"dwd.order_di"})]}),(0,i.jsxs)("div",{className:t.line,children:[(0,i.jsx)("span",{className:t.kw,children:"SELECT"})," o.id, u.name, o.amount"]}),(0,i.jsxs)("div",{className:t.line,children:[(0,i.jsx)("span",{className:t.kw,children:"FROM"})," ods.orders o"]}),(0,i.jsxs)("div",{className:t.line,children:[(0,i.jsx)("span",{className:t.kw,children:"JOIN"})," ods.users u"," ",(0,i.jsx)("span",{className:t.kw,children:"ON"})," o.uid = u.id;"]})]})]}),(0,i.jsxs)("div",{className:t.divider,children:[(0,i.jsx)("span",{className:t.dividerDot}),(0,i.jsx)(d.A,{id:"homepage.hero.pane.output",children:"\u89E3\u6790\u7ED3\u679C"})]}),(0,i.jsx)("div",{className:t.pane,children:(0,i.jsxs)("div",{className:t.result,children:[(0,i.jsxs)("div",{className:t.resLine,children:[(0,i.jsx)("span",{className:t.check,children:"\u2713"}),(0,i.jsx)("span",{className:t.tag,children:(0,i.jsx)(d.A,{id:"homepage.hero.tag.table",children:"\u8868\u8840\u7F18"})}),"ods.orders ",(0,i.jsx)("span",{className:t.arrowSm,children:"\u2192"})," ","dwd.order_di"]}),(0,i.jsxs)("div",{className:t.resLine,children:[(0,i.jsx)("span",{className:t.check,children:"\u2713"}),(0,i.jsx)("span",{className:t.tag,children:"\u8868\u8840\u7F18"}),"ods.users ",(0,i.jsx)("span",{className:t.arrowSm,children:"\u2192"})," ","dwd.order_di"]}),(0,i.jsxs)("div",{className:t.resLine,children:[(0,i.jsx)("span",{className:t.check,children:"\u2713"}),(0,i.jsx)("span",{className:t.tagWarm,children:(0,i.jsx)(d.A,{id:"homepage.hero.tag.field",children:"\u5B57\u6BB5\u8840\u7F18"})}),"ods.orders.amount ",(0,i.jsx)("span",{className:t.arrowSm,children:"\u2192"})," ","dwd.order_di.amount"]})]})})]})})]})]})}let o=[["mysql","MySQL"],["hive","Hive"],["doris","Doris"],["starrocks","StarRocks"],["clickhouse","ClickHouse"],["oracle","Oracle"],["postgresql","PostgreSQL"],["spark","Spark"],[null,"Trino"],[null,"DM"],["oceanbase","OceanBase"],[null,"OceanBase Oracle"],["sqlserver","SQL Server"],["greenplum","Greenplum"],["tidb","TiDB"]];function m(){let e=(0,n.Ay)("/");return(0,i.jsxs)("section",{className:"section_eBTT",children:[(0,i.jsx)("p",{className:"lead_wHuz",children:(0,i.jsx)(d.A,{id:"homepage.datasource.lead",children:"\u5DF2\u9002\u914D 15+ \u6570\u636E\u6E90\u65B9\u8A00"})}),(0,i.jsx)("div",{className:"row_w6Q8",children:o.map(([s,a])=>(0,i.jsxs)("div",{className:"item_Mtdw",title:a,children:[s?(0,i.jsx)("img",{src:`${e}img/datasource/${s}.png`,alt:"",loading:"lazy"}):(0,i.jsx)("span",{className:"fallbackIcon_XJXT","aria-hidden":"true",children:"\u25C6"}),(0,i.jsx)("span",{children:a})]},s))})]})}let x="iconAccent_kca4";function j({type:e}){let s={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0};return"type"===e?(0,i.jsxs)("svg",{...s,children:[(0,i.jsx)("path",{d:"M5 3h10l4 4v14H5zM15 3v5h4M8 12h8M8 16h5"}),(0,i.jsx)("path",{className:x,d:"m8 8 1.5 1.5L12 7"})]}):"structure"===e?(0,i.jsxs)("svg",{...s,children:[(0,i.jsx)("ellipse",{cx:"12",cy:"5",rx:"8",ry:"3"}),(0,i.jsx)("path",{d:"M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"}),(0,i.jsx)("path",{className:x,d:"M8 9h8"})]}):"tableLineage"===e?(0,i.jsxs)("svg",{...s,children:[(0,i.jsx)("rect",{x:"2.5",y:"8.5",width:"6",height:"7",rx:"1.5"}),(0,i.jsx)("rect",{x:"15.5",y:"3",width:"6",height:"7",rx:"1.5"}),(0,i.jsx)("rect",{x:"15.5",y:"14",width:"6",height:"7",rx:"1.5"}),(0,i.jsx)("path",{className:x,d:"M8.5 12H12V6.5h3.5M12 12v5.5h3.5"})]}):"columnLineage"===e?(0,i.jsxs)("svg",{...s,children:[(0,i.jsx)("rect",{x:"2",y:"3",width:"7",height:"18",rx:"1.5"}),(0,i.jsx)("rect",{x:"15",y:"3",width:"7",height:"18",rx:"1.5"}),(0,i.jsx)("path",{d:"M4.5 7h2M4.5 11h2M17.5 7h2M17.5 11h2M17.5 15h2"}),(0,i.jsx)("path",{className:x,d:"M6.5 15h4l3-6h3M14 7l2.5 2L14 11"})]}):"function"===e?(0,i.jsxs)("svg",{...s,children:[(0,i.jsx)("path",{d:"M10.5 4.5c-2.2 0-3.4 1.25-3.85 3.75L5.3 16c-.42 2.35-1.45 3.5-3.3 3.5M4.5 11.5h6"}),(0,i.jsx)("path",{className:x,d:"M14 8.5l3 3.5-3 3.5M22 8.5l-3 3.5 3 3.5"})]}):(0,i.jsxs)("svg",{...s,children:[(0,i.jsx)("path",{d:"M7 3H5a2 2 0 0 0-2 2v4l-2 3 2 3v4a2 2 0 0 0 2 2h2M17 3h2a2 2 0 0 1 2 2v4l2 3-2 3v4a2 2 0 0 1-2 2h-2"}),(0,i.jsx)("path",{className:x,d:"M9 8h6M9 12h6M9 16h6"})]})}let p=[{icon:"type",key:"type",titleId:"homepage.feature.type.title",title:"SQL \u7C7B\u578B\u8BC6\u522B",descId:"homepage.feature.type.desc",desc:"\u8BC6\u522B\u67E5\u8BE2\u3001\u5199\u5165\u3001\u5EFA\u8868\u3001SHOW \u4E0E EXPLAIN \u7B49\u8BED\u53E5\u7C7B\u578B\u3002"},{icon:"structure",key:"table",titleId:"homepage.feature.table.title",title:"\u771F\u5B9E\u8868\u4E0E\u5EFA\u8868\u7ED3\u6784",descId:"homepage.feature.table.desc",desc:"\u7A7F\u900F JOIN\u3001CTE \u4E0E\u5B50\u67E5\u8BE2\uFF0C\u89E3\u6790\u5B57\u6BB5\u3001\u952E\u3001\u5206\u533A\u53CA\u5206\u6876\u7ED3\u6784\u3002"},{icon:"tableLineage",key:"tableLineage",titleId:"homepage.feature.tableLineage.title",title:"\u8868\u7EA7\u8840\u7F18",descId:"homepage.feature.tableLineage.desc",desc:"\u4ECE INSERT \u4E0E CTAS \u8FFD\u6EAF\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u6570\u636E\u6D41\u8F6C\u5173\u7CFB\u3002"},{icon:"columnLineage",key:"columnLineage",titleId:"homepage.feature.columnLineage.title",title:"\u5B57\u6BB5\u7EA7\u8840\u7F18",descId:"homepage.feature.columnLineage.desc",desc:"\u5206\u6790\u8868\u8FBE\u5F0F\u3001\u51FD\u6570\u4E0E CASE \u4E2D\u6765\u6E90\u5B57\u6BB5\u5230\u76EE\u6807\u5B57\u6BB5\u7684\u6620\u5C04\u3002"},{icon:"function",key:"function",titleId:"homepage.feature.function.title",title:"\u51FD\u6570\u540D\u63D0\u53D6",descId:"homepage.feature.function.desc",desc:"\u63D0\u53D6\u666E\u901A\u3001\u805A\u5408\u4E0E\u7A97\u53E3\u51FD\u6570\u540D\u79F0\uFF0C\u652F\u6301\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u53BB\u91CD\u3002"},{icon:"parameter",key:"parameter",titleId:"homepage.feature.parameter.title",title:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",descId:"homepage.feature.parameter.desc",desc:"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\uFF0C\u751F\u6210 JDBC \u5360\u4F4D\u7B26 SQL \u4E0E\u6709\u5E8F\u7ED1\u5B9A\u503C\u3002"}];function g(){return(0,i.jsxs)("section",{className:"section_R2J0",children:[(0,i.jsxs)("div",{className:"header_nMSq",children:[(0,i.jsx)("span",{className:"eyebrow_KQpq",children:(0,i.jsx)(d.A,{id:"homepage.features.eyebrow",children:"\u6838\u5FC3\u80FD\u529B"})}),(0,i.jsx)("h2",{className:"heading_fnW7",children:(0,i.jsx)(d.A,{id:"homepage.features.heading",children:"\u4E00\u4E2A\u5F15\u64CE\uFF0C\u8986\u76D6 SQL \u89E3\u6790\u5168\u94FE\u8DEF"})}),(0,i.jsx)("p",{className:"subheading_cJ8g",children:(0,i.jsx)(d.A,{id:"homepage.features.subheading",children:"\u4ECE\u65B9\u8A00\u8BED\u6CD5\u5230\u4E1A\u52A1\u8BED\u4E49\uFF0C\u7EDF\u4E00\u5951\u7EA6\u3001\u7EDF\u4E00\u7ED3\u679C\uFF0C\u5F00\u7BB1\u5373\u7528\u3002"})})]}),(0,i.jsx)("div",{className:"grid_vg4X",children:p.map(e=>(0,i.jsxs)("article",{className:"card_ooQ2",children:[(0,i.jsx)("div",{className:"iconWrap_ISBW",children:(0,i.jsx)(j,{type:e.icon})}),(0,i.jsx)("h3",{className:"cardTitle_FpVF",children:(0,i.jsx)(d.A,{id:e.titleId,children:e.title})}),(0,i.jsx)("p",{className:"cardDesc_Hcpx",children:(0,i.jsx)(d.A,{id:e.descId,children:e.desc})})]},e.key))})]})}let u="row_mLVB",N="info_rZXn",v="eyebrow_cIXQ",_="title_ULaK",b="desc_yXFq",w="showcase_mNzI",y=[{id:"homepage.case.step1",label:"\u63A5\u5165 SQL + DbType"},{id:"homepage.case.step2",label:"\u8BED\u6CD5\u5C42\u89E3\u6790\u4E3A Druid AST"},{id:"homepage.case.step3",label:"\u4E1A\u52A1\u5C42\u7EDF\u4E00\u89E3\u6790"},{id:"homepage.case.step4",label:"\u8868 / \u8840\u7F18 / \u51FD\u6570 / \u53C2\u6570\u89E3\u6790\u7ED3\u679C"}];function A(){let e=(0,n.Ay)("/");return(0,i.jsxs)("section",{className:"section_XM3Q",children:[(0,i.jsxs)("div",{className:u,children:[(0,i.jsxs)("div",{className:N,children:[(0,i.jsx)("span",{className:v,children:(0,i.jsx)(d.A,{id:"homepage.case.arch.eyebrow",children:"\u67B6\u6784\u8BBE\u8BA1"})}),(0,i.jsx)("h3",{className:_,children:(0,i.jsx)(d.A,{id:"homepage.case.arch.title",children:"\u4E24\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784"})}),(0,i.jsx)("p",{className:b,children:(0,i.jsx)(d.A,{id:"homepage.case.arch.desc",children:"\u8BED\u6CD5\u5C42\u57FA\u4E8E Druid \u6269\u5C55\u65B9\u8A00 Lexer / Parser / AST\uFF0C\u4E1A\u52A1\u5C42\u901A\u8FC7 ISqlParser \u5951\u7EA6\u6269\u5C55\u8868\u89E3\u6790\u3001\u8840\u7F18\u4E0E\u6539\u5199\u903B\u8F91\uFF0C\u4E24\u5C42\u7531 DbType \u4E0E AST \u5BF9\u9F50\u3002"})}),(0,i.jsx)("ol",{className:"steps_EEbF",children:y.map((e,s)=>(0,i.jsxs)("li",{className:"step_eGvK",children:[(0,i.jsx)("span",{className:"stepNo_MhRk",children:s+1}),(0,i.jsx)(d.A,{id:e.id,children:e.label})]},e.id))})]}),(0,i.jsx)("div",{className:w,children:(0,i.jsx)("img",{src:`${e}img/architecture/SqlParserX\u{4E24}\u{5C42}\u{67B6}\u{6784}.png`,alt:"SqlParserX \u4E24\u5C42\u67B6\u6784",loading:"lazy"})})]}),(0,i.jsxs)("div",{className:`${u} reverse_tY76`,children:[(0,i.jsxs)("div",{className:N,children:[(0,i.jsx)("span",{className:v,children:(0,i.jsx)(d.A,{id:"homepage.case.docs.eyebrow",children:"\u6587\u6863\u7AD9"})}),(0,i.jsx)("h3",{className:_,children:(0,i.jsx)(d.A,{id:"homepage.case.version.title",children:"\u7248\u672C / \u591A\u8BED\u8A00\u5171\u5B58"})}),(0,i.jsx)("p",{className:b,children:(0,i.jsx)(d.A,{id:"homepage.case.version.desc",children:"\u53F3\u4FA7\u5BFC\u822A\u680F\u5373\u53EF\u5207\u6362\u7248\u672C\uFF081.0 / Next\uFF09\u4E0E\u8BED\u8A00\uFF08\u7B80\u4F53\u4E2D\u6587 / English\uFF09\uFF0C\u4E92\u4E0D\u5E72\u6270\u3002"})})]}),(0,i.jsx)("div",{className:w,children:(0,i.jsx)("img",{src:`${e}img/case/version.svg`,alt:"version",loading:"lazy"})})]})]})}function L(){return(0,i.jsx)("section",{className:"band_iMg9",children:(0,i.jsxs)("div",{className:"inner_s1W7",children:[(0,i.jsx)("h2",{className:"title_Xeao",children:(0,i.jsx)(d.A,{id:"homepage.cta.title",children:"\u51C6\u5907\u597D\u5F00\u59CB\u89E3\u6790\u4F60\u7684 SQL \u4E86\u5417\uFF1F"})}),(0,i.jsx)("p",{className:"desc_fTY7",children:(0,i.jsx)(d.A,{id:"homepage.cta.desc",children:"\u51E0\u5206\u949F\u5B8C\u6210\u63A5\u5165\uFF0C\u4F53\u9A8C\u591A\u65B9\u8A00\u89E3\u6790\u3001\u8840\u7F18\u8FFD\u6EAF\u4E0E\u53C2\u6570\u9884\u7F16\u8BD1\u80FD\u529B\u3002"})}),(0,i.jsxs)("div",{className:"actions_AcwB",children:[(0,i.jsx)(l.A,{className:"button button--lg primary_lgmO",to:"/docs/quickstart/setup",children:(0,i.jsx)(d.A,{id:"homepage.cta.primary",children:"\u5FEB\u901F\u5F00\u59CB"})}),(0,i.jsx)(l.A,{className:"button button--lg secondary_m1GY",href:"https://github.com/DTStack/SqlParserX",children:(0,i.jsx)(d.A,{id:"homepage.cta.secondary",children:"\u67E5\u770B\u6E90\u7801"})})]})]})})}function k(){let{siteConfig:e}=(0,r.A)();return(0,i.jsxs)(c.A,{title:e.title,description:e.tagline,children:[(0,i.jsx)(h,{}),(0,i.jsxs)("main",{className:"main_iUjq",children:[(0,i.jsx)(m,{}),(0,i.jsx)(g,{}),(0,i.jsx)(A,{}),(0,i.jsx)(L,{})]})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/c4f5d8e4.f9b899ea.js b/en/assets/js/c4f5d8e4.f9b899ea.js deleted file mode 100644 index 69eb714..0000000 --- a/en/assets/js/c4f5d8e4.f9b899ea.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4823"],{7641(e,s,a){a.r(s),a.d(s,{default:()=>y});var i=a(4848);a(6540);var c=a(6525),d=a(898),l=a(5310),r=a(568);let n={hero:"hero_reY0",gridBg:"gridBg_zRbt",glowA:"glowA_dnBZ",glowB:"glowB_NjYj",inner:"inner_IGGz",left:"left_uKTZ",badge:"badge_D9jF",badgeDot:"badgeDot_ycdE",title:"title_DbXn",titleGrad:"titleGrad_wsmG",tagline:"tagline_Omcq",desc:"desc_oE5c",actions:"actions_BPoi",ctaPrimary:"ctaPrimary_nzdu",arrow:"arrow_ohpH",ctaSecondary:"ctaSecondary_ioAi",ghLink:"ghLink_HXFT",stats:"stats_UghV",right:"right_YUha",window:"window_mZAp",windowBar:"windowBar_IG7S",dots:"dots_dSgu",windowTitle:"windowTitle_C7Wi",pane:"pane_IGTq",paneLabel:"paneLabel_AJ3a",code:"code_ciTM",kw:"kw_CYEt",tbl:"tbl_ICwn",divider:"divider_ybTj",dividerDot:"dividerDot_PbM6",result:"result_UYmE",resLine:"resLine_Yxvh",check:"check_W2bt",tag:"tag_bkpi",tagWarm:"tagWarm_CVvE",arrowSm:"arrowSm_NRI0"};function t(){return(0,i.jsxs)("header",{className:n.hero,children:[(0,i.jsx)("div",{className:n.gridBg,"aria-hidden":"true"}),(0,i.jsx)("div",{className:n.glowA,"aria-hidden":"true"}),(0,i.jsx)("div",{className:n.glowB,"aria-hidden":"true"}),(0,i.jsxs)("div",{className:n.inner,children:[(0,i.jsxs)("div",{className:n.left,children:[(0,i.jsxs)("div",{className:n.badge,children:[(0,i.jsx)("span",{className:n.badgeDot}),(0,i.jsx)(r.A,{id:"homepage.hero.badge",children:"Java 8 \xb7 Druid 1.2.28 \xb7 15+ \u65B9\u8A00"})]}),(0,i.jsx)("h1",{className:n.title,children:(0,i.jsx)("span",{className:n.titleGrad,children:"SqlParserX"})}),(0,i.jsx)("p",{className:n.tagline,children:(0,i.jsx)(r.A,{id:"homepage.hero.tagline",children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"})}),(0,i.jsx)("p",{className:n.desc,children:(0,i.jsx)(r.A,{id:"homepage.hero.desc",children:"\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18 \xb7 \u8868/DDL \u89E3\u6790 \xb7 \u51FD\u6570\u63D0\u53D6 \xb7 SQL \u62C6\u5206\u4E0E\u884C\u7EA7\u6743\u9650\u6539\u5199"})}),(0,i.jsxs)("div",{className:n.actions,children:[(0,i.jsxs)(l.A,{className:`button button--primary button--lg ${n.ctaPrimary}`,to:"/docs/quickstart/setup",children:[(0,i.jsx)(r.A,{id:"homepage.hero.cta.primary",children:"\u5FEB\u901F\u5F00\u59CB"}),(0,i.jsx)("span",{"aria-hidden":"true",className:n.arrow,children:"\u2192"})]}),(0,i.jsx)(l.A,{className:`button button--secondary button--lg ${n.ctaSecondary}`,to:"/docs/about/introduction",children:(0,i.jsx)(r.A,{id:"homepage.hero.cta.secondary",children:"\u9879\u76EE\u4ECB\u7ECD"})}),(0,i.jsx)(l.A,{className:n.ghLink,href:"https://github.com/DTStack/SqlParserX","aria-label":"GitHub repository",children:"GitHub"})]}),(0,i.jsxs)("ul",{className:n.stats,children:[(0,i.jsxs)("li",{children:[(0,i.jsx)("strong",{children:"15+"}),(0,i.jsx)("span",{children:(0,i.jsx)(r.A,{id:"homepage.hero.stat.datasource",children:"\u6570\u636E\u6E90\u65B9\u8A00"})})]}),(0,i.jsxs)("li",{children:[(0,i.jsx)("strong",{children:"4"}),(0,i.jsx)("span",{children:(0,i.jsx)(r.A,{id:"homepage.hero.stat.capability",children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B"})})]}),(0,i.jsxs)("li",{children:[(0,i.jsx)("strong",{children:"2"}),(0,i.jsx)("span",{children:(0,i.jsx)(r.A,{id:"homepage.hero.stat.layer",children:"\u5C42\u7EDF\u4E00\u67B6\u6784"})})]}),(0,i.jsxs)("li",{children:[(0,i.jsx)("strong",{children:"100%"}),(0,i.jsx)("span",{children:(0,i.jsx)(r.A,{id:"homepage.hero.stat.compat",children:"Java 8 \u517C\u5BB9"})})]})]})]}),(0,i.jsx)("div",{className:n.right,children:(0,i.jsxs)("div",{className:n.window,children:[(0,i.jsxs)("div",{className:n.windowBar,children:[(0,i.jsxs)("span",{className:n.dots,children:[(0,i.jsx)("i",{}),(0,i.jsx)("i",{}),(0,i.jsx)("i",{})]}),(0,i.jsx)("span",{className:n.windowTitle,children:"LineagePreview"})]}),(0,i.jsxs)("div",{className:n.pane,children:[(0,i.jsx)("div",{className:n.paneLabel,children:(0,i.jsx)(r.A,{id:"homepage.hero.pane.input",children:"SQL \u8F93\u5165"})}),(0,i.jsxs)("div",{className:n.code,children:[(0,i.jsxs)("div",{className:n.line,children:[(0,i.jsx)("span",{className:n.kw,children:"INSERT INTO"})," ",(0,i.jsx)("span",{className:n.tbl,children:"dwd.order_di"})]}),(0,i.jsxs)("div",{className:n.line,children:[(0,i.jsx)("span",{className:n.kw,children:"SELECT"})," o.id, u.name, o.amount"]}),(0,i.jsxs)("div",{className:n.line,children:[(0,i.jsx)("span",{className:n.kw,children:"FROM"})," ods.orders o"]}),(0,i.jsxs)("div",{className:n.line,children:[(0,i.jsx)("span",{className:n.kw,children:"JOIN"})," ods.users u"," ",(0,i.jsx)("span",{className:n.kw,children:"ON"})," o.uid = u.id;"]})]})]}),(0,i.jsxs)("div",{className:n.divider,children:[(0,i.jsx)("span",{className:n.dividerDot}),(0,i.jsx)(r.A,{id:"homepage.hero.pane.output",children:"\u89E3\u6790\u7ED3\u679C"})]}),(0,i.jsx)("div",{className:n.pane,children:(0,i.jsxs)("div",{className:n.result,children:[(0,i.jsxs)("div",{className:n.resLine,children:[(0,i.jsx)("span",{className:n.check,children:"\u2713"}),(0,i.jsx)("span",{className:n.tag,children:(0,i.jsx)(r.A,{id:"homepage.hero.tag.table",children:"\u8868\u8840\u7F18"})}),"ods.orders ",(0,i.jsx)("span",{className:n.arrowSm,children:"\u2192"})," ","dwd.order_di"]}),(0,i.jsxs)("div",{className:n.resLine,children:[(0,i.jsx)("span",{className:n.check,children:"\u2713"}),(0,i.jsx)("span",{className:n.tag,children:"\u8868\u8840\u7F18"}),"ods.users ",(0,i.jsx)("span",{className:n.arrowSm,children:"\u2192"})," ","dwd.order_di"]}),(0,i.jsxs)("div",{className:n.resLine,children:[(0,i.jsx)("span",{className:n.check,children:"\u2713"}),(0,i.jsx)("span",{className:n.tagWarm,children:(0,i.jsx)(r.A,{id:"homepage.hero.tag.field",children:"\u5B57\u6BB5\u8840\u7F18"})}),"ods.orders.amount ",(0,i.jsx)("span",{className:n.arrowSm,children:"\u2192"})," ","dwd.order_di.amount"]})]})})]})})]})]})}var h=a(6497);let o=[["mysql","MySQL"],["doris","Doris"],["starrocks","StarRocks"],["hive","Hive"],["clickhouse","ClickHouse"],["postgresql","PostgreSQL"],["oracle","Oracle"],["sqlserver","SQL Server"],["spark","Spark"],["tidb","TiDB"],["oceanbase","OceanBase"],["greenplum","Greenplum"]];function m(){let e=(0,h.Ay)("/");return(0,i.jsxs)("section",{className:"section_eBTT",children:[(0,i.jsx)("p",{className:"lead_wHuz",children:(0,i.jsx)(r.A,{id:"homepage.datasource.lead",children:"\u5DF2\u9002\u914D 15+ \u6570\u636E\u6E90\u65B9\u8A00"})}),(0,i.jsx)("div",{className:"row_w6Q8",children:o.map(([s,a])=>(0,i.jsxs)("div",{className:"item_Mtdw",title:a,children:[(0,i.jsx)("img",{src:`${e}img/datasource/${s}.png`,alt:a,loading:"lazy"}),(0,i.jsx)("span",{children:a})]},s))})]})}let x=[{icon:"\u{1F9E9}",key:"dialect",titleId:"homepage.feature.dialect.title",title:"\u591A\u65B9\u8A00\u89E3\u6790",descId:"homepage.feature.dialect.desc",desc:"\u901A\u8FC7 DbType \u8DEF\u7531 Druid \u65B9\u8A00\uFF0C\u7EDF\u4E00 AST\uFF0C\u8986\u76D6 15+ \u6570\u636E\u6E90\u3002"},{icon:"\u{1F517}",key:"lineage",titleId:"homepage.feature.lineage.title",title:"\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18",descId:"homepage.feature.lineage.desc",desc:"\u8986\u76D6 JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u4E0E CTE \u7684\u8868\u7EA7\u4E0E\u5B57\u6BB5\u7EA7\u8840\u7F18\u3002"},{icon:"\u{1F5C2}\uFE0F",key:"table",titleId:"homepage.feature.table.title",title:"\u8868\u4E0E DDL \u89E3\u6790",descId:"homepage.feature.table.desc",desc:"\u8BC6\u522B\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u8868\u5C5E\u6027\u3002"},{icon:"\u{1F9EE}",key:"function",titleId:"homepage.feature.function.title",title:"\u51FD\u6570\u89E3\u6790",descId:"homepage.feature.function.desc",desc:"\u63D0\u53D6\u666E\u901A\u3001\u805A\u5408\u3001\u7A97\u53E3\u4E0E\u5D4C\u5957\u51FD\u6570\u53CA\u5176\u53C2\u6570\u8868\u8FBE\u5F0F\u3002"},{icon:"\u2702\uFE0F",key:"split",titleId:"homepage.feature.split.title",title:"SQL \u62C6\u5206\u4E0E\u6821\u9A8C",descId:"homepage.feature.split.desc",desc:"\u62C6\u5206\u591A\u8BED\u53E5\u811A\u672C\uFF0C\u5E76\u8FDB\u884C\u8BED\u6CD5\u6821\u9A8C\u4E0E\u884C\u7EA7\u6743\u9650\u6539\u5199\u3002"},{icon:"\u{1F3D7}\uFE0F",key:"arch",titleId:"homepage.feature.arch.title",title:"\u4E24\u5C42\u6269\u5C55\u67B6\u6784",descId:"homepage.feature.arch.desc",desc:"\u8BED\u6CD5\u5DEE\u5F02\u6269\u5C55\u5728 syntax \u5C42\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u6269\u5C55\u5728 core \u5C42\uFF0C\u6269\u5C55\u70B9\u7EDF\u4E00\u3002"}];function j(){return(0,i.jsxs)("section",{className:"section_R2J0",children:[(0,i.jsxs)("div",{className:"header_nMSq",children:[(0,i.jsx)("span",{className:"eyebrow_KQpq",children:(0,i.jsx)(r.A,{id:"homepage.features.eyebrow",children:"\u6838\u5FC3\u80FD\u529B"})}),(0,i.jsx)("h2",{className:"heading_fnW7",children:(0,i.jsx)(r.A,{id:"homepage.features.heading",children:"\u4E00\u4E2A\u5F15\u64CE\uFF0C\u8986\u76D6 SQL \u89E3\u6790\u5168\u94FE\u8DEF"})}),(0,i.jsx)("p",{className:"subheading_cJ8g",children:(0,i.jsx)(r.A,{id:"homepage.features.subheading",children:"\u4ECE\u65B9\u8A00\u8BED\u6CD5\u5230\u4E1A\u52A1\u8BED\u4E49\uFF0C\u7EDF\u4E00\u5951\u7EA6\u3001\u7EDF\u4E00\u7ED3\u679C\uFF0C\u5F00\u7BB1\u5373\u7528\u3002"})})]}),(0,i.jsx)("div",{className:"grid_vg4X",children:x.map(e=>(0,i.jsxs)("article",{className:"card_ooQ2",children:[(0,i.jsx)("div",{className:"iconWrap_ISBW",children:(0,i.jsx)("span",{className:"icon_R0VM",children:e.icon})}),(0,i.jsx)("h3",{className:"cardTitle_FpVF",children:(0,i.jsx)(r.A,{id:e.titleId,children:e.title})}),(0,i.jsx)("p",{className:"cardDesc_Hcpx",children:(0,i.jsx)(r.A,{id:e.descId,children:e.desc})})]},e.key))})]})}let p="row_mLVB",g="info_rZXn",N="eyebrow_cIXQ",u="title_ULaK",_="desc_yXFq",v="showcase_mNzI",b=[{id:"homepage.case.step1",label:"\u63A5\u5165 SQL + DbType"},{id:"homepage.case.step2",label:"\u8BED\u6CD5\u5C42\u89E3\u6790\u4E3A Druid AST"},{id:"homepage.case.step3",label:"\u4E1A\u52A1\u5C42\u7EDF\u4E00\u89E3\u6790"},{id:"homepage.case.step4",label:"\u8868 / \u8840\u7F18 / \u51FD\u6570 / \u6539\u5199\u7ED3\u679C"}];function w(){let e=(0,h.Ay)("/");return(0,i.jsxs)("section",{className:"section_XM3Q",children:[(0,i.jsxs)("div",{className:p,children:[(0,i.jsxs)("div",{className:g,children:[(0,i.jsx)("span",{className:N,children:(0,i.jsx)(r.A,{id:"homepage.case.arch.eyebrow",children:"\u67B6\u6784\u8BBE\u8BA1"})}),(0,i.jsx)("h3",{className:u,children:(0,i.jsx)(r.A,{id:"homepage.case.arch.title",children:"\u4E24\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784"})}),(0,i.jsx)("p",{className:_,children:(0,i.jsx)(r.A,{id:"homepage.case.arch.desc",children:"\u8BED\u6CD5\u5C42\u57FA\u4E8E Druid \u6269\u5C55\u65B9\u8A00 Lexer / Parser / AST\uFF0C\u4E1A\u52A1\u5C42\u901A\u8FC7 ISqlParser \u5951\u7EA6\u6269\u5C55\u8868\u89E3\u6790\u3001\u8840\u7F18\u4E0E\u6539\u5199\u903B\u8F91\uFF0C\u4E24\u5C42\u7531 DbType \u4E0E AST \u5BF9\u9F50\u3002"})}),(0,i.jsx)("ol",{className:"steps_EEbF",children:b.map((e,s)=>(0,i.jsxs)("li",{className:"step_eGvK",children:[(0,i.jsx)("span",{className:"stepNo_MhRk",children:s+1}),(0,i.jsx)(r.A,{id:e.id,children:e.label})]},e.id))})]}),(0,i.jsx)("div",{className:v,children:(0,i.jsx)("img",{src:`${e}img/architecture/SqlParserX\u{4E24}\u{5C42}\u{67B6}\u{6784}.png`,alt:"SqlParserX \u4E24\u5C42\u67B6\u6784",loading:"lazy"})})]}),(0,i.jsxs)("div",{className:`${p} reverse_tY76`,children:[(0,i.jsxs)("div",{className:g,children:[(0,i.jsx)("span",{className:N,children:(0,i.jsx)(r.A,{id:"homepage.case.docs.eyebrow",children:"\u6587\u6863\u7AD9"})}),(0,i.jsx)("h3",{className:u,children:(0,i.jsx)(r.A,{id:"homepage.case.version.title",children:"\u7248\u672C / \u591A\u8BED\u8A00\u5171\u5B58"})}),(0,i.jsx)("p",{className:_,children:(0,i.jsx)(r.A,{id:"homepage.case.version.desc",children:"\u53F3\u4FA7\u5BFC\u822A\u680F\u5373\u53EF\u5207\u6362\u7248\u672C\uFF081.0 / Next\uFF09\u4E0E\u8BED\u8A00\uFF08\u7B80\u4F53\u4E2D\u6587 / English\uFF09\uFF0C\u4E92\u4E0D\u5E72\u6270\u3002"})})]}),(0,i.jsx)("div",{className:v,children:(0,i.jsx)("img",{src:`${e}img/case/version.svg`,alt:"version",loading:"lazy"})})]})]})}function A(){return(0,i.jsx)("section",{className:"band_iMg9",children:(0,i.jsxs)("div",{className:"inner_s1W7",children:[(0,i.jsx)("h2",{className:"title_Xeao",children:(0,i.jsx)(r.A,{id:"homepage.cta.title",children:"\u51C6\u5907\u597D\u5F00\u59CB\u89E3\u6790\u4F60\u7684 SQL \u4E86\u5417\uFF1F"})}),(0,i.jsx)("p",{className:"desc_fTY7",children:(0,i.jsx)(r.A,{id:"homepage.cta.desc",children:"\u51E0\u5206\u949F\u5B8C\u6210\u63A5\u5165\uFF0C\u4F53\u9A8C\u591A\u65B9\u8A00\u8868\u89E3\u6790\u3001\u8840\u7F18\u4E0E\u51FD\u6570\u63D0\u53D6\u80FD\u529B\u3002"})}),(0,i.jsxs)("div",{className:"actions_AcwB",children:[(0,i.jsx)(l.A,{className:"button button--lg primary_lgmO",to:"/docs/quickstart/setup",children:(0,i.jsx)(r.A,{id:"homepage.cta.primary",children:"\u5FEB\u901F\u5F00\u59CB"})}),(0,i.jsx)(l.A,{className:"button button--lg secondary_m1GY",href:"https://github.com/DTStack/SqlParserX",children:(0,i.jsx)(r.A,{id:"homepage.cta.secondary",children:"\u67E5\u770B\u6E90\u7801"})})]})]})})}function y(){let{siteConfig:e}=(0,d.A)();return(0,i.jsxs)(c.A,{title:e.title,description:e.tagline,children:[(0,i.jsx)(t,{}),(0,i.jsxs)("main",{className:"main_iUjq",children:[(0,i.jsx)(m,{}),(0,i.jsx)(j,{}),(0,i.jsx)(w,{}),(0,i.jsx)(A,{})]})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/c61d1296.5cb6898e.js b/en/assets/js/c61d1296.5cb6898e.js new file mode 100644 index 0000000..8f3ca7c --- /dev/null +++ b/en/assets/js/c61d1296.5cb6898e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3224"],{9246(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>o,contentTitle:()=>a,toc:()=>c,assets:()=>l});var t=JSON.parse('{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/en/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/intro.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar_label":"Docs Guide","sidebar_position":1},"sidebar":"docs","next":{"title":"Introduction","permalink":"/SqlParserX/en/docs/about/introduction"}}'),s=r(4848),i=r(8453);let o={title:"SqlParserX Docs",description:"Entry point for the SqlParserX multi-dialect SQL parsing engine",sidebar_label:"Docs Guide",sidebar_position:1},a="Welcome to SqlParserX",l={},c=[{value:"Get Started",id:"get-started",level:2},{value:"Documentation Map",id:"documentation-map",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"welcome-to-sqlparserx",children:"Welcome to SqlParserX"})}),"\n",(0,s.jsxs)(n.p,{children:["SqlParserX is a ",(0,s.jsx)(n.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," for SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,s.jsxs)(n.p,{children:["It is built around two layers: ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," parses SQL into Druid ASTs and owns syntax extensions; ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})," consumes those ASTs through the unified ",(0,s.jsx)(n.code,{children:"ISqlParser"})," contract and produces business parsing results. ",(0,s.jsx)(n.code,{children:"sqlparserx-web"})," and ",(0,s.jsx)(n.code,{children:"sqlparserx-ui"})," provide service and visualization access."]}),"\n",(0,s.jsx)(n.h2,{id:"get-started",children:"Get Started"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u{1F680} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/quickstart/setup",children:"Quick Start"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F4D6} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/about/introduction",children:"Introduction"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F3D7}\uFE0F ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/about/architecture",children:"Architecture"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation-map",children:"Documentation Map"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"About SqlParserX"}),": project introduction and two-layer architecture"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Quick Start"}),": environment setup, build and run"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Core Parsing Capabilities"}),": SQL type detection, field lineage, table lineage, table parsing, function extraction, and parameter extraction"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Contributing"}),": how to contribute"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[":::tip Tip\nUse the navbar to switch ",(0,s.jsx)(n.strong,{children:"version"})," (",(0,s.jsx)(n.code,{children:"1.0"})," / ",(0,s.jsx)(n.code,{children:"Next"}),") and ",(0,s.jsx)(n.strong,{children:"language"})," (\u7B80\u4F53\u4E2D\u6587 / English).\n:::"]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,r){r.d(n,{R:()=>o,x:()=>a});var t=r(6540);let s={},i=t.createContext(s);function o(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/c61d1296.dae5d868.js b/en/assets/js/c61d1296.dae5d868.js deleted file mode 100644 index e03fe65..0000000 --- a/en/assets/js/c61d1296.dae5d868.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3224"],{9246(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>u,frontMatter:()=>l,contentTitle:()=>a,toc:()=>c,assets:()=>o});var s=JSON.parse('{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/en/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/intro.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar_label":"Docs Guide","sidebar_position":1},"sidebar":"docs","next":{"title":"Introduction","permalink":"/SqlParserX/en/docs/about/introduction"}}'),i=n(4848),t=n(8453);let l={title:"SqlParserX Docs",description:"Entry point for the SqlParserX multi-dialect SQL parsing engine",sidebar_label:"Docs Guide",sidebar_position:1},a="Welcome to SqlParserX",o={},c=[{value:"Get Started",id:"get-started",level:2},{value:"Documentation Map",id:"documentation-map",level:2}];function d(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"welcome-to-sqlparserx",children:"Welcome to SqlParserX"})}),"\n",(0,i.jsxs)(r.p,{children:["SqlParserX is a ",(0,i.jsx)(r.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," for table/DDL parsing, table and column lineage, function extraction, SQL splitting and row-level permission rewriting."]}),"\n",(0,i.jsxs)(r.p,{children:["It is built around two layers: ",(0,i.jsx)(r.code,{children:"sqlparserx-syntax"})," parses SQL into Druid ASTs and owns syntax extensions; ",(0,i.jsx)(r.code,{children:"sqlparserx-core"})," consumes those ASTs through the unified ",(0,i.jsx)(r.code,{children:"ISqlParser"})," contract and produces business parsing results. ",(0,i.jsx)(r.code,{children:"sqlparserx-web"})," and ",(0,i.jsx)(r.code,{children:"sqlparserx-ui"})," provide service and visualization access."]}),"\n",(0,i.jsx)(r.h2,{id:"get-started",children:"Get Started"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:["\u{1F680} ",(0,i.jsx)(r.a,{href:"/SqlParserX/en/docs/quickstart/setup",children:"Quick Start"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u{1F4D6} ",(0,i.jsx)(r.a,{href:"/SqlParserX/en/docs/about/introduction",children:"Introduction"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u{1F3D7}\uFE0F ",(0,i.jsx)(r.a,{href:"/SqlParserX/en/docs/about/architecture",children:"Architecture"})]}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"documentation-map",children:"Documentation Map"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"About SqlParserX"}),": project introduction and two-layer architecture"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"Quick Start"}),": environment setup, build and run"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"Core Parsing Capabilities"}),": field lineage, table lineage, table parsing, function parsing"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"Contributing"}),": how to contribute"]}),"\n"]}),"\n",(0,i.jsxs)(r.p,{children:[":::tip Tip\nUse the navbar to switch ",(0,i.jsx)(r.strong,{children:"version"})," (",(0,i.jsx)(r.code,{children:"1.0"})," / ",(0,i.jsx)(r.code,{children:"Next"}),") and ",(0,i.jsx)(r.strong,{children:"language"})," (\u7B80\u4F53\u4E2D\u6587 / English).\n:::"]})]})}function u(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/d611a6ba.65339341.js b/en/assets/js/d611a6ba.91ee51b6.js similarity index 88% rename from en/assets/js/d611a6ba.65339341.js rename to en/assets/js/d611a6ba.91ee51b6.js index 955dea2..346b872 100644 --- a/en/assets/js/d611a6ba.65339341.js +++ b/en/assets/js/d611a6ba.91ee51b6.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9794"],{3354(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>l,toc:()=>o,assets:()=>c});var t=JSON.parse('{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/en/docs/next/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/about/architecture.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar_label":"Architecture","sidebar_position":2},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/SqlParserX/en/docs/next/about/introduction"},"next":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/next/quickstart/setup"}}'),s=n(4848),i=n(8453);let a={title:"Architecture",description:"The two-layer unified extension architecture of SqlParserX",sidebar_label:"Architecture",sidebar_position:2},l="Two-Layer Unified Extension Architecture",c={},o=[{value:"Overall Architecture",id:"overall-architecture",level:2},{value:"Module Dependencies",id:"module-dependencies",level:2}];function d(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"two-layer-unified-extension-architecture",children:"Two-Layer Unified Extension Architecture"})}),"\n",(0,s.jsx)(r.p,{children:"The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SQL syntax layer (",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"}),")"]}),": built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SqlParserX business layer (",(0,s.jsx)(r.code,{children:"sqlparserx-core"}),")"]}),": extending table parsing, lineage and SQL rewriting per datasource through unified dialect routing, the ",(0,s.jsx)(r.code,{children:"ISqlParser"})," contract and business clients."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Both layers follow the pattern ",(0,s.jsx)(r.strong,{children:"unified entry \u2192 common base \u2192 unified extension point \u2192 datasource implementation \u2192 unified result"}),". When adding a datasource, syntax differences are extended in the Druid layer and business differences in the SqlParserX layer, aligned via ",(0,s.jsx)(r.code,{children:"DbType"})," and Druid AST."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"SqlParserX two-layer unified extension architecture",src:n(702).A+"",width:"1421",height:"1107"})}),"\n",(0,s.jsx)(r.h2,{id:"overall-architecture",children:"Overall Architecture"}),"\n",(0,s.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CBusiness parsing layer]\n direction LR\n B_ROUTE[Dialect routing<br/>SqlParserFactory]\n B_BASE[Common base<br/>ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[Extension points<br/>Dialect Client \xb7 Strategy]\n B_DIALECT[Datasource implementations<br/>MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[Unified results<br/>Table \xb7 DDL \xb7 Lineage \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSyntax parsing layer, on Druid]\n direction LR\n S_ROUTE[Dialect routing<br/>SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[Common base<br/>Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[Extension points<br/>Dialect Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[Datasource implementations<br/>MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[Unified results<br/>SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType alignment .-> S_ROUTE\n B_DIALECT -. same datasource dialect .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,s.jsx)(r.h2,{id:"module-dependencies",children:"Module Dependencies"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Business extensions follow ",(0,s.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,s.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,s.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 dialect implementations."]})]})}function u(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},702(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-en-710c1c16b39bd3885dfe50d51143759f.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9794"],{3354(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>c,toc:()=>o,assets:()=>l});var t=JSON.parse('{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/en/docs/next/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/about/architecture.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar_label":"Architecture","sidebar_position":2},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/SqlParserX/en/docs/next/about/introduction"},"next":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/next/quickstart/setup"}}'),s=n(4848),i=n(8453);let a={title:"Architecture",description:"The two-layer unified extension architecture of SqlParserX",sidebar_label:"Architecture",sidebar_position:2},c="Two-Layer Unified Extension Architecture",l={},o=[{value:"Overall Architecture",id:"overall-architecture",level:2},{value:"Module Dependencies",id:"module-dependencies",level:2}];function d(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"two-layer-unified-extension-architecture",children:"Two-Layer Unified Extension Architecture"})}),"\n",(0,s.jsx)(r.p,{children:"The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SQL syntax layer (",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"}),")"]}),": built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SqlParserX business layer (",(0,s.jsx)(r.code,{children:"sqlparserx-core"}),")"]}),": extending table parsing, lineage and SQL rewriting per datasource through unified dialect routing, the ",(0,s.jsx)(r.code,{children:"ISqlParser"})," contract and business clients."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Both layers follow the pattern ",(0,s.jsx)(r.strong,{children:"unified entry \u2192 common base \u2192 unified extension point \u2192 datasource implementation \u2192 unified result"}),". When adding a datasource, syntax differences are extended in the Druid layer and business differences in the SqlParserX layer, aligned via ",(0,s.jsx)(r.code,{children:"DbType"})," and Druid AST."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"SqlParserX two-layer unified extension architecture",src:n(702).A+"",width:"1421",height:"1107"})}),"\n",(0,s.jsx)(r.h2,{id:"overall-architecture",children:"Overall Architecture"}),"\n",(0,s.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CBusiness parsing layer]\n direction LR\n B_ROUTE[Dialect routing<br/>SqlParserFactory]\n B_BASE[Common base<br/>ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[Extension points<br/>Dialect Client \xb7 Strategy]\n B_DIALECT[Datasource implementations<br/>MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[Unified results<br/>Table \xb7 DDL \xb7 Lineage \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSyntax parsing layer, on Druid]\n direction LR\n S_ROUTE[Dialect routing<br/>SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[Common base<br/>Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[Extension points<br/>Dialect Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[Datasource implementations<br/>MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[Unified results<br/>SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType alignment .-> S_ROUTE\n B_DIALECT -. same datasource dialect .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,s.jsx)(r.h2,{id:"module-dependencies",children:"Module Dependencies"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Business extensions follow ",(0,s.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,s.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,s.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 dialect implementations."]})]})}function u(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},702(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-en-710c1c16b39bd3885dfe50d51143759f.png"},8453(e,r,n){n.d(r,{R:()=>a,x:()=>c});var t=n(6540);let s={},i=t.createContext(s);function a(e){let r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/dae5e6b9.4ce7d350.js b/en/assets/js/dae5e6b9.4ce7d350.js new file mode 100644 index 0000000..a151ab8 --- /dev/null +++ b/en/assets/js/dae5e6b9.4ce7d350.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1811"],{9721(e,r,t){t.r(r),t.d(r,{metadata:()=>a,default:()=>p,frontMatter:()=>i,contentTitle:()=>o,toc:()=>c,assets:()=>l});var a=JSON.parse('{"id":"core/parameter-compile","title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/en/docs/next/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/parameter-compile.md","tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","sidebar_label":"Parameter Extraction","sidebar_position":6},"sidebar":"docs","previous":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/next/core/function-parse"},"next":{"title":"Contributing","permalink":"/SqlParserX/en/docs/next/contributing"}}'),n=t(4848),s=t(8453);let i={title:"Parameter Extraction and Prepared SQL",description:"Extract dynamic SELECT parameters and build JDBC prepared SQL",sidebar_label:"Parameter Extraction",sidebar_position:6},o="Parameter Extraction and Prepared SQL",l={},c=[];function d(e){let r={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"parameter-extraction-and-prepared-sql",children:"Parameter Extraction and Prepared SQL"})}),"\n",(0,n.jsxs)(r.p,{children:["SqlParserX extracts ",(0,n.jsx)(r.code,{children:"${variable}"})," expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ",(0,n.jsx)(r.code,{children:"?"})," placeholders and an ordered binding list."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\n\nMap<String, Object> values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,n.jsx)(r.p,{children:"The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined."})]})}function p(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453(e,r,t){t.d(r,{R:()=>i,x:()=>o});var a=t(6540);let n={},s=a.createContext(n);function i(e){let r=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),a.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e539d78b.e0feac5b.js b/en/assets/js/e539d78b.e0feac5b.js new file mode 100644 index 0000000..b26d737 --- /dev/null +++ b/en/assets/js/e539d78b.e0feac5b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5301"],{8432(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>o,assets:()=>d});var t=JSON.parse('{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/field-lineage.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar_label":"Field Lineage","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/next/core/sql-type"},"next":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage"}}'),s=r(4848),l=r(8453);let a={title:"Field Lineage",description:"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL",sidebar_label:"Field Lineage",sidebar_position:1},i="Field Lineage",d={},o=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function c(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"field-lineage",children:"Field Lineage"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"complete runnable"})," class from parser creation to printing column lineage, using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Metadata: table -> columns (used for select * / column expansion)\n Map<String, List<Column>> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3. Parse column lineage\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4. Print result: target table + target column -> source column\n System.out.println("target table: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"target table: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Derive ",(0,s.jsx)(n.strong,{children:"source table.column \u2192 target table.column"})," column-level lineage from SQL."]}),"\n",(0,s.jsxs)(n.p,{children:["The core idea: normalize the source select field list and target field list into sets of ",(0,s.jsx)(n.code,{children:"(real column, alias, real table)"})," triples, then generate lineage by fixed matching rules. Field lineage takes insert/create-table SQL as input; pure query SQL produces no lineage."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 target column list + source select column list\n \u2192 addColumnRelations match one by one\n \u2192 ColumnLineageResult\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,s.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"ColumnLineageResult"})," (",(0,s.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,s.jsx)(n.code,{children:"getColumnLineages()"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Applicable"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"SQLInsertStatement"}),", ",(0,s.jsx)(n.code,{children:"SQLCreateTableStatement"})," (AS SELECT)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Metadata input"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Map<String, List<Column>> tableColumnsMap"})})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"catalog.db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Multi-catalog scenarios such as Hive/Trino/StarRocks"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Standard MySQL/PostgreSQL usage"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:["Column expressions (",(0,s.jsx)(n.code,{children:"SQLBinaryOpExpr"}),")"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"t5.level + 1"}),", recursively collect columns"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"*"})," / ",(0,s.jsx)(n.code,{children:"xx.*"})," expansion"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["Read from metadata ",(0,s.jsx)(n.code,{children:"tableColumnsMap"}),"; keep ",(0,s.jsx)(n.code,{children:"*"})," without metadata"]})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>a,x:()=>i});var t=r(6540);let s={},l=t.createContext(s);function a(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e539d78b.f200a967.js b/en/assets/js/e539d78b.f200a967.js deleted file mode 100644 index e14fc0e..0000000 --- a/en/assets/js/e539d78b.f200a967.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5301"],{8432(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>o,assets:()=>d});var s=JSON.parse('{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/field-lineage.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar_label":"Field Lineage","sidebar_position":1},"sidebar":"docs","previous":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/next/quickstart/setup"},"next":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage"}}'),t=r(4848),l=r(8453);let a={title:"Field Lineage",description:"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL",sidebar_label:"Field Lineage",sidebar_position:1},i="Field Lineage",d={},o=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function c(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"field-lineage",children:"Field Lineage"})}),"\n",(0,t.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,t.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,t.jsxs)(n.p,{children:["A ",(0,t.jsx)(n.strong,{children:"complete runnable"})," class from parser creation to printing column lineage, using the official ",(0,t.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Metadata: table -> columns (used for select * / column expansion)\n Map<String, List<Column>> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3. Parse column lineage\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4. Print result: target table + target column -> source column\n System.out.println("target table: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,t.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"target table: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,t.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,t.jsxs)(n.p,{children:["Derive ",(0,t.jsx)(n.strong,{children:"source table.column \u2192 target table.column"})," column-level lineage from SQL."]}),"\n",(0,t.jsxs)(n.p,{children:["The core idea: normalize the source select field list and target field list into sets of ",(0,t.jsx)(n.code,{children:"(real column, alias, real table)"})," triples, then generate lineage by fixed matching rules. Field lineage takes insert/create-table SQL as input; pure query SQL produces no lineage."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 target column list + source select column list\n \u2192 addColumnRelations match one by one\n \u2192 ColumnLineageResult\n"})}),"\n",(0,t.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Item"}),(0,t.jsx)(n.th,{children:"Content"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Core entry"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Default impl"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,t.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Return type"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"ColumnLineageResult"})," (",(0,t.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,t.jsx)(n.code,{children:"getColumnLineages()"}),")"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Applicable"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"SQLInsertStatement"}),", ",(0,t.jsx)(n.code,{children:"SQLCreateTableStatement"})," (AS SELECT)"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Metadata input"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"Map<String, List<Column>> tableColumnsMap"})})]})]})]}),"\n",(0,t.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Capability"}),(0,t.jsx)(n.th,{children:"Status"}),(0,t.jsx)(n.th,{children:"Notes"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"catalog.db.table.column"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsx)(n.td,{children:"Multi-catalog scenarios such as Hive/Trino/StarRocks"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"db.table.column"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsx)(n.td,{children:"Standard MySQL/PostgreSQL usage"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:["Column expressions (",(0,t.jsx)(n.code,{children:"SQLBinaryOpExpr"}),")"]}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsxs)(n.td,{children:["e.g. ",(0,t.jsx)(n.code,{children:"t5.level + 1"}),", recursively collect columns"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"*"})," / ",(0,t.jsx)(n.code,{children:"xx.*"})," expansion"]}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsxs)(n.td,{children:["Read from metadata ",(0,t.jsx)(n.code,{children:"tableColumnsMap"}),"; keep ",(0,t.jsx)(n.code,{children:"*"})," without metadata"]})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/e65be245.f35e9887.js b/en/assets/js/e65be245.f35e9887.js new file mode 100644 index 0000000..045af06 --- /dev/null +++ b/en/assets/js/e65be245.f35e9887.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3080"],{1090(e,t,s){s.r(t),s.d(t,{metadata:()=>r,default:()=>d,frontMatter:()=>a,contentTitle:()=>o,toc:()=>l,assets:()=>c});var r=JSON.parse('{"id":"core/sql-type","title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/en/docs/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/sql-type.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","sidebar_label":"SQL Type Detection","sidebar_position":1},"sidebar":"docs","previous":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/quickstart/setup"},"next":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/core/field-lineage"}}'),n=s(4848),i=s(8453);let a={title:"SQL Type Detection",description:"Detect the business SQL type from the parsed syntax tree",sidebar_label:"SQL Type Detection",sidebar_position:1},o="SQL Type Detection",c={},l=[];function p(e){let t={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"sql-type-detection",children:"SQL Type Detection"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"parseSqlType"})," parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified ",(0,n.jsx)(t.code,{children:"SqlType"}),". It can drive statement routing, audit classification, and execution policies."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,n.jsxs)(t.p,{children:["The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns ",(0,n.jsx)(t.code,{children:"OTHER"}),"; syntax support still depends on the selected dialect."]})]})}function d(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},8453(e,t,s){s.d(t,{R:()=>a,x:()=>o});var r=s(6540);let n={},i=r.createContext(n);function a(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/f798a39c.092b30b6.js b/en/assets/js/f798a39c.092b30b6.js deleted file mode 100644 index eaf9b3a..0000000 --- a/en/assets/js/f798a39c.092b30b6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7266"],{264(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>c,contentTitle:()=>d,toc:()=>l,assets:()=>a});var s=JSON.parse('{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/en/docs/next/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/function-parse.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar_label":"Function Parsing","sidebar_position":4},"sidebar":"docs","previous":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/next/core/table-parse"},"next":{"title":"Contributing","permalink":"/SqlParserX/en/docs/next/contributing"}}'),t=r(4848),i=r(8453);let c={title:"Function Parsing",description:"Extract functions, arguments and contexts used in SQL",sidebar_label:"Function Parsing",sidebar_position:4},d="Function Parsing",a={},l=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"function-parsing",children:"Function Parsing"})}),"\n",(0,t.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,t.jsxs)(n.blockquote,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,t.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,t.jsxs)(n.p,{children:["Using the official ",(0,t.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL to extract the set of functions:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse functions used in the SQL\n Set<String> functions = parser.parseFunction(sql);\n\n // 3. Read the result\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,t.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"functions: [sum, count]\n"})}),"\n",(0,t.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,t.jsxs)(n.p,{children:["Extract ",(0,t.jsx)(n.strong,{children:"function calls"})," from SQL as a de-duplicated set of function names for function-level governance and dependency analysis."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 traverse AST to collect function expressions\n \u2192 Set<String> functions\n"})}),"\n",(0,t.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Item"}),(0,t.jsx)(n.th,{children:"Content"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Core entry"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Default impl"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Return type"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"Set<String>"})," (function names, lower-cased)"]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Coverage"}),(0,t.jsx)(n.td,{children:"built-in, aggregate, window, custom functions"})]})]})]}),"\n",(0,t.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Capability"}),(0,t.jsx)(n.th,{children:"Status"}),(0,t.jsx)(n.th,{children:"Notes"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Regular function calls"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsxs)(n.td,{children:["e.g. ",(0,t.jsx)(n.code,{children:"substr(name, 1, 3)"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Aggregate functions"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsxs)(n.td,{children:["e.g. ",(0,t.jsx)(n.code,{children:"sum"}),", ",(0,t.jsx)(n.code,{children:"count"}),", ",(0,t.jsx)(n.code,{children:"max"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Window functions"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsxs)(n.td,{children:["e.g. ",(0,t.jsx)(n.code,{children:"row_number() over(...)"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Nested functions"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.strong,{children:"Supported \u2705"})}),(0,t.jsx)(n.td,{children:"Recursively collect inner and outer functions"})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file diff --git a/en/assets/js/f798a39c.3ca9474b.js b/en/assets/js/f798a39c.3ca9474b.js new file mode 100644 index 0000000..b51b4cb --- /dev/null +++ b/en/assets/js/f798a39c.3ca9474b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7266"],{264(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>c,contentTitle:()=>d,toc:()=>a,assets:()=>o});var t=JSON.parse('{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/en/docs/next/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/function-parse.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar_label":"Function Parsing","sidebar_position":4},"sidebar":"docs","previous":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/next/core/table-parse"},"next":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/next/core/parameter-compile"}}'),s=r(4848),i=r(8453);let c={title:"Function Parsing",description:"Extract functions, arguments and contexts used in SQL",sidebar_label:"Function Parsing",sidebar_position:4},d="Function Parsing",o={},a=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function l(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"function-parsing",children:"Function Parsing"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"<dependency>\n <groupId>com.dtstack</groupId>\n <artifactId>sqlparserx-core</artifactId>\n <version>1.0-SNAPSHOT</version>\n</dependency>\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["Using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL to extract the set of functions:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse functions used in the SQL\n Set<String> functions = parser.parseFunction(sql);\n\n // 3. Read the result\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"functions: [sum, count]\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Extract ",(0,s.jsx)(n.strong,{children:"function calls"})," from SQL as a de-duplicated set of function names for function-level governance and dependency analysis."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 traverse AST to collect function expressions\n \u2192 Set<String> functions\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Set<String>"})," (function names, lower-cased)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Coverage"}),(0,s.jsx)(n.td,{children:"built-in, aggregate, window, custom functions"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Regular function calls"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"substr(name, 1, 3)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Aggregate functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"sum"}),", ",(0,s.jsx)(n.code,{children:"count"}),", ",(0,s.jsx)(n.code,{children:"max"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Window functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"row_number() over(...)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Nested functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Recursively collect inner and outer functions"})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453(e,n,r){r.d(n,{R:()=>c,x:()=>d});var t=r(6540);let s={},i=t.createContext(s);function c(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/main.44f4b7b8.js b/en/assets/js/main.6ef13e00.js similarity index 61% rename from en/assets/js/main.44f4b7b8.js rename to en/assets/js/main.6ef13e00.js index a3f0e4d..44aabd3 100644 --- a/en/assets/js/main.44f4b7b8.js +++ b/en/assets/js/main.6ef13e00.js @@ -1,4 +1,4 @@ -(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1889"],{7612(e,t,n){"use strict";n.r(t)},6464(e,t,n){"use strict";n.r(t)},6448(e,t,n){"use strict";n.r(t)},3328(e,t,n){"use strict";n.d(t,{AO:()=>f,yJ:()=>p,sC:()=>C,TM:()=>_,zR:()=>w});var r=n(8168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}let i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var g=i.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o,l,s,u,c,d;"string"==typeof e?(s="",u="",-1!==(c=(l=e||"/").indexOf("#"))&&(u=l.substr(c),l=l.substr(0,c)),-1!==(d=l.indexOf("?"))&&(s=l.substr(d),l=l.substr(0,d)),(o={pathname:l,search:"?"===s?"":s,hash:"#"===u?"":u}).state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(e){if(e instanceof URIError)throw URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.');throw e}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function g(){var e=null,t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter(function(e){return e!==r})}},notifyListeners:function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach(function(e){return e.apply(void 0,n)})}}}var m=!!("u">typeof window&&window.document&&window.document.createElement);function h(e,t){t(window.confirm(e))}var y="popstate",b="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),m||(0,l.A)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=-1!==window.navigator.userAgent.indexOf("Trident"),i=e,u=i.forceRefresh,w=void 0!==u&&u,S=i.getUserConfirmation,k=void 0===S?h:S,x=i.keyLength,E=void 0===x?6:x,T=e.basename?d(s(e.basename)):"";function _(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return T&&(o=c(o,T)),p(o,r,n)}function A(){return Math.random().toString(36).substr(2,E)}var C=g();function P(e){(0,r.A)(U,e),U.length=n.length,C.notifyListeners(U.location,U.action)}function N(e){(void 0!==e.state||-1!==navigator.userAgent.indexOf("CriOS"))&&I(_(e.state))}function O(){I(_(v()))}var L=!1;function I(e){L?(L=!1,P()):C.confirmTransitionTo(e,"POP",k,function(t){var n,r,a,o,i;t?P({action:"POP",location:e}):(n=e,r=U.location,-1===(a=j.indexOf(r.key))&&(a=0),-1===(o=j.indexOf(n.key))&&(o=0),(i=a-o)&&(L=!0,F(i)))})}var R=_(v()),j=[R.key];function D(e){return T+f(e)}function F(e){n.go(e)}var M=0;function z(e){1===(M+=e)&&1===e?(window.addEventListener(y,N),o&&window.addEventListener(b,O)):0===M&&(window.removeEventListener(y,N),o&&window.removeEventListener(b,O))}var B=!1,U={length:n.length,action:"POP",location:R,createHref:D,push:function(e,t){var r="PUSH",o=p(e,t,A(),U.location);C.confirmTransitionTo(o,r,k,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=j.indexOf(U.location.key),u=j.slice(0,s+1);u.push(o.key),j=u,P({action:r,location:o})}else window.location.href=t}})},replace:function(e,t){var r="REPLACE",o=p(e,t,A(),U.location);C.confirmTransitionTo(o,r,k,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=j.indexOf(U.location.key);-1!==s&&(j[s]=o.key),P({action:r,location:o})}else window.location.replace(t)}})},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=C.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=C.appendListener(e);return z(1),function(){z(-1),t()}}};return U}var S="hashchange",k={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function x(e){var t=e.indexOf("#");return -1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return -1===t?"":e.substring(t+1)}function T(e){window.location.replace(x(window.location.href)+"#"+e)}function _(e){void 0===e&&(e={}),m||(0,l.A)(!1);var t=window.history;window.navigator.userAgent.indexOf("Firefox");var n=e,a=n.getUserConfirmation,o=void 0===a?h:a,i=n.hashType,u=e.basename?d(s(e.basename)):"",y=k[void 0===i?"slash":i],b=y.encodePath,v=y.decodePath;function w(){var e=v(E());return u&&(e=c(e,u)),p(e)}var _=g();function A(e){(0,r.A)(z,e),z.length=t.length,_.notifyListeners(z.location,z.action)}var C=!1,P=null;function N(){var e=E(),t=b(e);if(e!==t)T(t);else{var n,r=w(),a=z.location;if(!C&&a.pathname===r.pathname&&a.search===r.search&&a.hash===r.hash||P===f(r))return;P=null,n=r,C?(C=!1,A()):_.confirmTransitionTo(n,"POP",o,function(e){var t,r,a,o,i;e?A({action:"POP",location:n}):(t=n,r=z.location,-1===(a=R.lastIndexOf(f(r)))&&(a=0),-1===(o=R.lastIndexOf(f(t)))&&(o=0),(i=a-o)&&(C=!0,j(i)))})}}var O=E(),L=b(O);O!==L&&T(L);var I=w(),R=[f(I)];function j(e){t.go(e)}var D=0;function F(e){1===(D+=e)&&1===e?window.addEventListener(S,N):0===D&&window.removeEventListener(S,N)}var M=!1,z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=x(window.location.href)),n+"#"+b(u+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);_.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=b(u+t);if(E()!==a){P=t,window.location.hash=a;var o=R.lastIndexOf(f(z.location)),i=R.slice(0,o+1);i.push(t),R=i,A({action:n,location:r})}else A()}})},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);_.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=b(u+t);E()!==a&&(P=t,T(a));var o=R.indexOf(f(z.location));-1!==o&&(R[o]=t),A({action:n,location:r})}})},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(e){void 0===e&&(e=!1);var t=_.setPrompt(e);return M||(F(1),M=!0),function(){return M&&(M=!1,F(-1)),t()}},listen:function(e){var t=_.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function A(e,t,n){return Math.min(Math.max(e,t),n)}function C(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=t.keyLength,s=void 0===l?6:l,u=g();function c(e){(0,r.A)(b,e),b.length=b.entries.length,u.notifyListeners(b.location,b.action)}function d(){return Math.random().toString(36).substr(2,s)}var m=A(void 0===i?0:i,0,o.length-1),h=o.map(function(e){return"string"==typeof e?p(e,void 0,d()):p(e,void 0,e.key||d())});function y(e){var t=A(b.index+e,0,b.entries.length-1),r=b.entries[t];u.confirmTransitionTo(r,"POP",n,function(e){e?c({action:"POP",location:r,index:t}):c()})}var b={length:h.length,action:"POP",location:h[m],index:m,entries:h,createHref:f,push:function(e,t){var r="PUSH",a=p(e,t,d(),b.location);u.confirmTransitionTo(a,r,n,function(e){if(e){var t=b.index+1,n=b.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),c({action:r,location:a,index:t,entries:n})}})},replace:function(e,t){var r="REPLACE",a=p(e,t,d(),b.location);u.confirmTransitionTo(a,r,n,function(e){e&&(b.entries[b.index]=a,c({action:r,location:a}))})},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=b.index+e;return t>=0&&t<b.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return b}},4146(e,t,n){"use strict";var r=n(4363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var a=p(n);a&&a!==g&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),h=0;h<i.length;++h){var y=i[h];if(!o[y]&&!(r&&r[y])&&!(m&&m[y])&&!(l&&l[y])){var b=f(n,y);try{u(t,y,b)}catch(e){}}}}return t}},311(e){"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=Error(t.replace(/%s/g,function(){return u[c++]}))).name="Invariant Violation"}throw s.framesToPop=1,s}}},4634(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},5947(e){var t;t=function(){var e,t,n,r={};r.version="0.2.0";var a=r.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}r.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(a[t]=n);return this},r.status=null,r.set=function(e){var t=r.isStarted();r.status=1===(e=o(e,a.minimum,1))?null:e;var n=r.render(!t),s=n.querySelector(a.barSelector),u=a.speed,c=a.easing;return n.offsetWidth,i(function(t){var o,i,d,f;""===a.positionUsing&&(a.positionUsing=r.getPositioningCSS()),l(s,(o=e,i=u,d=c,(f="translate3d"===a.positionUsing?{transform:"translate3d("+(-1+o)*100+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+(-1+o)*100+"%,0)"}:{"margin-left":(-1+o)*100+"%"}).transition="all "+i+"ms "+d,f)),1===e?(l(n,{transition:"none",opacity:1}),n.offsetWidth,setTimeout(function(){l(n,{transition:"all "+u+"ms linear",opacity:0}),setTimeout(function(){r.remove(),t()},u)},u)):setTimeout(t,u)}),this},r.isStarted=function(){return"number"==typeof r.status},r.start=function(){r.status||r.set(0);var e=function(){setTimeout(function(){r.status&&(r.trickle(),e())},a.trickleSpeed)};return a.trickle&&e(),this},r.done=function(e){return e||r.status?r.inc(.3+.5*Math.random()).set(1):this},r.inc=function(e){var t=r.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),r.set(t)):r.start()},r.trickle=function(){return r.inc(Math.random()*a.trickleRate)},e=0,t=0,r.promise=function(n){return n&&"resolved"!==n.state()&&(0===t&&r.start(),e++,t++,n.always(function(){0==--t?(e=0,r.done()):r.set((e-t)/e)})),this},r.render=function(e){if(r.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=a.template;var n,o=t.querySelector(a.barSelector),i=e?"-100":(-1+(r.status||0))*100,s=document.querySelector(a.parent);return l(o,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),!a.showSpinner&&(n=t.querySelector(a.spinnerSelector))&&f(n),s!=document.body&&u(s,"nprogress-custom-parent"),s.appendChild(t),t},r.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},r.isRendered=function(){return!!document.getElementById("nprogress")},r.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var i=(n=[],function(e){n.push(e),1==n.length&&function e(){var t=n.shift();t&&t(e)}()}),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n,r,a){var o;r=t[o=(o=r).replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,t){return t.toUpperCase()})]||(t[o]=function(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}(o)),n.style[r]=a}return function(e,t){var r,a,o=arguments;if(2==o.length)for(r in t)void 0!==(a=t[r])&&t.hasOwnProperty(r)&&n(e,r,a);else n(e,o[1],o[2])}}();function s(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=d(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function c(e,t){var n,r=d(e);s(e,t)&&(e.className=(n=r.replace(" "+t+" "," ")).substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return r},"function"==typeof define&&define.amd?define(t):e.exports=t()},5302(e,t,n){var r=n(4634);e.exports=function e(t,n,a){if(r(n)||(a=n||a,n=[]),a=a||{},t instanceof RegExp){var i,l,s=n,d=t.source.match(/\((?!\?)/g);if(d)for(var f=0;f<d.length;f++)s.push({name:f,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return t.keys=s,t}if(r(t)){for(var p,g=n,m=a,h=[],y=0;y<t.length;y++)h.push(e(t[y],g,m).source);return(p=RegExp("(?:"+h.join("|")+")",u(m))).keys=g,p}return i=n,c(o(t,l=a),i,l)},e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=c;var a=RegExp("(\\\\.)|([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))","g");function o(e,t){for(var n,r=[],o=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var c,d,f=n[0],p=n[1],g=n.index;if(l+=e.slice(i,g),i=g+f.length,p){l+=p[1];continue}var m=e[i],h=n[2],y=n[3],b=n[4],v=n[5],w=n[6],S=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,x="+"===w||"*"===w,E="?"===w||"*"===w,T=h||u,_=b||v,A=h||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:y||o++,prefix:h||"",delimiter:T,optional:E,repeat:x,partial:k,asterisk:!!S,pattern:_?_.replace(/([=!:$\/()])/g,"\\$1"):S?".*":(c=T,!(d=A)||d.indexOf(c)>-1?"[^"+s(c)+"]+?":s(d)+"|(?:(?!"+s(d)+")[^"+s(c)+"])+?")})}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function l(e,t){for(var n=Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=RegExp("^(?:"+e[a].pattern+")$",u(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c,d=e[u];if("string"==typeof d){o+=d;continue}var f=l[d.name];if(null==f)if(d.optional){d.partial&&(o+=d.prefix);continue}else throw TypeError('Expected "'+d.name+'" to be defined');if(r(f)){if(!d.repeat)throw TypeError('Expected "'+d.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length)if(d.optional)continue;else throw TypeError('Expected "'+d.name+'" to not be empty');for(var p=0;p<f.length;p++){if(c=s(f[p]),!n[u].test(c))throw TypeError('Expected all "'+d.name+'" to match "'+d.pattern+'", but received `'+JSON.stringify(c)+"`");o+=(0===p?d.prefix:d.delimiter)+c}continue}if(c=d.asterisk?encodeURI(f).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}):s(f),!n[u].test(c))throw TypeError('Expected "'+d.name+'" to match "'+d.pattern+'", but received "'+c+'"');o+=d.prefix+c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e&&e.sensitive?"":"i"}function c(e,t,n){r(t)||(n=t||n,t=[]);for(var a,o=(n=n||{}).strict,i=!1!==n.end,l="",c=0;c<e.length;c++){var d=e[c];if("string"==typeof d)l+=s(d);else{var f=s(d.prefix),p="(?:"+d.pattern+")";t.push(d),d.repeat&&(p+="(?:"+f+p+")*"),l+=p=d.optional?d.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var g=s(n.delimiter||"/"),m=l.slice(-g.length)===g;return o||(l=(m?l.slice(0,-g.length):l)+"(?:"+g+"(?=$))?"),i?l+="$":l+=o&&m?"":"(?="+g+"|$)",(a=RegExp("^"+l,u(n))).keys=t,a}},7022(){!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash}(Prism)},6976(){var e,t,n,r;e=Prism,t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}},e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:r.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,function(){return t.source})),lookbehind:!0,inside:{punctuation:/\./}}})},2514(){Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},9700(){var e=Prism;function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),g=f.indexOf(p);if(g>-1){++a;var m=f.substring(0,g),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=f.substring(g+p.length),b=[];m&&b.push.apply(b,i([m])),b.push(h),y&&b.push.apply(b,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})},9486(){var e;e=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i,Prism.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:e}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:e}},punctuation:/[{};]/}},2342(){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},6966(){Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},2416(e,t,n){var r={"./prism-bash":"7022","./prism-java":"6976","./prism-json":"2514","./prism-nginx":"9486","./prism-python":"2342","./prism-sql":"6966"};function a(e){return n(o(e))}function o(e){if(!n.o(r,e)){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=2416},2694(e,t,n){"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556(e,t,n){e.exports=n(2694)()},6925(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},1247(e,t,n){"use strict";var r,a=n(9982),o=n(6540),i=n(961);function l(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function u(e){for(var t=e,n=t;n&&!n.alternate;)0!=(4098&(t=n).flags)&&(e=t.return),n=t.return;for(;t.return;)t=t.return;return 3===t.tag?e:null}function c(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function d(e){if(31===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function f(e){if(u(e)!==e)throw Error(l(188))}function p(e,t,n,r,a,o){for(;null!==e;){if((5===e.tag||27===e.tag||6===e.tag)&&n(e,r,a,o)||(22!==e.tag||null===e.memoizedState)&&(t||5!==e.tag&&27!==e.tag)&&p(e.child,t,n,r,a,o))return!0;e=e.sibling}return!1}function g(e){for(e=e.return;null!==e;){if(3===e.tag||5===e.tag||27===e.tag)return e;e=e.return}return null}function m(e){var t=!1;for(e=e.return;null!==e&&(4===e.tag&&(t=!0),3!==e.tag&&5!==e.tag&&27!==e.tag);)e=e.return;return t}function h(e){var t=[null,null],n=g(e);return null===n||function e(t,n,r,a){for(;null!==r;){if(r===n)a.foundSelf=!0;else if(5===r.tag||27===r.tag||6===r.tag){if(a.foundSelf)return t[1]=r,!0;t[0]=r}else if((22!==r.tag||null===r.memoizedState)&&e(t,n,r.child,a))return!0;r=r.sibling}return!1}(t,e,n.child,{foundSelf:!1}),t}function y(e){switch(e.tag){case 5:case 27:case 6:return e.stateNode;case 3:return e.stateNode.containerInfo;default:throw Error(l(559))}}var b=null,v=null;function w(e,t,n){return e===n||e===t&&(b=e,!0)}function S(e,t,n){return e===n?(v=e,!1):e===t&&(null!==v&&(b=e),!0)}function k(e){if(null===e)return null;do e=null===e?null:e.return;while(e&&5!==e.tag&&27!==e.tag&&3!==e.tag)return e||null}function x(e,t,n){for(var r=0,a=e;a;a=n(a))r++;a=0;for(var o=t;o;o=n(o))a++;for(;0<r-a;)e=n(e),r--;for(;0<a-r;)t=n(t),a--;for(;r--;){if(e===t||null!==t&&e===t.alternate)return e;e=n(e),t=n(t)}return null}var E=Object.assign,T=Symbol.for("react.element"),_=Symbol.for("react.transitional.element"),A=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),P=Symbol.for("react.strict_mode"),N=Symbol.for("react.profiler"),O=Symbol.for("react.consumer"),L=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),R=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),F=Symbol.for("react.lazy");Symbol.for("react.scope");var M=Symbol.for("react.activity"),z=Symbol.for("react.legacy_hidden");Symbol.for("react.tracing_marker");var B=Symbol.for("react.memo_cache_sentinel"),U=Symbol.for("react.view_transition"),$=Symbol.for("react.recoverable"),q=Symbol.iterator;function H(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=q&&e[q]||e["@@iterator"])?e:null}var V=Symbol.for("react.client.reference"),X=Array.isArray,G=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,W=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y={pending:!1,data:null,method:null,action:null},K=[],Q=-1;function Z(e){return{current:e}}function J(e){0>Q||(e.current=K[Q],K[Q]=null,Q--)}function ee(e,t){K[++Q]=e.current,e.current=t}var et=Z(null),en=Z(null),er=Z(null),ea=Z(null);function eo(e,t){switch(ee(er,t),ee(en,e),ee(et,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?cw(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=cS(t=cw(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}J(et),ee(et,e)}function ei(){J(et),J(en),J(er)}function el(e){var t=e.memoizedState;null!==t&&(dM._currentValue=t.memoizedState,ee(ea,e));var n=cS(t=et.current,e.type);t!==n&&(ee(en,e),ee(et,n))}function es(e){en.current===e&&(J(et),J(en)),ea.current===e&&(J(ea),dM._currentValue=Y)}function eu(e){if(void 0===t1)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);t1=t&&t[1]||"",t2=-1<e.stack.indexOf("\n at")?" (<anonymous>)":-1<e.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+t1+e+t2}var ec=!1;function ed(e,t){if(!e||ec)return"";ec=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}n=!1;try{var a=Object.getOwnPropertyDescriptor(e.prototype,"props");Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),n=!0,new e}finally{n&&(void 0!==a?Object.defineProperty(e.prototype,"props",a):delete e.prototype.props)}}}else{try{throw Error()}catch(e){r=e}(n=e())&&"function"==typeof n.catch&&n.catch(function(){})}}catch(e){if(e&&r&&"string"==typeof e.stack)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var a=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");a&&a.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var o=r.DetermineComponentFrameRoot(),i=o[0],l=o[1];if(i&&l){var s=i.split("\n"),u=l.split("\n");for(a=r=0;r<s.length&&!s[r].includes("DetermineComponentFrameRoot");)r++;for(;a<u.length&&!u[a].includes("DetermineComponentFrameRoot");)a++;if(r===s.length||a===u.length)for(r=s.length-1,a=u.length-1;1<=r&&0<=a&&s[r]!==u[a];)a--;for(;1<=r&&0<=a;r--,a--)if(s[r]!==u[a]){if(1!==r||1!==a)do if(r--,a--,0>a||s[r]!==u[a]){var c="\n"+s[r].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=r&&0<=a)break}}}finally{ec=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?eu(n):""}function ef(e){try{var t="",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return eu(e.type);case 16:return eu("Lazy");case 13:return e.child!==t&&null!==t?eu("Suspense Fallback"):eu("Suspense");case 19:return eu("SuspenseList");case 0:case 15:return ed(e.type,!1);case 11:return ed(e.type.render,!1);case 1:return ed(e.type,!0);case 31:return eu("Activity");case 30:return eu("ViewTransition");default:return""}}(e,n),n=e,e=e.return;while(e)return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var ep=Object.prototype.hasOwnProperty,eg=a.unstable_scheduleCallback,em=a.unstable_cancelCallback,eh=a.unstable_shouldYield,ey=a.unstable_requestPaint,eb=a.unstable_now,ev=a.unstable_getCurrentPriorityLevel,ew=a.unstable_ImmediatePriority,eS=a.unstable_UserBlockingPriority,ek=a.unstable_NormalPriority,ex=a.unstable_LowPriority,eE=a.unstable_IdlePriority,eT=a.log,e_=a.unstable_setDisableYieldValue,eA=null,eC=null;function eP(e){if("function"==typeof eT&&e_(e),eC&&"function"==typeof eC.setStrictMode)try{eC.setStrictMode(eA,e)}catch(e){}}var eN=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(eO(e)/eL|0)|0},eO=Math.log,eL=Math.LN2,eI=256,eR=262144,ej=4194304;function eD(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function eF(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,o=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=0x7ffffff&r;return 0!==l?0!=(r=l&~o)?a=eD(r):0!=(i&=l)?a=eD(i):n||0!=(n=l&~e)&&(a=eD(n)):0!=(l=r&~o)?a=eD(l):0!==i?a=eD(i):n||0!=(n=r&~e)&&(a=eD(n)),0===a?0:0!==t&&t!==a&&0==(t&o)&&((o=a&-a)>=(n=t&-t)||32===o&&0!=(4194048&n))?t:a}function eM(e,t){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function ez(e,t){0!=(8&t)&&(t|=32&t);var n=e.entangledLanes;if(0!==n)for(e=e.entanglements,n&=t;0<n;){var r=31-eN(n),a=1<<r;t|=e[r],n&=~a}return t}function eB(){var e=ej;return 0==(0x3c00000&(ej<<=1))&&(ej=4194304),e}function eU(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function e$(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function eq(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-eN(t);e.entangledLanes|=t,e.entanglements[r]=0x40000000|e.entanglements[r]|261930&n}function eH(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-eN(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}function eV(e,t){var n=t&-t;return 0!=((n=0!=(42&n)?1:eX(n))&(e.suspendedLanes|t))?0:n}function eX(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 0x1000000:case 0x2000000:e=128;break;case 0x10000000:e=0x8000000;break;default:e=0}return e}function eG(e){return 2<(e&=-e)?8<e?0!=(0x7ffffff&e)?32:0x10000000:8:2}function eW(){var e=W.p;return 0!==e?e:void 0===(e=window.event)?32:dJ(e.type)}function eY(e,t){var n=W.p;try{return W.p=e,t()}finally{W.p=n}}var eK=Math.random().toString(36).slice(2),eQ="__reactFiber$"+eK,eZ="__reactProps$"+eK,eJ="__reactContainer$"+eK,e0="__reactEvents$"+eK,e1="__reactListeners$"+eK,e2="__reactHandles$"+eK,e4="__reactResources$"+eK,e3="__reactMarker$"+eK,e5="__reactLoad$"+eK;function e6(e){delete e[eQ],delete e[eZ],delete e[e1],delete e[e2]}function e8(e){var t;if(t=e[eQ])return t;for(var n=e.parentNode;n;){if(t=n[eJ]||n[eQ]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=dr(e);null!==e;){if(n=e[eQ])return n;e=dr(e)}return t}n=(e=n).parentNode}return null}function e9(e){if(e=e[eQ]||e[eJ]){var t=e.tag;if(5===t||6===t||13===t||31===t||26===t||27===t||3===t)return e}return null}function e7(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e.stateNode;throw Error(l(33))}function te(e){var t=e[e4];return t||(t=e[e4]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function tt(e){e[e3]=!0}function tn(e){e[e5]=void 0}var tr=new Set,ta={};function to(e,t){ti(e,t),ti(e+"Capture",t)}function ti(e,t){for(ta[e]=t,e=0;e<t.length;e++)tr.add(t[e])}var tl=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),ts={},tu={},tc=!1;function td(){var e=tc;return tc=!1,e}function tf(e,t,n){if(ep.call(tu,t)||!ep.call(ts,t)&&(tl.test(t)?tu[t]=!0:(ts[t]=!0,!1)))if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var r=t.toLowerCase().slice(0,5);if("data-"!==r&&"aria-"!==r)return void e.removeAttribute(t)}e.setAttribute(t,n)}}function tp(e,t,n){if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,n)}}function tg(e,t,n,r){if(null===r)e.removeAttribute(n);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,r)}}function tm(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function th(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function ty(e){if(!e._valueTracker){var t=th(e)?"checked":"value";e._valueTracker=function(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&void 0!==r&&"function"==typeof r.get&&"function"==typeof r.set){var a=r.get,o=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){n=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e,t,""+e[t])}}function tb(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=th(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}var tv=/[\n"\\]/g;function tw(e){return e.replace(tv,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function tS(e,t,n,r,a,o,i,l){e.name="",null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i?e.type=i:e.removeAttribute("type"),null!=t?"number"===i?(0===t&&""===e.value||e.value!=t)&&(e.value=""+tm(t)):e.value!==""+tm(t)&&(e.value=""+tm(t)):"submit"!==i&&"reset"!==i||e.removeAttribute("value"),null!=t?"number"===i&&e.value==t?tx(e,tm(e.value)):tx(e,tm(t)):null!=n?tx(e,tm(n)):null!=r&&e.removeAttribute("value"),null==a&&null!=o&&(e.defaultChecked=!!o),null!=a&&(e.checked=a&&"function"!=typeof a&&"symbol"!=typeof a),null!=l&&"function"!=typeof l&&"symbol"!=typeof l&&"boolean"!=typeof l?e.name=""+tm(l):e.removeAttribute("name")}function tk(e,t,n,r,a,o,i,l){if(null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.type=o),null!=t||null!=n){if(("submit"===o||"reset"===o)&&null==t)return void ty(e);n=null!=n?""+tm(n):"",t=null!=t?""+tm(t):n,l||t===e.value||(e.value=t),e.defaultValue=t}r="function"!=typeof(r=null!=r?r:a)&&"symbol"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i&&(e.name=i),ty(e)}function tx(e,t){e.defaultValue!==""+t&&(e.defaultValue=""+t)}function tE(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(a=0,n=""+tm(n),t=null;a<e.length;a++){if(e[a].value===n){e[a].selected=!0,r&&(e[a].defaultSelected=!0);return}null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function tT(e,t,n){if(null!=t&&((t=""+tm(t))!==e.value&&(e.value=t),null==n)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=null!=n?""+tm(n):""}function t_(e,t,n,r){if(null==t){if(null!=r){if(null!=n)throw Error(l(92));if(X(r)){if(1<r.length)throw Error(l(93));r=r[0]}n=r}null==n&&(n=""),t=n}e.defaultValue=n=tm(t),(r=e.textContent)===n&&""!==r&&null!==r&&(e.value=r),ty(e)}function tA(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType){n.nodeValue=t;return}}e.textContent=t}var tC=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function tP(e,t,n){var r=0===t.indexOf("--");null==n||"boolean"==typeof n||""===n?r?e.setProperty(t,""):"float"===t?e.cssFloat="":e[t]="":r?e.setProperty(t,n):"number"!=typeof n||0===n||tC.has(t)?"float"===t?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function tN(e,t,n){if(null!=t&&"object"!=typeof t)throw Error(l(62));if(e=e.style,null!=n){for(var r in n)!n.hasOwnProperty(r)||null!=t&&t.hasOwnProperty(r)||(0===r.indexOf("--")?e.setProperty(r,""):"float"===r?e.cssFloat="":e[r]="",tc=!0);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&(tP(e,a,r),tc=!0)}else for(var o in t)t.hasOwnProperty(o)&&tP(e,o,t[o])}function tO(e){if(-1===e.indexOf("-"))return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var tL=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["maskType","mask-type"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),tI=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function tR(e){return tI.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function tj(){}var tD=null;function tF(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var tM=null,tz=null;function tB(e){var t=e9(e);if(t&&(e=t.stateNode)){var n=e[eZ]||null;switch(e=t.stateNode,t.type){case"input":if(tS(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+tw(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[eZ]||null;if(!a)throw Error(l(90));tS(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)(r=n[t]).form===e.form&&tb(r)}break;case"textarea":tT(e,n.value,n.defaultValue);break;case"select":null!=(t=n.value)&&tE(e,!!n.multiple,t,!1)}}}var tU=!1;function t$(e,t,n){if(tU)return e(t,n);tU=!0;try{return e(t)}finally{if(tU=!1,(null!==tM||null!==tz)&&(uf(),tM&&(t=tM,e=tz,tz=tM=null,tB(t),e)))for(t=0;t<e.length;t++)tB(e[t])}}function tq(e,t){var n=e.stateNode;if(null===n)return null;var r=n[eZ]||null;if(null===r)return null;switch(n=r[t],t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r="button"!==(e=e.type)&&"input"!==e&&"select"!==e&&"textarea"!==e),e=!r;break;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(l(231,t,typeof n));return n}var tH="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement,tV=!1;if(tH)try{var tX={};Object.defineProperty(tX,"passive",{get:function(){tV=!0}}),window.addEventListener("test",tX,tX),window.removeEventListener("test",tX,tX)}catch(e){tV=!1}var tG=null,tW=null,tY=null;function tK(){if(tY)return tY;var e,t,n=tW,r=n.length,a="value"in tG?tG.value:tG.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tY=a.slice(e,1<t?1-t:void 0)}function tQ(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function tZ(){return!0}function tJ(){return!1}function t0(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?tZ:tJ,this.isPropagationStopped=tJ,this}return E(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=tZ)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=tZ)},persist:function(){},isPersistent:tZ}),t}var t1,t2,t4,t3,t5,t6={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},t8=t0(t6),t9=E({},t6,{view:0,detail:0}),t7=t0(t9),ne=E({},t9,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:nd,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==t5&&(t5&&"mousemove"===e.type?(t4=e.screenX-t5.screenX,t3=e.screenY-t5.screenY):t3=t4=0,t5=e),t4)},movementY:function(e){return"movementY"in e?e.movementY:t3}}),nt=t0(ne),nn=t0(E({},ne,{dataTransfer:0})),nr=t0(E({},t9,{relatedTarget:0})),na=t0(E({},t6,{animationName:0,elapsedTime:0,pseudoElement:0})),no=t0(E({},t6,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),ni=t0(E({},t6,{data:0})),nl={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},ns={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},nu={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function nc(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=nu[e])&&!!t[e]}function nd(){return nc}var nf=t0(E({},t9,{key:function(e){if(e.key){var t=nl[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tQ(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?ns[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:nd,charCode:function(e){return"keypress"===e.type?tQ(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tQ(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),np=t0(E({},ne,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),ng=t0(E({},t6,{submitter:0})),nm=t0(E({},t9,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:nd})),nh=t0(E({},t6,{propertyName:0,elapsedTime:0,pseudoElement:0})),ny=t0(E({},ne,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),nb=t0(E({},t6,{newState:0,oldState:0,source:0})),nv=[9,13,27,32],nw=tH&&"CompositionEvent"in window,nS=null;tH&&"documentMode"in document&&(nS=document.documentMode);var nk=tH&&"TextEvent"in window&&!nS,nx=tH&&(!nw||nS&&8<nS&&11>=nS),nE=!1;function nT(e,t){switch(e){case"keyup":return -1!==nv.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function n_(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var nA=!1,nC={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function nP(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!nC[e.type]:"textarea"===t}function nN(e,t,n,r){tM?tz?tz.push(r):tz=[r]:tM=r,0<(t=co(t,"onChange")).length&&(n=new t8("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var nO=null,nL=null;function nI(e){u8(e,0)}function nR(e){if(tb(e7(e)))return e}function nj(e,t){if("change"===e)return t}var nD=!1;if(tH){if(tH){var nF="oninput"in document;if(!nF){var nM=document.createElement("div");nM.setAttribute("oninput","return;"),nF="function"==typeof nM.oninput}r=nF}else r=!1;nD=r&&(!document.documentMode||9<document.documentMode)}function nz(){nO&&(nO.detachEvent("onpropertychange",nB),nL=nO=null)}function nB(e){if("value"===e.propertyName&&nR(nL)){var t=[];nN(t,nL,e,tF(e)),t$(nI,t)}}function nU(e,t,n){"focusin"===e?(nz(),nO=t,nL=n,nO.attachEvent("onpropertychange",nB)):"focusout"===e&&nz()}function n$(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return nR(nL)}function nq(e,t){if("click"===e)return nR(t)}function nH(e,t){if("input"===e||"change"===e)return nR(t)}var nV="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function nX(e,t){if(nV(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!ep.call(t,a)||!nV(e[a],t[a]))return!1}return!0}function nG(e){if(void 0===(e=e||("u">typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function nW(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function nY(e,t){var n,r=nW(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=nW(r)}}function nK(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var t=nG(e.document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(n)e=t.contentWindow;else break;t=nG(e.document)}return t}function nQ(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var nZ=tH&&"documentMode"in document&&11>=document.documentMode,nJ=null,n0=null,n1=null,n2=!1;function n4(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;n2||null==nJ||nJ!==nG(r)||(r="selectionStart"in(r=nJ)&&nQ(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},n1&&nX(n1,r)||(n1=r,0<(r=co(n0,"onSelect")).length&&(t=new t8("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=nJ)))}function n3(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var n5={animationend:n3("Animation","AnimationEnd"),animationiteration:n3("Animation","AnimationIteration"),animationstart:n3("Animation","AnimationStart"),transitionrun:n3("Transition","TransitionRun"),transitionstart:n3("Transition","TransitionStart"),transitioncancel:n3("Transition","TransitionCancel"),transitionend:n3("Transition","TransitionEnd")},n6={},n8={};function n9(e){if(n6[e])return n6[e];if(!n5[e])return e;var t,n=n5[e];for(t in n)if(n.hasOwnProperty(t)&&t in n8)return n6[e]=n[t];return e}tH&&(n8=document.createElement("div").style,"AnimationEvent"in window||(delete n5.animationend.animation,delete n5.animationiteration.animation,delete n5.animationstart.animation),"TransitionEvent"in window||delete n5.transitionend.transition);var n7=n9("animationend"),re=n9("animationiteration"),rt=n9("animationstart"),rn=n9("transitionrun"),rr=n9("transitionstart"),ra=n9("transitioncancel"),ro=n9("transitionend"),ri=new Map,rl="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function rs(e,t){ri.set(e,t),to(t,[e])}rl.push("scrollEnd");var ru=0;function rc(e,t){return null!=e.name&&"auto"!==e.name?e.name:null!==t.autoName?t.autoName:t.autoName=e="_"+(e=s3.identifierPrefix)+"t_"+(ru++).toString(32)+"_"}function rd(e){if(null==e||"string"==typeof e)return e;var t=null,n=un;if(null!==n)for(var r=0;r<n.length;r++){var a=e[n[r]];if(null!=a){if("none"===a)return"none";t=null==t?a:t+" "+a}}return null==t?e.default:t}function rf(e,t){return e=rd(e),null==(t=rd(t))?"auto"===e?null:e:"auto"===t?null:t}var rp="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},rg=[],rm=0,rh=0;function ry(){for(var e=rm,t=rh=rm=0;t<e;){var n=rg[t];rg[t++]=null;var r=rg[t];rg[t++]=null;var a=rg[t];rg[t++]=null;var o=rg[t];if(rg[t++]=null,null!==r&&null!==a){var i=r.pending;null===i?a.next=a:(a.next=i.next,i.next=a),r.pending=a}0!==o&&rS(n,a,o)}}function rb(e,t,n,r){rg[rm++]=e,rg[rm++]=t,rg[rm++]=n,rg[rm++]=r,rh|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function rv(e,t,n,r){return rb(e,t,n,r),rk(e)}function rw(e,t){return rb(e,null,null,t),rk(e)}function rS(e,t,n){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n);for(var a=!1,o=e.return;null!==o;)o.childLanes|=n,null!==(r=o.alternate)&&(r.childLanes|=n),22===o.tag&&(null===(e=o.stateNode)||1&e._visibility||(a=!0)),e=o,o=o.return;return 3===e.tag?(o=e.stateNode,a&&null!==t&&(a=31-eN(n),null===(r=(e=o.hiddenUpdates)[a])?e[a]=[t]:r.push(t),t.lane=0x20000000|n),o):null}function rk(e){if(50<ur)throw ur=0,ua=null,Error(l(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var rx={};function rE(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function rT(e,t,n,r){return new rE(e,t,n,r)}function r_(e){return!(!(e=e.prototype)||!e.isReactComponent)}function rA(e,t){var n=e.alternate;return null===n?((n=rT(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=0x47f00000&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function rC(e,t){e.flags&=0x47f00002;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,e.dependencies=null===(t=n.dependencies)?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function rP(e,t,n,r,a,o){var i=0;if("function"==typeof(r=e))r_(r)&&(i=1);else if("string"==typeof r)i=!function(e,t,n){if(1===n||null!=t.itemProp)return!1;switch(e){case"meta":case"title":return!0;case"style":if("string"!=typeof t.precedence||"string"!=typeof t.href||""===t.href)break;return!0;case"link":if("string"!=typeof t.rel||"string"!=typeof t.href||""===t.href||t.onLoad||t.onError)break;if("stylesheet"===t.rel)return e=t.disabled,"string"==typeof t.precedence&&null==e;return!0;case"script":if(t.async&&"function"!=typeof t.async&&"symbol"!=typeof t.async&&!t.onLoad&&!t.onError&&t.src&&"string"==typeof t.src)return!0}return!1}(e,n,et.current)?"html"===e||"head"===e||"body"===e?27:5:26;else e:switch(r){case M:return(e=rT(31,n,t,a)).elementType=M,e.lanes=o,e;case C:return rN(n.children,a,o,t);case P:i=8,a|=24;break;case N:return(e=rT(12,n,t,2|a)).elementType=N,e.lanes=o,e;case R:return(e=rT(13,n,t,a)).elementType=R,e.lanes=o,e;case j:return(e=rT(19,n,t,a)).elementType=j,e.lanes=o,e;case z:case U:return(e=rT(30,n,t,e=32|a)).elementType=U,e.lanes=o,e.stateNode={autoName:null,paired:null,clones:null,ref:null},e;default:if("object"==typeof r&&null!==r)switch(r.$$typeof){case L:i=10;break e;case O:i=9;break e;case I:i=11;break e;case D:i=14;break e;case F:i=16,r=null;break e}i=29,n=Error(l(130,null===e?"null":typeof e,"")),r=null}return(t=rT(i,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function rN(e,t,n,r){return(e=rT(7,e,r,t)).lanes=n,e}function rO(e,t,n){return(e=rT(6,e,null,t)).lanes=n,e}function rL(e){var t=rT(18,null,null,0);return t.stateNode=e,t}function rI(e,t,n){return(t=rT(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var rR=new WeakMap;function rj(e,t){if("object"==typeof e&&null!==e){var n=rR.get(e);return void 0!==n?n:(t={value:e,source:t,stack:ef(t)},rR.set(e,t),t)}return{value:e,source:t,stack:ef(t)}}var rD=[],rF=0,rM=null,rz=0,rB=[],rU=0,r$=null,rq=1,rH="";function rV(e,t){rD[rF++]=rz,rD[rF++]=rM,rM=e,rz=t}function rX(e,t,n){rB[rU++]=rq,rB[rU++]=rH,rB[rU++]=r$,r$=e;var r=rq;e=rH;var a=32-eN(r)-1;r&=~(1<<a),n+=1;var o=32-eN(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,rq=1<<32-eN(t)+a|n<<a|r,rH=o+e}else rq=1<<o|n<<a|r,rH=e}function rG(e){null!==e.return&&(rV(e,1),rX(e,1,0))}function rW(e){for(;e===rM;)rM=rD[--rF],rD[rF]=null,rz=rD[--rF],rD[rF]=null;for(;e===r$;)r$=rB[--rU],rB[rU]=null,rH=rB[--rU],rB[rU]=null,rq=rB[--rU],rB[rU]=null}function rY(e,t){rB[rU++]=rq,rB[rU++]=rH,rB[rU++]=r$,rq=t.id,rH=t.overflow,r$=e}var rK=null,rQ=null,rZ=!1,rJ=null,r0=!1,r1=Error(l(519));function r2(e){var t=Error(l(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?"text":"HTML",""));throw r9(rj(t,e)),r1}function r4(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[eQ]=e,t[eZ]=r,n){case"dialog":u9("cancel",t),u9("close",t);break;case"iframe":case"object":case"embed":u9("load",t);break;case"video":case"audio":for(n=0;n<u5.length;n++)u9(u5[n],t);break;case"source":u9("error",t);break;case"img":case"image":case"link":u9("error",t),u9("load",t);break;case"details":u9("toggle",t);break;case"input":u9("invalid",t),tk(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case"select":u9("invalid",t);break;case"textarea":u9("invalid",t),t_(t,r.value,r.defaultValue,r.children)}"string"!=typeof(n=r.children)&&"number"!=typeof n&&"bigint"!=typeof n||t.textContent===""+n||!0===r.suppressHydrationWarning||cd(t.textContent,n)?(null!=r.popover&&(u9("beforetoggle",t),u9("toggle",t)),null!=r.onScroll&&u9("scroll",t),null!=r.onScrollEnd&&u9("scrollend",t),null!=r.onClick&&(t.onclick=tj),t=!0):t=!1,t||r2(e,!0)}function r3(e){for(rK=e.return;rK;)switch(rK.tag){case 5:case 31:case 13:r0=!1;return;case 27:case 3:r0=!0;return;default:rK=rK.return}}function r5(e){if(e!==rK)return!1;if(!rZ)return r3(e),rZ=!0,!1;var t,n=e.tag;if((t=3!==n&&27!==n)&&((t=5===n)&&(t="form"===(t=e.type)||"button"===t||cx(e.type,e.memoizedProps)),t=!t),t&&rQ&&r2(e),r3(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rQ=dn(e)}else if(31===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rQ=dn(e)}else 27===n?(n=rQ,cO(e.type)?(e=dt,dt=null,rQ=e):rQ=n):rQ=rK?de(e.stateNode.nextSibling):null;return!0}function r6(){rQ=rK=null,rZ=!1}function r8(){var e=rJ;return null!==e&&(null===sK?sK=e:sK.push.apply(sK,e),rJ=null),e}function r9(e){null===rJ?rJ=[e]:rJ.push(e)}var r7=Z(null),ae=null,at=null;function an(e,t,n){ee(r7,t._currentValue),t._currentValue=n}function ar(e){e._currentValue=r7.current,J(r7)}function aa(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function ao(e,t,n,r){var a=e.child;for(null!==a&&(a.return=e);null!==a;){var o=a.dependencies;if(null!==o){var i=a.child;o=o.firstContext;e:for(;null!==o;){var s=o;o=a;for(var u=0;u<t.length;u++)if(s.context===t[u]){o.lanes|=n,null!==(s=o.alternate)&&(s.lanes|=n),aa(o.return,n,e),r||(i=null);break e}o=s.next}}else if(18===a.tag){if(null===(i=a.return))throw Error(l(341));i.lanes|=n,null!==(o=i.alternate)&&(o.lanes|=n),aa(i,n,e),i=null}else 13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated?(a.lanes|=n,null!==(i=a.alternate)&&(i.lanes|=n),aa(a.return,n,e),i=null!==(i=a.child)?i.sibling:null):i=a.child;if(null!==i)i.return=a;else for(i=a;null!==i;){if(i===e){i=null;break}if(null!==(a=i.sibling)){a.return=i.return,i=a;break}i=i.return}a=i}}function ai(e,t,n,r){e=null;for(var a=t,o=!1;null!==a;){if(!o){if(0!=(524288&a.flags))o=!0;else if(0!=(262144&a.flags))break}if(10===a.tag){var i=a.alternate;if(null===i)throw Error(l(387));if(null!==(i=i.memoizedProps)){var s=a.type;nV(a.pendingProps.value,i.value)||(null!==e?e.push(s):e=[s])}}else if(a===ea.current){if(null===(i=a.alternate))throw Error(l(387));i.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(null!==e?e.push(dM):e=[dM])}a=a.return}return null!==e&&ao(t,e,n,r),t.flags|=262144,null!==e}function al(e){for(e=e.firstContext;null!==e;){if(!nV(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function as(e){ae=e,at=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function au(e){return ad(ae,e)}function ac(e,t){return null===ae&&as(e),ad(e,t)}function ad(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===at){if(null===e)throw Error(l(308));at=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else at=at.next=t;return n}var af="u">typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ap=a.unstable_scheduleCallback,ag=a.unstable_NormalPriority,am={$$typeof:L,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ah(){return{controller:new af,data:new Map,refCount:0}}function ay(e){e.refCount--,0===e.refCount&&ap(ag,function(){e.controller.abort()})}function ab(e,t){if(0!=(4194048&e.pendingLanes)){var n=e.transitionTypes;for(null===n&&(n=e.transitionTypes=[]),e=0;e<t.length;e++){var r=t[e];-1===n.indexOf(r)&&n.push(r)}}}var av=null,aw=null,aS=0,ak=0,ax=null;function aE(){if(0==--aS&&(av=null,null!==aw)){null!==ax&&(ax.status="fulfilled");var e=aw;aw=null,ak=0,ax=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var aT=G.S;G.S=function(e,t){if(sJ=eb(),"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e){if(null===aw){var t=aw=[];aS=0,ak=u1(),ax={status:"pending",value:void 0,then:function(e){t.push(e)}}}aS++,e.then(aE,aE)}(t),null!==av)for(var n=u$;null!==n;)ab(n,av),n=n.next;if(null!==(n=e.types)){for(var r=u$;null!==r;)ab(r,n),r=r.next;if(0!==ak){null===(r=av)&&(r=av=[]);for(var a=0;a<n.length;a++){var o=n[a];-1===r.indexOf(o)&&r.push(o)}}}null!==aT&&aT(e,t)};var a_=Z(null);function aA(){var e=a_.current;return null!==e?e:sR.pooledCache}function aC(e,t){null===t?ee(a_,a_.current):ee(a_,t.pool)}function aP(){var e=aA();return null===e?null:{parent:am._currentValue,pool:e}}var aN=Error(l(460)),aO=Error(l(474)),aL=Error(l(542)),aI={then:function(){}};function aR(e){return"fulfilled"===(e=e.status)||"rejected"===e}function aj(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(tj,tj),t=n),t.status){case"fulfilled":return t.value;case"rejected":if(az(e=t.reason),void 0===e&&!("reason"in t))throw Error(l(600));throw e;default:if("string"==typeof t.status)t.then(tj,tj);else{if(null!==(e=sR)&&100<e.shellSuspendCounter)throw Error(l(482));(e=t).status="pending",e.then(function(e){if("pending"===t.status){var n=t;n.status="fulfilled",n.value=e}},function(e){if("pending"===t.status){var n=t;n.status="rejected",n.reason=e}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw az(e=t.reason),e}throw aF=t,aN}}function aD(e){try{return(0,e._init)(e._payload)}catch(e){if(null!==e&&"object"==typeof e&&"function"==typeof e.then)throw aF=e,aN;throw e}}var aF=null;function aM(){if(null===aF)throw Error(l(459));var e=aF;return aF=null,e}function az(e){if(e===aN||e===aL)throw Error(l(483))}var aB=null,aU=0;function a$(e){var t=aU;return aU+=1,null===aB&&(aB=[]),aj(aB,e,t)}function aq(e,t){e.ref=void 0!==(t=t.props.ref)?t:null}function aH(e,t){if(t.$$typeof===T)throw Error(l(525));throw Error(l(31,"[object Object]"===(e=Object.prototype.toString.call(t))?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function aV(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;null!==e;)null===e.key?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return(e=rA(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return(t.index=r,e)?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=0x8000002,n):(t.flags|=1048576,n)}function i(t){return e&&null===t.alternate&&(t.flags|=0x8000002),t}function s(e,t,n,r){return null===t||6!==t.tag?(t=rO(n,e.mode,r)).return=e:(t=a(t,n)).return=e,t}function u(e,t,n,r){var o=n.type;return o===C?(aq(e=d(e,t,n.props.children,r,n.key),n),e):(null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===F&&aD(o)===t.type)?aq(t=a(t,n.props),n):aq(t=rP(n.type,n.key,n.props,null,e.mode,r),n),t.return=e,t)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=rI(n,e.mode,r)).return=e:(t=a(t,n.children||[])).return=e,t}function d(e,t,n,r,o){return null===t||7!==t.tag?(t=rN(n,e.mode,r,o)).return=e:(t=a(t,n)).return=e,t}function f(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t||"bigint"==typeof t)return(t=rO(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case _:return aq(n=rP(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case A:return(t=rI(t,e.mode,n)).return=e,t;case F:return f(e,t=aD(t),n)}if(X(t)||H(t))return(t=rN(t,e.mode,n,null)).return=e,t;if("function"==typeof t.then)return f(e,a$(t),n);if(t.$$typeof===L)return f(e,ac(e,t),n);aH(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n||"bigint"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case _:return n.key===a?u(e,t,n,r):null;case A:return n.key===a?c(e,t,n,r):null;case F:return p(e,t,n=aD(n),r)}if(X(n)||H(n))return null!==a?null:d(e,t,n,r,null);if("function"==typeof n.then)return p(e,t,a$(n),r);if(n.$$typeof===L)return p(e,t,ac(e,n),r);aH(e,n)}return null}function g(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r||"bigint"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case _:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case A:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case F:return g(e,t,n,r=aD(r),a)}if(X(r)||H(r))return d(t,e=e.get(n)||null,r,a,null);if("function"==typeof r.then)return g(e,t,n,a$(r),a);if(r.$$typeof===L)return g(e,t,n,ac(t,r),a);aH(t,r)}return null}return function(s,u,c,d){try{aU=0;var m=function s(u,c,d,m){if("object"==typeof d&&null!==d&&d.type===C&&null===d.key&&void 0===d.props.ref&&(d=d.props.children),"object"==typeof d&&null!==d){switch(d.$$typeof){case _:e:{for(var h=d.key;null!==c;){if(c.key===h){if((h=d.type)===C){if(7===c.tag){n(u,c.sibling),aq(m=a(c,d.props.children),d),m.return=u,u=m;break e}}else if(c.elementType===h||"object"==typeof h&&null!==h&&h.$$typeof===F&&aD(h)===c.type){n(u,c.sibling),aq(m=a(c,d.props),d),m.return=u,u=m;break e}n(u,c);break}t(u,c),c=c.sibling}d.type===C?aq(m=rN(d.props.children,u.mode,m,d.key),d):aq(m=rP(d.type,d.key,d.props,null,u.mode,m),d),m.return=u,u=m}return i(u);case A:e:{for(h=d.key;null!==c;){if(c.key===h)if(4===c.tag&&c.stateNode.containerInfo===d.containerInfo&&c.stateNode.implementation===d.implementation){n(u,c.sibling),(m=a(c,d.children||[])).return=u,u=m;break e}else{n(u,c);break}t(u,c),c=c.sibling}(m=rI(d,u.mode,m)).return=u,u=m}return i(u);case F:return s(u,c,d=aD(d),m)}if(X(d))return function(a,i,l,s){for(var u=null,c=null,d=i,m=i=0,h=null;null!==d&&m<l.length;m++){d.index>m?(h=d,d=null):h=d.sibling;var y=p(a,d,l[m],s);if(null===y){null===d&&(d=h);break}e&&d&&null===y.alternate&&t(a,d),i=o(y,i,m),null===c?u=y:c.sibling=y,c=y,d=h}if(m===l.length)return n(a,d),rZ&&rV(a,m),u;if(null===d){for(;m<l.length;m++)null!==(d=f(a,l[m],s))&&(i=o(d,i,m),null===c?u=d:c.sibling=d,c=d);return rZ&&rV(a,m),u}for(d=r(d);m<l.length;m++)null!==(h=g(d,a,m,l[m],s))&&(e&&null!==(y=h.alternate)&&d.delete(null===y.key?m:y.key),i=o(h,i,m),null===c?u=h:c.sibling=h,c=h);return e&&d.forEach(function(e){return t(a,e)}),rZ&&rV(a,m),u}(u,c,d,m);if(H(d)){if("function"!=typeof(h=H(d)))throw Error(l(150));return function(a,i,s,u){if(null==s)throw Error(l(151));for(var c=null,d=null,m=i,h=i=0,y=null,b=s.next();null!==m&&!b.done;h++,b=s.next()){m.index>h?(y=m,m=null):y=m.sibling;var v=p(a,m,b.value,u);if(null===v){null===m&&(m=y);break}e&&m&&null===v.alternate&&t(a,m),i=o(v,i,h),null===d?c=v:d.sibling=v,d=v,m=y}if(b.done)return n(a,m),rZ&&rV(a,h),c;if(null===m){for(;!b.done;h++,b=s.next())null!==(b=f(a,b.value,u))&&(i=o(b,i,h),null===d?c=b:d.sibling=b,d=b);return rZ&&rV(a,h),c}for(m=r(m);!b.done;h++,b=s.next())null!==(b=g(m,a,h,b.value,u))&&(e&&null!==(y=b.alternate)&&m.delete(null===y.key?h:y.key),i=o(b,i,h),null===d?c=b:d.sibling=b,d=b);return e&&m.forEach(function(e){return t(a,e)}),rZ&&rV(a,h),c}(u,c,d=h.call(d),m)}if("function"==typeof d.then)return s(u,c,a$(d),m);if(d.$$typeof===L)return s(u,c,ac(u,d),m);aH(u,d)}return"string"==typeof d&&""!==d||"number"==typeof d||"bigint"==typeof d?(d=""+d,null!==c&&6===c.tag?(n(u,c.sibling),(m=a(c,d)).return=u):(n(u,c),(m=rO(d,u.mode,m)).return=u),i(u=m)):n(u,c)}(s,u,c,d);return aB=null,m}catch(e){if(e===aN||e===aL)throw e;var h=rT(29,e,null,s.mode);return h.lanes=d,h.return=s,h}finally{}}}var aX=aV(!0),aG=aV(!1),aW=!1;function aY(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function aK(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function aQ(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function aZ(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&sI)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=rk(e),rS(e,null,n),t}return rb(e,r,t,n),rk(e)}function aJ(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194048&n))){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eH(e,n)}}function a0(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n)null===o?a=o=t:o=o.next=t}else a=o=t;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var a1=!1;function a2(){if(a1){var e=ax;if(null!==e)throw e}}function a4(e,t,n,r){a1=!1;var a=e.updateQueue;aW=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&(l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s)}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var f=-0x20000001&l.lane,p=f!==l.lane;if(p?(sD&f)===f:(r&f)===f){0!==f&&f===ak&&(a1=!0),null!==c&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var g=e,m=l;switch(f=t,m.tag){case 1:if("function"==typeof(g=m.payload)){d=g.call(n,d,f);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null==(f="function"==typeof(g=m.payload)?g.call(n,d,f):g))break e;d=E({},d,f);break e;case 2:aW=!0}}null!==(f=l.callback)&&(e.flags|=64,p&&(e.flags|=8192),null===(p=a.callbacks)?a.callbacks=[f]:p.push(f))}else p={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=p,s=d):c=c.next=p,i|=f;if(null===(l=l.next))if(null===(l=a.shared.pending))break;else l=(p=l).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null===o&&(a.shared.lanes=0),sH|=i,e.lanes=i,e.memoizedState=d}}function a3(e,t){if("function"!=typeof e)throw Error(l(191,e));e.call(t)}function a5(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;e<n.length;e++)a3(n[e],t)}var a6=Z(null),a8=Z(0);function a9(e,t){ee(a8,e=s$),ee(a6,t),s$=e|t.baseLanes}function a7(){ee(a8,s$),ee(a6,a6.current)}function oe(){s$=a8.current,J(a6),J(a8)}var ot=Z(null),on=null;function or(e){var t=e.alternate;ee(os,1&os.current),ee(ot,e),null===on&&(null===t||null!==a6.current?on=e:null!==t.memoizedState&&(on=e))}function oa(e){ee(os,os.current),ee(ot,e),null===on&&(on=e)}function oo(e){22===e.tag?(ee(os,os.current),ee(ot,e),null===on&&(on=e)):oi()}function oi(){ee(os,os.current),ee(ot,ot.current)}function ol(e){J(ot),on===e&&(on=null),J(os)}var os=Z(0);function ou(e,t){ee(ot,ot.current),ee(os,t)}function oc(e){J(os),J(ot),on===e&&(on=null)}function od(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||c9(n)||c7(n)))return t}else if(19===t.tag&&"independent"!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var of=0,op=null,og=null,om=null,oh=!1,oy=!1,ob=!1,ov=0,ow=0,oS=null,ok=0;function ox(){throw Error(l(321))}function oE(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!nV(e[n],t[n]))return!1;return!0}function oT(e,t,n,r,a,o){return of=o,op=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,G.H=null===e||null===e.memoizedState?iI:iR,ob=!1,o=n(r,a),ob=!1,oy&&(o=oA(t,n,r,a)),o_(e),o}function o_(e){G.H=iL;var t=null!==og&&null!==og.next;if(of=0,om=og=op=null,oh=!1,ow=0,oS=null,t)throw Error(l(300));null===e||iK||null!==(e=e.dependencies)&&al(e)&&(iK=!0)}function oA(e,t,n,r){op=e;var a=0;do{if(oy&&(oS=null),ow=0,oy=!1,25<=a)throw Error(l(301));if(a+=1,om=og=null,null!=e.updateQueue){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,null!=o.memoCache&&(o.memoCache.index=0)}G.H=ij,o=t(n,r)}while(oy)return o}function oC(){var e=G.H,t=e.useState()[0];return t="function"==typeof t.then?oj(t):t,e=e.useState()[0],(null!==og?og.memoizedState:null)!==e&&(op.flags|=1024),t}function oP(){var e=0!==ov;return ov=0,e}function oN(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function oO(e){if(oh){for(e=e.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}oh=!1}of=0,om=og=op=null,oy=!1,ow=ov=0,oS=null}function oL(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===om?op.memoizedState=om=e:om=om.next=e,om}function oI(){if(null===og){var e=op.alternate;e=null!==e?e.memoizedState:null}else e=og.next;var t=null===om?op.memoizedState:om.next;if(null!==t)om=t,og=e;else{if(null===e){if(null===op.alternate)throw Error(l(467));throw Error(l(310))}e={memoizedState:(og=e).memoizedState,baseState:og.baseState,baseQueue:og.baseQueue,queue:og.queue,next:null},null===om?op.memoizedState=om=e:om=om.next=e}return om}function oR(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function oj(e){var t=ow;return ow+=1,null===oS&&(oS=[]),e=aj(oS,e,t),t=op,null===(null===om?t.memoizedState:om.next)&&(G.H=null===(t=t.alternate)||null===t.memoizedState?iI:iR),e}function oD(e){if(null!==e&&"object"==typeof e){if("function"==typeof e.then)return oj(e);if(e.$$typeof===$)return;if(e.$$typeof===L)return au(e)}throw Error(l(438,String(e)))}function oF(e){var t=null,n=op.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var r=op.alternate;null!==r&&null!==(r=r.updateQueue)&&null!=(r=r.memoCache)&&(t={data:r.data.map(function(e){return e.slice()}),index:0})}if(null==t&&(t={data:[],index:0}),null===n&&(n=oR(),op.updateQueue=n),n.memoCache=t,void 0===(n=t.data[t.index]))for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=B;return t.index++,n}function oM(e,t){return"function"==typeof t?t(e):t}function oz(e){return oB(oI(),og,e)}function oB(e,t,n){var r=e.queue;if(null===r)throw Error(l(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(null!==o){if(null!==a){var i=a.next;a.next=o.next,o.next=i}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,null===a)e.memoizedState=o;else{t=a.next;var s=i=null,u=null,c=t,d=!1;do{var f=-0x20000001&c.lane;if(f!==c.lane?(sD&f)===f:(of&f)===f){var p=c.revertLane;if(0===p)null!==u&&(u=u.next={lane:0,revertLane:0,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),f===ak&&(d=!0);else if((of&p)===p){c=c.next,p===ak&&(d=!0);continue}else f={lane:0,revertLane:c.revertLane,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===u?(s=u=f,i=o):u=u.next=f,op.lanes|=p,sH|=p;f=c.action,ob&&n(o,f),o=c.hasEagerState?c.eagerState:n(o,f)}else p={lane:f,revertLane:c.revertLane,gesture:c.gesture,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===u?(s=u=p,i=o):u=u.next=p,op.lanes|=f,sH|=f;c=c.next}while(null!==c&&c!==t)if(null===u?i=o:u.next=s,!nV(o,e.memoizedState)&&(iK=!0,d&&null!==(n=ax)))throw n;e.memoizedState=o,e.baseState=i,e.baseQueue=u,r.lastRenderedState=o}return null===a&&(r.lanes=0),[e.memoizedState,r.dispatch]}function oU(e){var t=oI(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var i=a=a.next;do o=e(o,i.action),i=i.next;while(i!==a)nV(o,t.memoizedState)||(iK=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function o$(e,t,n){var r=op,a=oI(),o=rZ;if(o){if(void 0===n)throw Error(l(407));n=n()}else n=t();var i=!nV((og||a).memoizedState,n);if(i&&(a.memoizedState=n,iK=!0),a=a.queue,ia(oV.bind(null,r,a,e),[e]),o9((e=a.getSnapshot!==t||i||null!==om&&0!=(1&om.memoizedState.tag))?9:8,{destroy:void 0},oH.bind(null,r,a,n,t),null),e){if(r.flags|=2048,null===sR)throw Error(l(349));o||0!=(127&of)||oq(r,t,n)}return n}function oq(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=op.updateQueue)?(t=oR(),op.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function oH(e,t,n,r){t.value=n,t.getSnapshot=r,oX(t)&&oG(e)}function oV(e,t,n){return n(function(){oX(t)&&oG(e)})}function oX(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!nV(e,n)}catch(e){return!0}}function oG(e){var t=rw(e,2);null!==t&&us(t,e,2)}function oW(e){var t=oL();if("function"==typeof e){var n=e;if(e=n(),ob){eP(!0);try{n()}finally{eP(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:oM,lastRenderedState:e},t}function oY(e,t,n,r){return e.baseState=n,oB(e,og,"function"==typeof r?r:oM)}function oK(e,t,n,r,a){if(iP(e))throw Error(l(485));if(null!==(e=t.action)){var o={payload:a,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};null!==G.T?n(!0):o.isTransition=!1,r(o),null===(n=t.pending)?(o.next=t.pending=o,oQ(t,o)):(o.next=n.next,t.pending=n.next=o)}}function oQ(e,t){var n=t.action,r=t.payload,a=e.state;if(t.isTransition){var o=G.T,i={};i.types=null!==o?o.types:null,G.T=i;try{var l=n(a,r),s=G.S;null!==s&&s(i,l),oZ(e,t,l)}catch(n){o0(e,t,n)}finally{null!==o&&null!==i.types&&(o.types=i.types),G.T=o}}else try{o=n(a,r),oZ(e,t,o)}catch(n){o0(e,t,n)}}function oZ(e,t,n){null!==n&&"object"==typeof n&&"function"==typeof n.then?n.then(function(n){oJ(e,t,n)},function(n){return o0(e,t,n)}):oJ(e,t,n)}function oJ(e,t,n){t.status="fulfilled",t.value=n,o1(t),e.state=n,null!==(t=e.pending)&&((n=t.next)===t?e.pending=null:(n=n.next,t.next=n,oQ(e,n)))}function o0(e,t,n){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do t.status="rejected",t.reason=n,o1(t),t=t.next;while(t!==r)}e.action=null}function o1(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function o2(e,t){return t}function o4(e,t){if(rZ){var n=sR.formState;if(null!==n){e:{var r=op;if(rZ){if(rQ){t:{for(var a=rQ,o=r0;8!==a.nodeType;)if(!o||null===(a=de(a.nextSibling))){a=null;break t}a="F!"===(o=a.data)||"F"===o?a:null}if(a){rQ=de(a.nextSibling),r="F!"===a.data;break e}}r2(r)}r=!1}r&&(t=n[0])}}return(n=oL()).memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o2,lastRenderedState:t},n.queue=r,n=i_.bind(null,op,r),r.dispatch=n,r=oW(!1),o=iC.bind(null,op,!1,r.queue),r=oL(),a={state:t,dispatch:null,action:e,pending:null},r.queue=a,n=oK.bind(null,op,a,o,n),a.dispatch=n,r.memoizedState=e,[t,n,!1]}function o3(e){return o5(oI(),og,e)}function o5(e,t,n){if(t=oB(e,t,o2)[0],e=oz(oM)[0],"object"==typeof t&&null!==t&&"function"==typeof t.then)try{var r=oj(t)}catch(e){if(e===aN)throw aL;throw e}else r=t;var a=(t=oI()).queue,o=a.dispatch;return n!==t.memoizedState&&(op.flags|=2048,o9(9,{destroy:void 0},o6.bind(null,a,n),null)),[r,o,e]}function o6(e,t){e.action=t}function o8(e){var t=oI(),n=og;if(null!==n)return o5(t,n,e);oI(),t=t.memoizedState;var r=(n=oI()).queue.dispatch;return n.memoizedState=e,[t,r,!1]}function o9(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},null===(t=op.updateQueue)&&(t=oR(),op.updateQueue=t),null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function o7(){return oI().memoizedState}function ie(e,t,n,r){var a=oL();op.flags|=e,a.memoizedState=o9(1|t,{destroy:void 0},n,void 0===r?null:r)}function it(e,t,n,r){var a=oI();r=void 0===r?null:r;var o=a.memoizedState.inst;null!==og&&null!==r&&oE(r,og.memoizedState.deps)?a.memoizedState=o9(t,o,n,r):(op.flags|=e,a.memoizedState=o9(1|t,o,n,r))}function ir(e,t){ie(8390656,8,e,t)}function ia(e,t){it(2048,8,e,t)}function io(e){var t=oI().memoizedState,n={ref:t,nextImpl:e};op.flags|=4;var r=op.updateQueue;if(null===r)r=oR(),op.updateQueue=r,r.events=[n];else{var a=r.events;null===a?r.events=[n]:a.push(n)}return function(){if(0!=(2&sI))throw Error(l(440));return t.impl.apply(void 0,arguments)}}function ii(e,t){return it(4,2,e,t)}function il(e,t){return it(4,4,e,t)}function is(e,t){if("function"==typeof t){var n=t(e=e());return function(){"function"==typeof n?n():t(null)}}if(null!=t)return t.current=e=e(),function(){t.current=null}}function iu(e,t,n){n=null!=n?n.concat([e]):null,it(4,4,is.bind(null,t,e),n)}function ic(){}function id(e,t){var n=oI();t=void 0===t?null:t;var r=n.memoizedState;return null!==t&&oE(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function ip(e,t){var n=oI();t=void 0===t?null:t;var r=n.memoizedState;if(null!==t&&oE(t,r[1]))return r[0];if(r=e(),ob){eP(!0);try{e()}finally{eP(!1)}}return n.memoizedState=[r,t],r}function ig(e,t,n){return void 0===n||0!=(0x40000000&of)&&0==(261930&sD)?e.memoizedState=t:(e.memoizedState=n,e=ui(),op.lanes|=e,sH|=e,n)}function im(e,t,n,r){return nV(n,t)?n:null!==a6.current?(nV(e=ig(e,n,r),t)||(iK=!0),e):0==(106&of)||0!=(0x40000000&of)&&0==(261930&sD)?(iK=!0,e.memoizedState=n):(e=ui(),op.lanes|=e,sH|=e,t)}function ih(e,t,n,r,a){var o=W.p;W.p=0!==o&&8>o?o:8;var i=G.T,l={};l.types=null!==i?i.types:null,G.T=l,iC(e,!1,t,n);try{var s=a(),u=G.S;if(null!==u&&u(l,s),null!==s&&"object"==typeof s&&"function"==typeof s.then){var c,d,f=(c=[],d={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},s.then(function(){d.status="fulfilled",d.value=r;for(var e=0;e<c.length;e++)(0,c[e])(r)},function(e){for(d.status="rejected",d.reason=e,e=0;e<c.length;e++)(0,c[e])(void 0)}),d);iA(e,t,f,uo(e))}else iA(e,t,r,uo(e))}catch(n){iA(e,t,{then:function(){},status:"rejected",reason:n},uo())}finally{W.p=o,null!==i&&null!==l.types&&(i.types=l.types),G.T=i}}function iy(){}function ib(e,t,n,r){if(5!==e.tag)throw Error(l(476));var a=iv(e).queue;ih(e,a,t,Y,null===n?iy:function(){return iw(e),n(r)})}function iv(e){var t=e.memoizedState;if(null!==t)return t;var n={};return(t={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:oM,lastRenderedState:Y},next:null}).next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:oM,lastRenderedState:n},next:null},e.memoizedState=t,null!==(e=e.alternate)&&(e.memoizedState=t),t}function iw(e){var t=iv(e);null===t.next&&(t=e.alternate.memoizedState),iA(e,t.next.queue,{},uo())}function iS(){return au(dM)}function ik(){return oI().memoizedState}function ix(){return oI().memoizedState}function iE(e){for(var t=e.return;null!==t;){switch(t.tag){case 24:case 3:var n=uo(),r=aZ(t,e=aQ(n),n);null!==r&&(us(r,t,n),aJ(r,t,n)),t={cache:ah()},e.payload=t;return}t=t.return}}function iT(e,t,n){var r=uo();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},iP(e)?iN(t,n):null!==(n=rv(e,t,n,r))&&(us(n,e,r),iO(n,t,r))}function i_(e,t,n){iA(e,t,n,uo())}function iA(e,t,n,r){var a={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(iP(e))iN(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,nV(l,i))return rb(e,t,a,0),null===sR&&ry(),!1}catch(e){}finally{}if(null!==(n=rv(e,t,a,r)))return us(n,e,r),iO(n,t,r),!0}return!1}function iC(e,t,n,r){if(r={lane:2,revertLane:u1(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},iP(e)){if(t)throw Error(l(479))}else null!==(t=rv(e,n,r,2))&&us(t,e,2)}function iP(e){var t=e.alternate;return e===op||null!==t&&t===op}function iN(e,t){oy=oh=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function iO(e,t,n){if(0!=(4194048&n)){var r=t.lanes;r&=e.pendingLanes,t.lanes=n|=r,eH(e,n)}}var iL={readContext:au,use:oD,useCallback:ox,useContext:ox,useEffect:ox,useImperativeHandle:ox,useLayoutEffect:ox,useInsertionEffect:ox,useMemo:ox,useReducer:ox,useRef:ox,useState:ox,useDebugValue:ox,useDeferredValue:ox,useTransition:ox,useSyncExternalStore:ox,useId:ox,useHostTransitionStatus:ox,useFormState:ox,useActionState:ox,useOptimistic:ox,useMemoCache:ox,useCacheRefresh:ox,useEffectEvent:ox},iI={readContext:au,use:oD,useCallback:function(e,t){return oL().memoizedState=[e,void 0===t?null:t],e},useContext:au,useEffect:ir,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,ie(4194308,4,is.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ie(4194308,4,e,t)},useInsertionEffect:function(e,t){ie(4,2,e,t)},useMemo:function(e,t){var n=oL();t=void 0===t?null:t;var r=e();if(ob){eP(!0);try{e()}finally{eP(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=oL();if(void 0!==n){var a=n(t);if(ob){eP(!0);try{n(t)}finally{eP(!1)}}}else a=t;return r.memoizedState=r.baseState=a,r.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},e=e.dispatch=iT.bind(null,op,e),[r.memoizedState,e]},useRef:function(e){return oL().memoizedState={current:e}},useState:function(e){var t=(e=oW(e)).queue,n=i_.bind(null,op,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ic,useDeferredValue:function(e,t){return ig(oL(),e,t)},useTransition:function(){var e=oW(!1);return e=ih.bind(null,op,e.queue,!0,!1),oL().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=op,a=oL();if(rZ){if(void 0===n)throw Error(l(407));n=n()}else{if(n=t(),null===sR)throw Error(l(349));0!=(127&sD)||oq(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ir(oV.bind(null,r,o,e),[e]),r.flags|=2048,o9(9,{destroy:void 0},oH.bind(null,r,o,n,t),null),n},useId:function(){var e=oL(),t=sR.identifierPrefix;if(rZ){var n=rH,r=rq;t="_"+t+"R_"+(n=(r&~(1<<32-eN(r)-1)).toString(32)+n),0<(n=ov++)&&(t+="H"+n.toString(32)),t+="_"}else t="_"+t+"r_"+(n=ok++).toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:iS,useFormState:o4,useActionState:o4,useOptimistic:function(e){var t=oL();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=iC.bind(null,op,!0,n),n.dispatch=t,[e,t]},useMemoCache:oF,useCacheRefresh:function(){return oL().memoizedState=iE.bind(null,op)},useEffectEvent:function(e){var t=oL(),n={impl:e};return t.memoizedState=n,function(){if(0!=(2&sI))throw Error(l(440));return n.impl.apply(void 0,arguments)}}},iR={readContext:au,use:oD,useCallback:id,useContext:au,useEffect:ia,useImperativeHandle:iu,useInsertionEffect:ii,useLayoutEffect:il,useMemo:ip,useReducer:oz,useRef:o7,useState:function(){return oz(oM)},useDebugValue:ic,useDeferredValue:function(e,t){return im(oI(),og.memoizedState,e,t)},useTransition:function(){var e=oz(oM)[0],t=oI().memoizedState;return["boolean"==typeof e?e:oj(e),t]},useSyncExternalStore:o$,useId:ik,useHostTransitionStatus:iS,useFormState:o3,useActionState:o3,useOptimistic:function(e,t){return oY(oI(),og,e,t)},useMemoCache:oF,useCacheRefresh:ix,useEffectEvent:io},ij={readContext:au,use:oD,useCallback:id,useContext:au,useEffect:ia,useImperativeHandle:iu,useInsertionEffect:ii,useLayoutEffect:il,useMemo:ip,useReducer:oU,useRef:o7,useState:function(){return oU(oM)},useDebugValue:ic,useDeferredValue:function(e,t){var n=oI();return null===og?ig(n,e,t):im(n,og.memoizedState,e,t)},useTransition:function(){var e=oU(oM)[0],t=oI().memoizedState;return["boolean"==typeof e?e:oj(e),t]},useSyncExternalStore:o$,useId:ik,useHostTransitionStatus:iS,useFormState:o8,useActionState:o8,useOptimistic:function(e,t){var n=oI();return null!==og?oY(n,og,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:oF,useCacheRefresh:ix,useEffectEvent:io};function iD(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:E({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var iF={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=uo(),a=aQ(r);a.payload=t,null!=n&&(a.callback=n),null!==(t=aZ(e,a,r))&&(us(t,e,r),aJ(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=uo(),a=aQ(r);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=aZ(e,a,r))&&(us(t,e,r),aJ(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=uo(),r=aQ(n);r.tag=2,null!=t&&(r.callback=t),null!==(t=aZ(e,r,n))&&(us(t,e,n),aJ(t,e,n))}};function iM(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||!nX(n,r)||!nX(a,o)}function iz(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&iF.enqueueReplaceState(t,t.state,null)}function iB(e,t){var n=t;if("ref"in t)for(var r in n={},t)"ref"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var a in n===t&&(n=E({},n)),e)void 0===n[a]&&(n[a]=e[a]);return n}function iU(e){rp(e)}function i$(e){console.error(e)}function iq(e){rp(e)}function iH(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function iV(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function iX(e,t,n){return(n=aQ(n)).tag=3,n.payload={element:null},n.callback=function(){iH(e,t)},n}function iG(e){return(e=aQ(e)).tag=3,e}function iW(e,t,n,r){var a=n.type.getDerivedStateFromError;if("function"==typeof a){var o=r.value;e.payload=function(){return a(o)},e.callback=function(){iV(t,n,r)}}var i=n.stateNode;null!==i&&"function"==typeof i.componentDidCatch&&(e.callback=function(){iV(t,n,r),"function"!=typeof a&&(null===s2?s2=new Set([this]):s2.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var iY=Error(l(461)),iK=!1;function iQ(e,t,n,r){t.child=null===e?aG(t,null,n,r):aX(t,e.child,n,r)}function iZ(e,t,n,r,a){n=n.render;var o=t.ref;if("ref"in r){var i={};for(var l in r)"ref"!==l&&(i[l]=r[l])}else i=r;return(as(t),r=oT(e,t,n,i,o,a),l=oP(),null===e||iK)?(rZ&&l&&rG(t),t.flags|=1,iQ(e,t,r,a),t.child):(oN(e,t,a),lg(e,t,a))}function iJ(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||r_(o)||void 0!==o.defaultProps||null!==n.compare?((e=rP(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,i0(e,t,o,r,a))}if(o=e.child,!lm(e,a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:nX)(i,r)&&e.ref===t.ref)return lg(e,t,a)}return t.flags|=1,(e=rA(o,r)).ref=t.ref,e.return=t,t.child=e}function i0(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(nX(o,r)&&e.ref===t.ref)if(iK=!1,t.pendingProps=r=o,!lm(e,a))return t.lanes=e.lanes,lg(e,t,a);else 0!=(131072&e.flags)&&(iK=!0)}return i8(e,t,n,r,a)}function i1(e,t,n,r){var a=r.children,o=null!==e?e.memoizedState:null;if(null===e&&null===t.stateNode&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),"hidden"===r.mode){if(0!=(128&t.flags)){if(o=null!==o?o.baseLanes|n:n,null!==e){for(a=0,r=t.child=e.child;null!==r;)a=a|r.lanes|r.childLanes,r=r.sibling;r=a&~o}else r=0,t.child=null;return i4(e,t,o,n,r)}if(0==(0x20000000&n))return r=t.lanes=0x20000000,i4(e,t,null!==o?o.baseLanes|n:n,n,r);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&aC(t,null!==o?o.cachePool:null),null!==o?a9(t,o):a7(),oo(t)}else null!==o?(aC(t,o.cachePool),a9(t,o),oi(),t.memoizedState=null):(null!==e&&aC(t,null),a7(),oi());return iQ(e,t,a,n),t.child}function i2(e,t){return null!==e&&22===e.tag||null!==t.stateNode||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function i4(e,t,n,r,a){var o=aA();return t.memoizedState={baseLanes:n,cachePool:o=null===o?null:{parent:am._currentValue,pool:o}},null!==e&&aC(t,null),a7(),oo(t),null!==e&&ai(e,t,r,!0),t.childLanes=a,null}function i3(e,t){return(t=li({mode:t.mode,children:t.children},e.mode)).ref=e.ref,e.child=t,t.return=e,t}function i5(e,t,n){return aX(t,e.child,null,n),e=i3(t,t.pendingProps),e.flags|=2,ol(t),t.memoizedState=null,e}function i6(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if("function"!=typeof n&&"object"!=typeof n)throw Error(l(284));(null===e||e.ref!==n)&&(t.flags|=4194816)}}function i8(e,t,n,r,a){return(as(t),n=oT(e,t,n,r,void 0,a),r=oP(),null===e||iK)?(rZ&&r&&rG(t),t.flags|=1,iQ(e,t,n,a),t.child):(oN(e,t,a),lg(e,t,a))}function i9(e,t,n,r,a,o){return(as(t),t.updateQueue=null,n=oA(t,r,n,a),o_(e),r=oP(),null===e||iK)?(rZ&&r&&rG(t),t.flags|=1,iQ(e,t,n,o),t.child):(oN(e,t,o),lg(e,t,o))}function i7(e,t,n,r,a){if(as(t),null===t.stateNode){var o=rx,i=n.contextType;"object"==typeof i&&null!==i&&(o=au(i)),t.memoizedState=null!==(o=new n(r,o)).state&&void 0!==o.state?o.state:null,o.updater=iF,t.stateNode=o,o._reactInternals=t,(o=t.stateNode).props=r,o.state=t.memoizedState,o.refs={},aY(t),i=n.contextType,o.context="object"==typeof i&&null!==i?au(i):rx,o.state=t.memoizedState,"function"==typeof(i=n.getDerivedStateFromProps)&&(iD(t,n,i,r),o.state=t.memoizedState),"function"==typeof n.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(i=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),i!==o.state&&iF.enqueueReplaceState(o,o.state,null),a4(t,r,o,a),a2(),o.state=t.memoizedState),"function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){o=t.stateNode;var l=t.memoizedProps,s=iB(n,l);o.props=s;var u=o.context,c=n.contextType;i=rx,"object"==typeof c&&null!==c&&(i=au(c));var d=n.getDerivedStateFromProps;c="function"==typeof d||"function"==typeof o.getSnapshotBeforeUpdate,l=t.pendingProps!==l,c||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(l||u!==i)&&iz(t,o,r,i),aW=!1;var f=t.memoizedState;o.state=f,a4(t,r,o,a),a2(),u=t.memoizedState,l||f!==u||aW?("function"==typeof d&&(iD(t,n,d,r),u=t.memoizedState),(s=aW||iM(t,n,s,r,f,u,i))?(c||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.flags|=4194308)):("function"==typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),o.props=r,o.state=u,o.context=i,r=s):("function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,aK(e,t),c=iB(n,i=t.memoizedProps),o.props=c,d=t.pendingProps,f=o.context,u=n.contextType,s=rx,"object"==typeof u&&null!==u&&(s=au(u)),(u="function"==typeof(l=n.getDerivedStateFromProps)||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(i!==d||f!==s)&&iz(t,o,r,s),aW=!1,f=t.memoizedState,o.state=f,a4(t,r,o,a),a2();var p=t.memoizedState;i!==d||f!==p||aW||null!==e&&null!==e.dependencies&&al(e.dependencies)?("function"==typeof l&&(iD(t,n,l,r),p=t.memoizedState),(c=aW||iM(t,n,c,r,f,p,s)||null!==e&&null!==e.dependencies&&al(e.dependencies))?(u||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,p,s),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,p,s)),"function"==typeof o.componentDidUpdate&&(t.flags|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),o.props=r,o.state=p,o.context=s,r=c):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return o=r,i6(e,t),r=0!=(128&t.flags),o||r?(o=t.stateNode,n=r&&"function"!=typeof n.getDerivedStateFromError?null:o.render(),t.flags|=1,null!==e&&r?(t.child=aX(t,e.child,null,a),t.child=aX(t,null,n,a)):iQ(e,t,n,a),t.memoizedState=o.state,e=t.child):e=lg(e,t,a),e}function le(e,t,n,r){return r6(),t.flags|=256,iQ(e,t,n,r),t.child}var lt={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ln(e){return{baseLanes:e,cachePool:aP()}}function lr(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=sG),e}function la(e,t,n){var r,a=t.pendingProps,o=!1,i=0!=(128&t.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!=(2&os.current)),r&&(o=!0,t.flags&=-129),r=0!=(32&t.flags),t.flags&=-33,null===e){if(rZ){if(o?or(t):oi(),(e=rQ)?null!==(e=null!==(e=c8(e,r0))&&"&"!==e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==r$?{id:rq,overflow:rH}:null,retryLane:0x20000000,hydrationErrors:null},(n=rL(e)).return=t,t.child=n,rK=t,rQ=null):e=null,null===e)throw r2(t);return c7(e)?t.lanes=32:t.lanes=0x20000000,null}return(i=a.children,a=a.fallback,o)?(oi(),i=li({mode:"hidden",children:i},o=t.mode),a=rN(a,o,n,null),i.return=t,a.return=t,i.sibling=a,t.child=i,(a=t.child).memoizedState=ln(n),a.childLanes=lr(e,r,n),t.memoizedState=lt,i2(null,a)):(or(t),lo(t,i))}var s=e.memoizedState;if(null!==s){var u=s.dehydrated;if(null!==u){var c=e,d=t,f=i,p=r,g=a,m=u,h=s,y=n;if(f)return 256&d.flags?(or(d),d.flags&=-257,ll(c,d,y)):null!==d.memoizedState?(oi(),d.child=c.child,d.flags|=128,null):(oi(),m=g.fallback,h=d.mode,g=li({mode:"visible",children:g.children},h),m=rN(m,h,y,null),m.flags|=2,g.return=d,m.return=d,g.sibling=m,d.child=g,aX(d,c.child,null,y),(g=d.child).memoizedState=ln(y),g.childLanes=lr(c,p,y),d.memoizedState=lt,i2(null,g));if(or(d),c7(m)){if(p=m.nextSibling&&m.nextSibling.dataset)var b=p.dgst;return""!==(p=b)&&((g=Error(l(419))).stack="",g.digest=p,r9({value:g,source:null,stack:null})),ll(c,d,y)}if(iK||ai(c,d,y,!1),p=0!=(y&c.childLanes),iK||p){if(null!==a6.current)return ll(c,d,y);if(null!==(p=sR)&&0!==(g=eV(p,y))&&g!==h.retryLane)throw h.retryLane=g,rw(c,g),us(p,c,g),iY;return c9(m)||uv(),ll(c,d,y)}return c9(m)?(d.flags|=192,d.child=c.child,null):(c=h.treeContext,rQ=de(m.nextSibling),rK=d,rZ=!0,rJ=null,r0=!1,null!==c&&rY(d,c),d=lo(d,g.children),d.flags|=0x8001000,d)}}return o?(oi(),o=a.fallback,i=t.mode,u=(s=e.child).sibling,(a=rA(s,{mode:"hidden",children:a.children})).subtreeFlags=0x47f00000&s.subtreeFlags,null!==u?o=rA(u,o):(o=rN(o,i,n,null),o.flags|=2),o.return=t,a.return=t,a.sibling=o,t.child=a,i2(null,a),a=t.child,null===(o=e.child.memoizedState)?o=ln(n):(null!==(i=o.cachePool)?(s=am._currentValue,i=i.parent!==s?{parent:s,pool:s}:i):i=aP(),o={baseLanes:o.baseLanes|n,cachePool:i}),a.memoizedState=o,a.childLanes=lr(e,r,n),t.memoizedState=lt,i2(e.child,a)):(or(t),e=(n=e.child).sibling,(n=rA(n,{mode:"visible",children:a.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function lo(e,t){return(t=li({mode:"visible",children:t},e.mode)).return=e,e.child=t}function li(e,t){return(e=rT(22,e,null,t)).lanes=0,e}function ll(e,t,n){return aX(t,e.child,null,n),e=lo(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function ls(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),aa(e.return,t,n)}function lu(e){for(var t=null;null!==e;){var n=e.alternate;null!==n&&null===od(n)&&(t=e),e=e.sibling}return t}function lc(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,treeForkCount:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.treeForkCount=o)}function ld(e){var t=e.child;for(e.child=null;null!==t;){var n=t.sibling;t.sibling=e.child,e.child=t,t=n}}function lf(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;r=r.children;var i=os.current;if(128&t.flags)return ou(t,i),null;var l=0!=(2&i);if(l?(i=1&i|2,t.flags|=128):i&=1,ou(t,i),"backwards"===a&&null!==e?(ld(e),iQ(e,t,r,n),ld(e)):iQ(e,t,r,n),r=rZ?rz:0,!l&&null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ls(e,n,t);else if(19===e.tag)ls(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(a){case"backwards":null===(n=lu(t.child))?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null,ld(t)),lc(t,!0,a,null,o,r);break;case"unstable_legacy-backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===od(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}lc(t,!0,n,null,o,r);break;case"together":lc(t,!1,null,null,void 0,r);break;case"independent":t.memoizedState=null;break;default:null===(n=lu(t.child))?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),lc(t,!1,a,n,o,r)}return t.child}function lp(e,t,n){var r=t.pendingProps;return an(t,t.type,r.value),iQ(e,t,r.children,n),t.child}function lg(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),sH|=t.lanes,0==(n&t.childLanes)){if(null===e)return null;else if(ai(e,t,n,!1),0==(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(l(153));if(null!==t.child){for(n=rA(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=rA(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function lm(e,t){return 0!=(e.lanes&t)||!!(null!==(e=e.dependencies)&&al(e))}function lh(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)iK=!0;else{if(!lm(e,n)&&0==(128&t.flags))return iK=!1,function(e,t,n){switch(t.tag){case 3:eo(t,t.stateNode.containerInfo),an(t,am,e.memoizedState.cache),r6();break;case 27:case 5:el(t);break;case 4:eo(t,t.stateNode.containerInfo);break;case 10:an(t,t.type,t.memoizedProps.value);break;case 31:if(null!==t.memoizedState)return t.flags|=128,oa(t),null;break;case 13:var r=t.memoizedState;if(null!==r){if(null!==r.dehydrated)return or(t),t.flags|=128,null;r=ai(e,t,n,!1);var a=t.child.childLanes;if(r||0!=(n&a))return la(e,t,n);return or(t),null!==(e=lg(e,t,n))?e.sibling:null}or(t);break;case 19:if(128&t.flags)return lf(e,t,n);if(a=0!=(128&e.flags),(r=0!=(n&t.childLanes))||(ai(e,t,n,!1),r=0!=(n&t.childLanes)),a){if(r)return lf(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ou(t,os.current),!r)return null;break;case 22:return t.lanes=0,i1(e,t,n,t.pendingProps);case 24:an(t,am,e.memoizedState.cache)}return lg(e,t,n)}(e,t,n);iK=0!=(131072&e.flags)}else iK=!1,rZ&&0!=(1048576&t.flags)&&rX(t,rz,t.index);switch(t.lanes=0,t.tag){case 16:e:{var r=t.pendingProps;if(e=aD(t.elementType),t.type=e,"function"==typeof e)r_(e)?(r=iB(e,r),t.tag=1,t=i7(null,t,e,r,n)):(t.tag=0,t=i8(null,t,e,r,n));else{if(null!=e){var a=e.$$typeof;if(a===I){t.tag=11,t=iZ(null,t,e,r,n);break e}if(a===D){t.tag=14,t=iJ(null,t,e,r,n);break e}if(a===L){t.tag=10,t.type=e,t=lp(null,t,n);break e}}throw Error(l(306,t=function e(t){if(null==t)return null;if("function"==typeof t)return t.$$typeof===V?null:t.displayName||t.name||null;if("string"==typeof t)return t;switch(t){case C:return"Fragment";case N:return"Profiler";case P:return"StrictMode";case R:return"Suspense";case j:return"SuspenseList";case M:return"Activity";case U:return"ViewTransition"}if("object"==typeof t)switch(t.$$typeof){case A:return"Portal";case L:return t.displayName||"Context";case O:return(t._context.displayName||"Context")+".Consumer";case I:var n=t.render;return(t=t.displayName)||(t=""!==(t=n.displayName||n.name||"")?"ForwardRef("+t+")":"ForwardRef"),t;case D:return null!==(n=t.displayName||null)?n:e(t.type)||"Memo";case F:n=t._payload,t=t._init;try{return e(t(n))}catch(e){}}return null}(e)||e,""))}}return t;case 0:return i8(e,t,t.type,t.pendingProps,n);case 1:return a=iB(r=t.type,t.pendingProps),i7(e,t,r,a,n);case 3:e:{if(eo(t,t.stateNode.containerInfo),null===e)throw Error(l(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,aK(e,t),a4(t,r,null,n);var i=t.memoizedState;if(an(t,am,r=i.cache),r!==o.cache&&ao(t,[am],n,!0),a2(),r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=le(e,t,r,n);break e}else if(r!==a){r9(a=rj(Error(l(424)),t)),t=le(e,t,r,n);break e}else for(rQ=de((e=9===(e=t.stateNode.containerInfo).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e).firstChild),rK=t,rZ=!0,rJ=null,r0=!0,n=aG(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|0x8001000,n=n.sibling;else{if(r6(),r===a){t=lg(e,t,n);break e}iQ(e,t,r,n)}t=t.child}return t;case 26:return i6(e,t),null===e?(n=dg(t.type,null,t.pendingProps,null))?t.memoizedState=n:rZ||(t.stateNode=ck(t.type,t.pendingProps,er.current,t)):t.memoizedState=dg(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return el(t),null===e&&rZ&&(r=t.stateNode=da(t.type,t.pendingProps,er.current),rK=t,r0=!0,a=rQ,cO(t.type)?(dt=a,rQ=de(r.firstChild)):rQ=a),iQ(e,t,t.pendingProps.children,n),i6(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&rZ&&((a=r=rQ)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[e3])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(a=e.getAttribute("rel"))&&e.hasAttribute("data-precedence")||a!==n.rel||e.getAttribute("href")!==(null==n.href||""===n.href?null:n.href)||e.getAttribute("crossorigin")!==(null==n.crossOrigin?null:n.crossOrigin)||e.getAttribute("title")!==(null==n.title?null:n.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((a=e.getAttribute("src"))!==(null==n.src?null:n.src)||e.getAttribute("type")!==(null==n.type?null:n.type)||e.getAttribute("crossorigin")!==(null==n.crossOrigin?null:n.crossOrigin))&&a&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==t||"hidden"!==e.type)return e;var a=null==n.name?null:""+n.name;if("hidden"===n.type&&e.getAttribute("name")===a)return e}if(null===(e=de(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,r0))?(t.stateNode=r,rK=t,rQ=de(r.firstChild),r0=!1,a=!0):a=!1),a||r2(t)),el(t),a=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,r=o.children,cx(a,o)?r=null:null!==i&&cx(a,i)&&(t.flags|=32),null!==t.memoizedState&&(dM._currentValue=a=oT(e,t,oC,null,null,n)),i6(e,t),iQ(e,t,r,n),t.child;case 6:return null===e&&rZ&&((e=n=rQ)&&(null!==(n=function(e,t,n){if(""===t)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!n||null===(e=de(e.nextSibling)))return null;return e}(n,t.pendingProps,r0))?(t.stateNode=n,rK=t,rQ=null,e=!0):e=!1),e||r2(t)),null;case 13:return la(e,t,n);case 4:return eo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=aX(t,null,r,n):iQ(e,t,r,n),t.child;case 11:return iZ(e,t,t.type,t.pendingProps,n);case 7:return r=t.pendingProps,i6(e,t),iQ(e,t,r,n),t.child;case 8:case 12:return iQ(e,t,t.pendingProps.children,n),t.child;case 10:return lp(e,t,n);case 9:return a=t.type._context,r=t.pendingProps.children,as(t),r=r(a=au(a)),t.flags|=1,iQ(e,t,r,n),t.child;case 14:return iJ(e,t,t.type,t.pendingProps,n);case 15:return i0(e,t,t.type,t.pendingProps,n);case 19:return lf(e,t,n);case 31:var s=e,u=t,c=n,d=u.pendingProps,f=0!=(128&u.flags);if(u.flags&=-129,null===s){if(rZ){if("hidden"===d.mode)return s=i3(u,d),u.lanes=0x20000000,s.memoizedState={baseLanes:0,cachePool:null},i2(null,s);if(oa(u),(s=rQ)?null!==(s=null!==(s=c8(s,r0))&&"&"===s.data?s:null)&&(u.memoizedState={dehydrated:s,treeContext:null!==r$?{id:rq,overflow:rH}:null,retryLane:0x20000000,hydrationErrors:null},(c=rL(s)).return=u,u.child=c,rK=u,rQ=null):s=null,null===s)throw r2(u);return u.lanes=0x20000000,null}return i3(u,d)}var p=s.memoizedState;if(null!==p){var g=p.dehydrated;if(oa(u),f)if(256&u.flags)u.flags&=-257,u=i5(s,u,c);else if(null!==u.memoizedState)u.child=s.child,u.flags|=128,u=null;else throw Error(l(558));else if(iK||ai(s,u,c,!1),f=0!=(c&s.childLanes),iK||f){if(null===a6.current){if(null!==(d=sR)&&0!==(g=eV(d,c))&&g!==p.retryLane)throw p.retryLane=g,rw(s,g),us(d,s,g),iY;uv()}u=i5(s,u,c)}else s=p.treeContext,rQ=de(g.nextSibling),rK=u,rZ=!0,rJ=null,r0=!1,null!==s&&rY(u,s),u=i3(u,d),u.flags|=0x8001000;return u}return(s=rA(s.child,{mode:d.mode,children:d.children})).ref=u.ref,u.child=s,s.return=u,s;case 22:return i1(e,t,n,t.pendingProps);case 24:return as(t),r=au(am),null===e?(null===(a=aA())&&(a=sR,o=ah(),a.pooledCache=o,o.refCount++,null!==o&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},aY(t),an(t,am,a)):(0!=(e.lanes&n)&&(aK(e,t),a4(t,null,null,n),a2()),a=e.memoizedState,o=t.memoizedState,a.parent!==r?(a={parent:r,cache:r},t.memoizedState=a,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=a),an(t,am,r)):(an(t,am,r=o.cache),r!==a.cache&&ao(t,[am],n,!0))),iQ(e,t,t.pendingProps.children,n),t.child;case 30:return null===t.stateNode&&(t.stateNode={autoName:null,paired:null,clones:null,ref:null}),null!=(r=t.pendingProps).name&&"auto"!==r.name?t.flags|=null===e?0x1202000:0x1200000:rZ&&rG(t),null!==e&&e.memoizedProps.name!==r.name?t.flags|=4194816:i6(e,t),iQ(e,t,r.children,n),t.child;case 29:throw t.pendingProps}throw Error(l(156,t.tag))}function ly(e){e.flags|=4}function lb(e,t,n,r,a){var o;if((o=0!=(32&e.mode))&&(o=null===n?dA(t,r):dA(t,r)&&(r.src!==n.src||r.srcSet!==n.srcSet)),o){if(e.flags|=0x1000000,(0x13ffff40&a)===a)if(e.stateNode.complete)e.flags|=8192;else if(uh())e.flags|=8192;else throw aF=aI,aO}else e.flags&=-0x1000001}function lv(e,t){if("stylesheet"!==t.type||0!=(4&t.state.loading))e.flags&=-0x1000001;else if(e.flags|=0x1000000,!dC(t))if(uh())e.flags|=8192;else throw aF=aI,aO}function lw(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?eB():0x20000000,e.lanes|=t,sW|=t)}function lS(e,t){if(!rZ)switch(e.tailMode){case"visible":break;case"collapsed":for(var n=e.tail,r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null;break;default:for(n=null,t=e.tail;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null}}function lk(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=0x47f00000&a.subtreeFlags,r|=0x47f00000&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function lx(e,t){switch(rW(t),t.tag){case 3:ar(am),ei();break;case 26:case 27:case 5:es(t);break;case 4:ei();break;case 31:null!==t.memoizedState&&ol(t);break;case 13:ol(t);break;case 19:oc(t);break;case 10:ar(t.type);break;case 22:case 23:ol(t),oe(),null!==e&&J(a_);break;case 24:ar(am)}}function lE(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var a=r.next;n=a;do{if((n.tag&e)===e){r=void 0;var o=n.create;n.inst.destroy=r=o()}n=n.next}while(n!==a)}}catch(e){uD(t,t.return,e)}}function lT(e,t,n){try{var r=t.updateQueue,a=null!==r?r.lastEffect:null;if(null!==a){var o=a.next;r=o;do{if((r.tag&e)===e){var i=r.inst,l=i.destroy;if(void 0!==l){i.destroy=void 0,a=t;try{l()}catch(e){uD(a,n,e)}}}r=r.next}while(r!==o)}}catch(e){uD(t,t.return,e)}}function l_(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{a5(t,n)}catch(t){uD(e,e.return,t)}}}function lA(e,t,n){n.props=iB(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){uD(e,t,n)}}function lC(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var a=e.stateNode,o=rc(e.memoizedProps,a);(null===a.ref||a.ref.name!==o)&&(a.ref=cU(o)),r=a.ref;break;case 7:if(null===e.stateNode){var i=new c$(e);p(e.child,!1,c4,i,void 0,void 0),e.stateNode=i}r=e.stateNode;break;default:r=e.stateNode}"function"==typeof n?e.refCleanup=n(r):n.current=r}}catch(n){uD(e,t,n)}}function lP(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"==typeof r)try{r()}catch(n){uD(e,t,n)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof n)try{n(null)}catch(n){uD(e,t,n)}else n.current=null}function lN(e,t){if((5===e.tag||27===e.tag||6===e.tag)&&null===e.alternate&&null!==t)for(var n=0;n<t.length;n++)c5(e.stateNode,t[n])}function lO(e){for(var t=e.return;null!==t&&(lR(t)&&c5(e.stateNode,t.stateNode),!lI(t));)t=t.return}function lL(e){for(var t=e.return;null!==t&&(lR(t)&&function(e,t){var n=t._eventListeners;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];e.removeEventListener(a.type,a.attachedListener,cV(a.optionsOrUseCapture))}3!==e.nodeType&&(null!==(n=t._observers)&&n.forEach(function(n){var r;"string"==typeof n.rootMargin?(cJ.push({fragmentInstance:t,observer:n,instance:e}),c0||(c0=!0,r=function(){c0=!1;var e=cJ;cJ=[];for(var t=0;t<e.length;t++){var n=e[t];n.observer.unobserve(n.instance)}},cC(function(){cC(function(e){return r(e)})}))):n.unobserve(e)}),null!=e.reactFragments&&e.reactFragments.delete(t))}(e.stateNode,t.stateNode),!lI(t));)t=t.return}function lI(e){return 5===e.tag||3===e.tag||27===e.tag}function lR(e){return e&&7===e.tag&&null!==e.stateNode}function lj(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){uD(e,e.return,t)}}function lD(e,t,n){try{var r=e.stateNode;(function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,o=null,i=null,s=null,u=null,c=null,d=null;for(g in n){var f=n[g];if(n.hasOwnProperty(g)&&null!=f)switch(g){case"checked":case"value":break;case"defaultValue":u=f;default:r.hasOwnProperty(g)||cf(e,t,g,null,r,f)}}for(var p in r){var g=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=g||null!=f))switch(p){case"type":g!==f&&(tc=!0),o=g;break;case"name":g!==f&&(tc=!0),a=g;break;case"checked":g!==f&&(tc=!0),c=g;break;case"defaultChecked":g!==f&&(tc=!0),d=g;break;case"value":g!==f&&(tc=!0),i=g;break;case"defaultValue":g!==f&&(tc=!0),s=g;break;case"children":case"dangerouslySetInnerHTML":if(null!=g)throw Error(l(137,t));break;default:g!==f&&cf(e,t,p,g,r,f)}}tS(e,i,s,u,c,d,o,a);return;case"select":for(o in g=i=s=p=null,n)if(u=n[o],n.hasOwnProperty(o)&&null!=u)switch(o){case"value":break;case"multiple":g=u;default:r.hasOwnProperty(o)||cf(e,t,o,null,r,u)}for(a in r)if(o=r[a],u=n[a],r.hasOwnProperty(a)&&(null!=o||null!=u))switch(a){case"value":o!==u&&(tc=!0),p=o;break;case"defaultValue":o!==u&&(tc=!0),s=o;break;case"multiple":o!==u&&(tc=!0),i=o;default:o!==u&&cf(e,t,a,o,r,u)}t=s,n=i,r=g,null!=p?tE(e,!!n,p,!1):!!r!=!!n&&(null!=t?tE(e,!!n,t,!0):tE(e,!!n,n?[]:"",!1));return;case"textarea":for(s in g=p=null,n)if(a=n[s],n.hasOwnProperty(s)&&null!=a&&!r.hasOwnProperty(s))switch(s){case"value":case"children":break;default:cf(e,t,s,null,r,a)}for(i in r)if(a=r[i],o=n[i],r.hasOwnProperty(i)&&(null!=a||null!=o))switch(i){case"value":a!==o&&(tc=!0),p=a;break;case"defaultValue":a!==o&&(tc=!0),g=a;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=a)throw Error(l(91));break;default:a!==o&&cf(e,t,i,a,r,o)}tT(e,p,g);return;case"option":for(var m in n)p=n[m],n.hasOwnProperty(m)&&null!=p&&!r.hasOwnProperty(m)&&("selected"===m?e.selected=!1:cf(e,t,m,null,r,p));for(u in r)p=r[u],g=n[u],r.hasOwnProperty(u)&&p!==g&&(null!=p||null!=g)&&("selected"===u?(p!==g&&(tc=!0),e.selected=p&&"function"!=typeof p&&"symbol"!=typeof p):cf(e,t,u,p,r,g));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var h in n)p=n[h],n.hasOwnProperty(h)&&null!=p&&!r.hasOwnProperty(h)&&cf(e,t,h,null,r,p);for(c in r)if(p=r[c],g=n[c],r.hasOwnProperty(c)&&p!==g&&(null!=p||null!=g))switch(c){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(l(137,t));break;default:cf(e,t,c,p,r,g)}return;default:if(tO(t)){for(var y in n)p=n[y],n.hasOwnProperty(y)&&void 0!==p&&!r.hasOwnProperty(y)&&cp(e,t,y,void 0,r,p);for(d in r)p=r[d],g=n[d],r.hasOwnProperty(d)&&p!==g&&(void 0!==p||void 0!==g)&&cp(e,t,d,p,r,g);return}}for(var b in n)p=n[b],n.hasOwnProperty(b)&&null!=p&&!r.hasOwnProperty(b)&&cf(e,t,b,null,r,p);for(f in r)p=r[f],g=n[f],r.hasOwnProperty(f)&&p!==g&&(null!=p||null!=g)&&cf(e,t,f,p,r,g)})(r,e.type,n,t),r[eZ]=t}catch(t){uD(e,e.return,t)}}function lF(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&cO(e.type)||4===e.tag}function lM(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||lF(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&cO(e.type)||2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function lz(e,t,n,r){var a=e.tag;if(5===a||6===a)a=e.stateNode,t?n.insertBefore(a,t):n.appendChild(a),lN(e,r),tc=!0;else if(4!==a&&(27===a&&(lN(e,r),r=null,cO(e.type)&&(n=e.stateNode)),null!==(e=e.child)))for(lz(e,t,n,r),e=e.sibling;null!==e;)lz(e,t,n,r),e=e.sibling}function lB(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);cg(t,r,n),t[eQ]=e,t[eZ]=n}catch(t){uD(e,e.return,t)}}var lU=!1,l$=null;function lq(e){(30===e.tag||0!=(0x2000000&e.subtreeFlags))&&(lU=!0)}var lH=null;function lV(){var e=lH;return lH=null,e}var lX=0;function lG(e,t,n,r,a){return lX=0,function e(t,n,r,a,o){for(var i=!1;null!==t;){if(5===t.tag){var l=t.stateNode;if(null!==a){var s=cF(l);a.push(s),s.view&&(i=!0)}else i||cF(l).view&&(i=!0);lU=!0,cR(l,0===lX?n:n+"_"+lX,r),lX++}else(22!==t.tag||null===t.memoizedState)&&(30===t.tag&&o||e(t.child,n,r,a,o)&&(i=!0));t=t.sibling}return i}(e.child,t,n,r,a)}function lW(e,t){for(;null!==e;)5===e.tag?cj(e.stateNode,e.memoizedProps):(22!==e.tag||null===e.memoizedState)&&(30===e.tag&&t||lW(e.child,t)),e=e.sibling}function lY(e){if(0!=(0x1200000&e.subtreeFlags))for(e=e.child;null!==e;){if((22!==e.tag||null===e.memoizedState)&&(lY(e),30===e.tag&&0!=(0x1200000&e.flags)&&e.stateNode.paired)){var t=e.memoizedProps;if(null==t.name||"auto"===t.name)throw Error(l(544));var n=t.name;"none"!==(t=rf(t.default,t.share))&&(lG(e,n,t,null,!1)||lW(e.child,!1))}e=e.sibling}}function lK(e,t){if(30===e.tag){var n=e.stateNode,r=e.memoizedProps,a=rc(r,n),o=rf(r.default,n.paired?r.share:r.enter);"none"!==o?lG(e,a,o,null,!1)?(lY(e),n.paired||t||ul(e,r.onEnter)):lW(e.child,!1):lY(e)}else if(0!=(0x2000000&e.subtreeFlags))for(e=e.child;null!==e;)lK(e,t),e=e.sibling;else lY(e)}function lQ(e){if(null!==l$&&0!==l$.size){var t=l$;if(0!=(0x1200000&e.subtreeFlags))for(e=e.child;null!==e;){if(22!==e.tag||null===e.memoizedState){if(30===e.tag&&0!=(0x1200000&e.flags)){var n=e.memoizedProps,r=n.name;if(null!=r&&"auto"!==r){var a=t.get(r);if(void 0!==a){var o=rf(n.default,n.share);if("none"!==o&&(lG(e,r,o,null,!1)?(a.paired=o=e.stateNode,o.paired=a,ul(e,n.onShare)):lW(e.child,!1)),t.delete(r),0===t.size)break}}}lQ(e)}e=e.sibling}}}function lZ(e){if(30===e.tag){var t=e.memoizedProps,n=rc(t,e.stateNode),r=null!==l$?l$.get(n):void 0,a=rf(t.default,void 0!==r?t.share:t.exit);"none"!==a&&(lG(e,n,a,null,!1)?void 0!==r?(r.paired=a=e.stateNode,a.paired=r,l$.delete(n),ul(e,t.onShare)):ul(e,t.onExit):lW(e.child,!1)),null!==l$&&lQ(e)}else if(0!=(0x2000000&e.subtreeFlags))for(e=e.child;null!==e;)lZ(e),e=e.sibling;else null!==l$&&lQ(e)}function lJ(e){if(0!=(0x1200000&e.subtreeFlags))for(e=e.child;null!==e;){if(22!==e.tag||null===e.memoizedState){if(30===e.tag&&0!=(0x1200000&e.flags)){var t=e.stateNode;null!==t.paired&&(t.paired=null,lW(e.child,!1))}lJ(e)}e=e.sibling}}function l0(e){if(30===e.tag)e.stateNode.paired=null,lW(e.child,!1),lJ(e);else if(0!=(0x2000000&e.subtreeFlags))for(e=e.child;null!==e;)l0(e),e=e.sibling;else lJ(e)}function l1(e,t,n,r,a,o,i){for(var l=!1;null!==t;){if(5===t.tag){var s=t.stateNode;if(null!==o&&lX<o.length){var u,c=o[lX],d=cF(s);if((c.view||d.view)&&(l=!0),u=0==(4&e.flags))if(d.clip)u=!0;else{u=c.rect;var f=d.rect;u=u.y!==f.y||u.x!==f.x||u.height!==f.height||u.width!==f.width}u&&(e.flags|=4),d.abs?d=!c.abs:(c=c.rect,d=d.rect,d=c.height!==d.height||c.width!==d.width),d&&(e.flags|=32)}else e.flags|=32;0!=(4&e.flags)&&cR(s,0===lX?n:n+"_"+lX,a),l&&0!=(4&e.flags)||(null===lH&&(lH=[]),lH.push(s,0===lX?r:r+"_"+lX,t.memoizedProps)),lX++}else(22!==t.tag||null===t.memoizedState)&&(30===t.tag&&i?e.flags|=32&t.flags:l1(e,t.child,n,r,a,o,i)&&(l=!0));t=t.sibling}return l}var l2=!1,l4=!1,l3=!1,l5=!1,l6="function"==typeof WeakSet?WeakSet:Set,l8=null,l9=!1,l7=!1,se=!1,st=!1;function sn(e){for(;null!==l8;){var t=l8,n=e,r=t.alternate,a=t.flags;switch(t.tag){case 0:case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(0!=(1024&a)&&null!==r){n=void 0,a=r.memoizedProps,r=r.memoizedState;var o=t.stateNode;try{var i=iB(t.type,a);n=o.getSnapshotBeforeUpdate(i,r),o.__reactInternalSnapshotBeforeUpdate=n}catch(e){uD(t,t.return,e)}}break;case 3:if(0!=(1024&a)){if(9===(n=(r=t.stateNode.containerInfo).nodeType))c6(r);else if(1===n)switch(r.nodeName){case"HEAD":case"HTML":case"BODY":c6(r);break;default:r.textContent=""}}break;case 30:n&&null!==r&&(n=rc(r.memoizedProps,r.stateNode),"none"!==(a=rf((a=t.memoizedProps).default,a.update))&&lG(r,n,a,r.memoizedState=[],!0));break;default:if(0!=(1024&a))throw Error(l(163))}if(null!==(r=t.sibling)){r.return=t.return,l8=r;break}l8=t.return}}function sr(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:sb(e,n),4&r&&lE(5,n);break;case 1:if(sb(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(e){uD(n,n.return,e)}else{var a=iB(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(a,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){uD(n,n.return,e)}}64&r&&l_(n),512&r&&lC(n,n.return);break;case 3:if(sb(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{a5(e,t)}catch(e){uD(n,n.return,e)}}break;case 27:null===t&&4&r&&lB(n);case 26:case 5:sb(e,n),null===t&&4&r&&lj(n),512&r&&lC(n,n.return);break;case 12:sb(e,n);break;case 31:sb(e,n),4&r&&su(e,n);break;case 13:sb(e,n),4&r&&sc(e,n),64&r&&null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=uB.bind(null,n));break;case 22:if(!(r=null!==n.memoizedState||l2)){var o=null!==t&&null!==t.memoizedState||l4;t=l2,a=l4,l2=r,(l4=o)&&!a?(r=2,0!=(8772&n.subtreeFlags)&&(r|=1),function e(t,n,r){for(r=0!=(8772&n.subtreeFlags)?r:-2&r,n=n.child;null!==n;){var a=n.alternate,o=t,i=n,l=i.flags,s=0!=(1&r);switch(i.tag){case 0:case 11:case 15:e(o,i,r),lE(4,i);break;case 1:if(e(o,i,r),"function"==typeof(o=(a=i).stateNode).componentDidMount)try{o.componentDidMount()}catch(e){uD(a,a.return,e)}if(null!==(o=(a=i).updateQueue)){var u=a.stateNode;try{var c=o.shared.hiddenCallbacks;if(null!==c)for(o.shared.hiddenCallbacks=null,o=0;o<c.length;o++)a3(c[o],u)}catch(e){uD(a,a.return,e)}}s&&64&l&&l_(i),lC(i,i.return);break;case 27:0!=(2&r)&&lB(i);case 5:5!==i.tag&&27!==i.tag||lO(i),e(o,i,r),s&&null===a&&4&l&&lj(i),lC(i,i.return);break;case 6:lO(i);break;case 26:u=i.stateNode,null!==i.memoizedState||null===u||l2||d_(dc(u.ownerDocument),i.type,u),e(o,i,r),s&&null===a&&4&l&&lj(i),lC(i,i.return);break;case 12:e(o,i,r);break;case 31:e(o,i,r),s&&4&l&&su(o,i);break;case 13:e(o,i,r),s&&4&l&&sc(o,i);break;case 22:null===i.memoizedState&&e(o,i,r),lC(i,i.return);break;case 30:e(o,i,r),lC(i,i.return);break;case 7:lC(i,i.return);default:e(o,i,r)}n=n.sibling}}(e,n,r)):sb(e,n),l2=t,l4=a}break;case 30:sb(e,n),512&r&&lC(n,n.return);break;case 7:512&r&&lC(n,n.return);default:sb(e,n)}}function sa(e,t){for(e=e.child;null!==e;)(function e(t,n){switch(t.tag){case 5:case 26:try{var r=t.stateNode;if(n){var a=r.style;"function"==typeof a.setProperty?a.setProperty("display","none","important"):a.display="none"}else{var o=t.stateNode,i=t.memoizedProps.style,l=null!=i&&i.hasOwnProperty("display")?i.display:null;o.style.display=null==l||"boolean"==typeof l?"":(""+l).trim()}}catch(e){uD(t,t.return,e)}!function t(n,r){if(0x4000000&n.subtreeFlags)for(n=n.child;null!==n;){e:{var a=n;switch(a.tag){case 4:e(a,r);break e;case 22:null===a.memoizedState&&t(a,r);break e;default:t(a,r)}}n=n.sibling}}(t,n);break;case 6:try{t.stateNode.nodeValue=n?"":t.memoizedProps,tc=!0}catch(e){uD(t,t.return,e)}break;case 18:try{var s=t.stateNode;n?cI(s,!0):cI(t.stateNode,!1)}catch(e){uD(t,t.return,e)}break;case 22:case 23:null===t.memoizedState&&sa(t,n);break;default:sa(t,n)}})(e,t),e=e.sibling}var so=null,si=!1;function sl(e,t,n){for(n=n.child;null!==n;)ss(e,t,n),n=n.sibling}function ss(e,t,n){if(eC&&"function"==typeof eC.onCommitFiberUnmount)try{eC.onCommitFiberUnmount(eA,n)}catch(e){}switch(n.tag){case 26:l4||lP(n,t),sl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&!l4&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:l4||lP(n,t),lL(n);var r=so,a=si;cO(n.type)&&(so=n.stateNode,si=!1),sl(e,t,n),di(n.stateNode,n.type,n.memoizedProps),so=r,si=a;break;case 5:l4||lP(n,t),lL(n);case 6:if(6===n.tag&&lL(n),r=so,a=si,so=null,sl(e,t,n),so=r,si=a,null!==so)if(si)try{(9===so.nodeType?so.body:"HTML"===so.nodeName?so.ownerDocument.body:so).removeChild(n.stateNode),tc=!0}catch(e){uD(n,t,e)}else try{so.removeChild(n.stateNode),tc=!0}catch(e){uD(n,t,e)}break;case 18:null!==so&&(si?(cL(9===(e=so).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),fl(e)):cL(so,n.stateNode));break;case 4:r=so,a=si,so=n.stateNode.containerInfo,si=!0,sl(e,t,n),so=r,si=a;break;case 0:case 11:case 14:case 15:lT(2,n,t),l4||lT(4,n,t),sl(e,t,n);break;case 1:l4||(lP(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount&&lA(n,t,r)),sl(e,t,n);break;case 21:default:sl(e,t,n);break;case 22:l4=(r=l4)||null!==n.memoizedState,sl(e,t,n),l4=r;break;case 30:lP(n,t),sl(e,t,n);break;case 7:l4||lP(n,t),sl(e,t,n)}}function su(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{fl(e)}catch(e){uD(t,t.return,e)}}}function sc(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{fl(e)}catch(e){uD(t,t.return,e)}}function sd(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new l6),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new l6),t;default:throw Error(l(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=uU.bind(null,e,t);t.then(r,r)}})}function sf(e,t,n){var r=t.deletions;if(null!==r)for(var a=0;a<r.length;a++){var o=r[a],i=e,s=t,u=s;e:for(;null!==u;){switch(u.tag){case 27:if(cO(u.type)){so=u.stateNode,si=!1;break e}break;case 5:so=u.stateNode,si=!1;break e;case 3:case 4:so=u.stateNode.containerInfo,si=!0;break e}u=u.return}if(null===so)throw Error(l(160));ss(i,s,o),so=null,si=!1,null!==(i=o.alternate)&&(i.return=null),o.return=null}if(13886&t.subtreeFlags)for(t=t.child;null!==t;)sg(t,e,n),t=t.sibling}var sp=null;function sg(e,t,n){var r=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(4&a&&null!==(r=null!==(r=e.updateQueue)?r.events:null))for(var o=0;o<r.length;o++){var i=r[o];i.ref.impl=i.nextImpl}sf(t,e,n),sm(e),4&a&&(lT(3,e,e.return),lE(3,e),lT(5,e,e.return));break;case 1:sf(t,e,n),sm(e),512&a&&(l4||null===r||lP(r,r.return)),64&a&&l2&&null!==(e=e.updateQueue)&&null!==(t=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?t:n.concat(t));break;case 26:if(o=sp,sf(t,e,n),sm(e),512&a&&(l4||null===r||lP(r,r.return)),4&a)if(a=null!==r?r.memoizedState:null,n=e.memoizedState,null===r)if(null===n)if(null===e.stateNode)if(l2)e.stateNode=ck(e.type,e.memoizedProps,t.containerInfo,e);else{e:{t=e.type,n=e.memoizedProps,a=o.ownerDocument||o;t:switch(t){case"title":(!(r=a.getElementsByTagName("title")[0])||r[e3]||r[eQ]||"http://www.w3.org/2000/svg"===r.namespaceURI||r.hasAttribute("itemprop"))&&(r=a.createElement(t),a.head.insertBefore(r,a.querySelector("head > title"))),cg(r,t,n),r[eQ]=e,tt(r),t=r;break e;case"link":if(o=dT("link","href",a).get(t+(n.href||""))){for(i=0;i<o.length;i++)if((r=o[i]).getAttribute("href")===(null==n.href||""===n.href?null:n.href)&&r.getAttribute("rel")===(null==n.rel?null:n.rel)&&r.getAttribute("title")===(null==n.title?null:n.title)&&r.getAttribute("crossorigin")===(null==n.crossOrigin?null:n.crossOrigin)){o.splice(i,1);break t}}cg(r=a.createElement(t),t,n),a.head.appendChild(r);break;case"meta":if(o=dT("meta","content",a).get(t+(n.content||""))){for(i=0;i<o.length;i++)if((r=o[i]).getAttribute("content")===(null==n.content?null:""+n.content)&&r.getAttribute("name")===(null==n.name?null:n.name)&&r.getAttribute("property")===(null==n.property?null:n.property)&&r.getAttribute("http-equiv")===(null==n.httpEquiv?null:n.httpEquiv)&&r.getAttribute("charset")===(null==n.charSet?null:n.charSet)){o.splice(i,1);break t}}cg(r=a.createElement(t),t,n),a.head.appendChild(r);break;default:throw Error(l(468,t))}r[eQ]=e,tt(r),t=r}e.stateNode=t}else l2||d_(o,e.type,e.stateNode);else e.stateNode=dw(o,n,e.memoizedProps);else a!==n?(null===a?null===(t=r.stateNode)||l4||t.parentNode.removeChild(t):a.count--,null===n?l2||d_(o,e.type,e.stateNode):dw(o,n,e.memoizedProps)):null===n&&null!==e.stateNode&&lD(e,e.memoizedProps,r.memoizedProps);break;case 27:sf(t,e,n),sm(e),512&a&&(l4||null===r||lP(r,r.return)),null!==r&&4&a&&lD(e,e.memoizedProps,r.memoizedProps);break;case 5:if(o=l3,l3=!1,sf(t,e,n),l3=o,sm(e),512&a&&(l4||null===r||lP(r,r.return)),32&e.flags){t=e.stateNode;try{tA(t,""),tc=!0}catch(t){uD(e,e.return,t)}}4&a&&null!=e.stateNode&&(t=e.memoizedProps,lD(e,t,null!==r?r.memoizedProps:t)),1024&a&&(l5=!0);break;case 6:if(sf(t,e,n),sm(e),4&a){if(null===e.stateNode)throw Error(l(162));t=e.memoizedProps,n=e.stateNode;try{n.nodeValue=t,tc=!0}catch(t){uD(e,e.return,t)}}break;case 3:if(tc=!1,dE=null,o=sp,sp=dc(t.containerInfo),sf(t,e,n),sp=o,sm(e),4&a&&null!==r&&r.memoizedState.isDehydrated)try{fl(t.containerInfo)}catch(t){uD(e,e.return,t)}l5&&(l5=!1,function e(t){if(1024&t.subtreeFlags)for(t=t.child;null!==t;){var n=t;e(n),5===n.tag&&1024&n.flags&&(n=n.stateNode,dX=!0,n.reset(),dX=!1),t=t.sibling}}(e)),tc=!1;break;case 4:a=l3,l3=l2,r=td(),o=sp,sp=dc(e.stateNode.containerInfo),sf(t,e,n),sm(e),sp=o,tc&&l7&&(se=!0),tc=r,l3=a;break;case 12:sf(t,e,n),sm(e);break;case 31:case 19:sf(t,e,n),sm(e),4&a&&null!==(t=e.updateQueue)&&(e.updateQueue=null,sd(e,t));break;case 13:sf(t,e,n),sm(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==r&&null!==r.memoizedState)&&(sZ=eb()),4&a&&null!==(t=e.updateQueue)&&(e.updateQueue=null,sd(e,t));break;case 22:o=null!==e.memoizedState,i=null!==r&&null!==r.memoizedState;var s=l2,u=l4,c=l3;l2=s||o,l3=c||o,l4=u||i,sf(t,e,n),l4=u,l3=c,l2=s,sm(e),8192&a&&((t=e.stateNode)._visibility=o?-2&t._visibility:1|t._visibility,!o||null===r||i||l2||l4||(t=i||l4,n=l2,r=l4,l2=o||l2,l4=t,function e(t,n){for(t=t.child;null!==t;){var r=t;switch(r.tag){case 0:case 11:case 14:case 15:lT(4,r,r.return),e(r,n);break;case 1:lP(r,r.return);var a=r.stateNode;"function"==typeof a.componentWillUnmount&&lA(r,r.return,a),e(r,n);break;case 27:0!=(2&n)&&di(r.stateNode,r.type,r.memoizedProps);case 5:lP(r,r.return),5!==r.tag&&27!==r.tag||lL(r),e(r,n);break;case 6:lL(r);break;case 26:lP(r,r.return),a=r.stateNode,null!==r.memoizedState||null===a||l4||a.parentNode.removeChild(a),e(r,n);break;case 22:null===r.memoizedState&&e(r,n);break;case 30:lP(r,r.return),e(r,n);break;case 7:lP(r,r.return);default:e(r,n)}t=t.sibling}}(e,2),l2=n,l4=r),!o&&l3||sa(e,o)),4&a&&null!==(t=e.updateQueue)&&null!==(n=t.retryQueue)&&(t.retryQueue=null,sd(e,n));break;case 30:512&a&&(l4||null===r||lP(r,r.return)),a=td(),o=l7,i=(0x13ffff00&n)===n,s=e.memoizedProps,l7=i&&"none"!==rf(s.default,s.update),sf(t,e,n),sm(e),i&&null!==r&&tc&&(e.flags|=4),l7=o,tc=a;break;case 21:break;case 7:512&a&&(l4||null===r||lP(r,r.return)),r&&null!==r.stateNode&&(r.stateNode._fragmentFiber=e);default:sf(t,e,n),sm(e)}}function sm(e){var t=e.flags;if(2&t){try{for(var n,r=e.return;null!==r;){if(lF(r)){n=r;break}r=r.return}r=null;for(var a=e.return;null!==a;){if(lR(a)){var o=a.stateNode;null===r?r=[o]:r.push(o)}if(lI(a))break;a=a.return}var i=r;if(null==n)throw Error(l(160));switch(n.tag){case 27:var s=n.stateNode,u=lM(e);lz(e,u,s,i);break;case 5:var c=n.stateNode;32&n.flags&&(tA(c,""),n.flags&=-33);var d=lM(e);lz(e,d,c,i);break;case 3:case 4:var f=n.stateNode.containerInfo,p=lM(e);!function e(t,n,r,a){var o=t.tag;if(5===o||6===o)o=t.stateNode,n?(9===r.nodeType?r.body:"HTML"===r.nodeName?r.ownerDocument.body:r).insertBefore(o,n):((n=9===r.nodeType?r.body:"HTML"===r.nodeName?r.ownerDocument.body:r).appendChild(o),null!=(r=r._reactRootContainer)||null!==n.onclick||(n.onclick=tj)),lN(t,a),tc=!0;else if(4!==o&&(27===o&&(lN(t,a),a=null,cO(t.type)&&(r=t.stateNode,n=null)),null!==(t=t.child)))for(e(t,n,r,a),t=t.sibling;null!==t;)e(t,n,r,a),t=t.sibling}(e,p,f,i);break;default:throw Error(l(161))}}catch(t){uD(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function sh(e,t){if(9270&t.subtreeFlags)for(t=t.child;null!==t;)sy(t,e),t=t.sibling;else!function e(t,n){for(t=t.child;null!==t;){if(30===t.tag){var r=t.memoizedProps,a=t.stateNode,o=rc(r,a),i=rf(r.default,r.update);if(n)var l=null===(a=a.clones)?null:a.map(cM);else l=t.memoizedState,t.memoizedState=null;a=t;var s=t.child;lX=0,o=l1(a,s,o,o,i,l,!1),0!=(4&t.flags)&&o&&(n||ul(t,r.onUpdate))}else 0!=(0x2000000&t.subtreeFlags)&&e(t,n);t=t.sibling}}(t,!1)}function sy(e,t){var n=e.alternate;if(null===n)lK(e,!1);else switch(e.tag){case 3:if(st=l9=!1,lV(),sh(t,e),!l9&&!se){if(null!==(e=lH))for(var r=0;r<e.length;r+=3){n=e[r];var a=e[r+1];cj(n,e[r+2]),null!==(n=n.ownerDocument.documentElement)&&n.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group("+a+")"})}null!==(e=9===(e=t.containerInfo).nodeType?e.documentElement:e.ownerDocument.documentElement)&&""===e.style.viewTransitionName&&(e.style.viewTransitionName="none",e.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group(root)"}),e.animate({width:[0,0],height:[0,0]},{duration:0,fill:"forwards",pseudoElement:"::view-transition"})),st=!0}lH=null;break;case 5:default:sh(t,e);break;case 4:r=l9,l9=!1,sh(t,e),l9&&(se=!0),l9=r;break;case 22:null===e.memoizedState&&(null!==n.memoizedState?lK(e,!1):sh(t,e));break;case 30:r=l9,a=lV(),l9=!1,sh(t,e),l9&&(e.flags|=4);var o=e.memoizedProps,i=e.stateNode;t=rc(o,i),i=rc(n.memoizedProps,i);var l=rf(o.default,o.update);"none"===l?t=!1:(o=n.memoizedState,n.memoizedState=null,n=e.child,lX=0,t=l1(e,n,t,i,l,o,!0),lX!==(null===o?0:o.length)&&(e.flags|=32)),0!=(4&e.flags)&&t?(ul(e,e.memoizedProps.onUpdate),lH=a):null!==a&&(a.push.apply(a,lH),lH=a),l9=0!=(32&e.flags)||r}}function sb(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)sr(e,t.alternate,t),t=t.sibling}function sv(e,t){var n=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),e=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(e=t.memoizedState.cachePool.pool),e!==n&&(null!=e&&e.refCount++,null!=n&&ay(n))}function sw(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&ay(e))}function sS(e,t,n,r){var a=(0x13ffff00&n)===n;if(t.subtreeFlags&(a?10262:10256))for(t=t.child;null!==t;)sk(e,t,n,r),t=t.sibling;else a&&function e(t){for(t=t.child;null!==t;)30===t.tag?lW(t.child,!1):0!=(0x2000000&t.subtreeFlags)&&e(t),t=t.sibling}(t)}function sk(e,t,n,r){var a=(0x13ffff00&n)===n;a&&null===t.alternate&&null!==t.return&&null!==t.return.alternate&&l0(t);var o=t.flags;switch(t.tag){case 0:case 11:case 15:sS(e,t,n,r),2048&o&&lE(9,t);break;case 1:case 31:case 13:default:sS(e,t,n,r);break;case 3:sS(e,t,n,r),a&&st&&("root"===(e=9===(e=e.containerInfo).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e).style.viewTransitionName&&(e.style.viewTransitionName=""),null!==(e=e.ownerDocument.documentElement)&&"none"===e.style.viewTransitionName&&(e.style.viewTransitionName="")),2048&o&&(o=null,null!==t.alternate&&(o=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==o&&(t.refCount++,null!=o&&ay(o)));break;case 12:if(2048&o){sS(e,t,n,r),o=t.stateNode;try{var i=t.memoizedProps,l=i.id,s=i.onPostCommit;"function"==typeof s&&s(l,null===t.alternate?"mount":"update",o.passiveEffectDuration,-0)}catch(e){uD(t,t.return,e)}}else sS(e,t,n,r);break;case 23:break;case 22:i=t.stateNode,l=t.alternate,null!==t.memoizedState?(a&&null!==l&&null===l.memoizedState&&l0(l),2&i._visibility?sS(e,t,n,r):sx(e,t)):(a&&null!==l&&null!==l.memoizedState&&l0(t),2&i._visibility?sS(e,t,n,r):(i._visibility|=2,function e(t,n,r,a,o){for(o=o&&0!=(10256&n.subtreeFlags),n=n.child;null!==n;){var i=n,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(t,i,r,a,o),lE(8,i);break;case 23:break;case 22:var s=i.stateNode;null!==i.memoizedState?2&s._visibility?e(t,i,r,a,o):sx(t,i):(s._visibility|=2,e(t,i,r,a,o)),o&&2048&l&&sv(i.alternate,i);break;case 24:e(t,i,r,a,o),o&&2048&l&&sw(i.alternate,i);break;default:e(t,i,r,a,o)}n=n.sibling}}(e,t,n,r,0!=(10256&t.subtreeFlags)))),2048&o&&sv(l,t);break;case 24:sS(e,t,n,r),2048&o&&sw(t.alternate,t);break;case 30:a&&null!==(o=t.alternate)&&(lW(o.child,!0),lW(t.child,!0)),sS(e,t,n,r)}}function sx(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=t,r=n.flags;switch(n.tag){case 22:sx(e,n),2048&r&&sv(n.alternate,n);break;case 24:sx(e,n),2048&r&&sw(n.alternate,n);break;default:sx(e,n)}t=t.sibling}}var sE=8192;function sT(e,t,n){if(e.subtreeFlags&sE)for(e=e.child;null!==e;)s_(e,t,n),e=e.sibling}function s_(e,t,n){switch(e.tag){case 26:sT(e,t,n),e.flags&sE&&(null!==e.memoizedState?function(e,t,n,r){if("stylesheet"===n.type&&("string"!=typeof r.media||!1!==matchMedia(r.media).matches)&&0==(4&n.state.loading)){if(null===n.instance){var a=dm(r.href),o=t.querySelector(dh(a));if(o){null!==(t=o._p)&&"object"==typeof t&&"function"==typeof t.then&&(e.count++,e=dI.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=o,tt(o);return}o=t.ownerDocument||t,r=dy(r),(a=ds.get(a))&&dk(r,a),tt(o=o.createElement("link"));var i=o;i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),cg(o,"link",r),n.instance=o}null===e.stylesheets&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&0==(3&n.state.loading)&&(e.count++,n=dI.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}(n,sp,e.memoizedState,e.memoizedProps):(e=e.stateNode,(0x13ffff40&t)===t&&dN(n,e)));break;case 5:sT(e,t,n),e.flags&sE&&(e=e.stateNode,(0x13ffff40&t)===t&&dN(n,e));break;case 3:case 4:var r=sp;sp=dc(e.stateNode.containerInfo),sT(e,t,n),sp=r;break;case 22:null===e.memoizedState&&(null!==(r=e.alternate)&&null!==r.memoizedState?(r=sE,sE=0x1000000,sT(e,t,n),sE=r):sT(e,t,n));break;case 30:if(0!=(e.flags&sE)&&null!=(r=e.memoizedProps.name)&&"auto"!==r){var a=e.stateNode;a.paired=null,null===l$&&(l$=new Map),l$.set(r,a)}sT(e,t,n);break;default:sT(e,t,n)}}function sA(e){var t=e.alternate;if(null!==t&&null!==(e=t.child)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(null!==e)}}function sC(e){var t=e.deletions;if(0!=(16&e.flags)){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];l8=r,sN(r,e)}sA(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)sP(e),e=e.sibling}function sP(e){switch(e.tag){case 0:case 11:case 15:sC(e),2048&e.flags&&lT(9,e,e.return);break;case 3:case 12:default:sC(e);break;case 22:var t=e.stateNode;null!==e.memoizedState&&2&t._visibility&&(null===e.return||13!==e.return.tag)?(t._visibility&=-3,function e(t){var n=t.deletions;if(0!=(16&t.flags)){if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];l8=a,sN(a,t)}sA(t)}for(t=t.child;null!==t;){switch((n=t).tag){case 0:case 11:case 15:lT(8,n,n.return),e(n);break;case 22:2&(r=n.stateNode)._visibility&&(r._visibility&=-3,e(n));break;default:e(n)}t=t.sibling}}(e)):sC(e)}}function sN(e,t){for(;null!==l8;){var n=l8;switch(n.tag){case 0:case 11:case 15:lT(8,n,t);break;case 23:case 22:if(null!==n.memoizedState&&null!==n.memoizedState.cachePool){var r=n.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:ay(n.memoizedState.cache)}if(null!==(r=n.child))r.return=n,l8=r;else for(n=e;null!==l8;){var a=(r=l8).sibling,o=r.return;if(!function e(t){var n=t.alternate;null!==n&&(t.alternate=null,e(n)),t.child=null,t.deletions=null,t.sibling=null,5===t.tag&&null!==(n=t.stateNode)&&e6(n),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}(r),r===n){l8=null;break}if(null!==a){a.return=o,l8=a;break}l8=o}}}var sO={getCacheForType:function(e){var t=au(am),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return au(am).controller.signal}},sL="function"==typeof WeakMap?WeakMap:Map,sI=0,sR=null,sj=null,sD=0,sF=0,sM=null,sz=!1,sB=!1,sU=!1,s$=0,sq=0,sH=0,sV=0,sX=0,sG=0,sW=0,sY=null,sK=null,sQ=!1,sZ=0,sJ=0,s0=1/0,s1=null,s2=null,s4=0,s3=null,s5=null,s6=0,s8=0,s9=null,s7=null,ue=null,ut=null,un=null,ur=0,ua=null;function uo(){return 0!=(2&sI)&&0!==sD?sD&-sD:null!==G.T?u1():eW()}function ui(){if(0===sG)if(0==(0x20000000&sD)||rZ){var e=eR;0==(3932160&(eR<<=1))&&(eR=262144),sG=e}else sG=0x20000000;return null!==(e=ot.current)&&(e.flags|=32),sG}function ul(e,t){if(null!=t){var n=e.stateNode,r=n.ref;null===r&&(r=n.ref=cU(rc(e.memoizedProps,n))),null===ut&&(ut=[]),ut.push(t.bind(null,r))}}function us(e,t,n){(e===sR&&(2===sF||9===sF)||null!==e.cancelPendingCommit)&&(ug(e,0),ud(e,sD,sG,!1)),e$(e,n),(0==(2&sI)||e!==sR)&&(e===sR&&(0==(2&sI)&&(sV|=n),4===sq&&ud(e,sD,sG,!1)),uW(e))}function uu(e,t,n){if(0!=(6&sI))throw Error(l(327));for(var r=!n&&0==(127&t)&&0==(t&e.expiredLanes)||eM(e,t),a=r?function(e,t){var n=sI;sI|=2;var r=uy(),a=ub();sR!==e||sD!==t?(s1=null,s0=eb()+500,ug(e,t)):sB=eM(e,t);e:for(;;)try{if(0!==sF&&null!==sj){t=sj;var o=sM;t:switch(sF){case 1:sF=0,sM=null,ux(e,t,o,1);break;case 2:case 9:if(aR(o)){sF=0,sM=null,uk(t);break}t=function(){2!==sF&&9!==sF||sR!==e||(sF=7),uW(e)},o.then(t,t);break e;case 3:sF=7;break e;case 4:sF=5;break e;case 7:aR(o)?(sF=0,sM=null,uk(t)):(sF=0,sM=null,ux(e,t,o,7));break;case 5:var i=null;switch(sj.tag){case 26:i=sj.memoizedState;case 5:case 27:var s=sj;if(i?dC(i):s.stateNode.complete){sF=0,sM=null;var u=s.sibling;if(null!==u)sj=u;else{var c=s.return;null!==c?(sj=c,uE(c)):sj=null}break t}}sF=0,sM=null,ux(e,t,o,5);break;case 6:sF=0,sM=null,ux(e,t,o,6);break;case 8:up(),sq=6;break e;default:throw Error(l(462))}}for(;null!==sj&&!eh();)uS(sj);break}catch(t){um(e,t)}return(at=ae=null,G.H=r,G.A=a,sI=n,null!==sj)?0:(sR=null,sD=0,ry(),sq)}(e,t):uw(e,t,!0),o=r;;){if(0===a)sB&&!r&&ud(e,t,0,!1);else{if(n=e.current.alternate,o&&!function(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&null!==(n=t.updateQueue)&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!nV(o(),a))return!1}catch(e){return!1}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(n)){a=uw(e,t,!1),o=!1;continue}if(2===a){if(o=t,e.errorRecoveryDisabledLanes&o)var i=0;else i=0!=(i=-0x20000001&e.pendingLanes)?i:0x20000000&i?0x20000000:0;if(0!==i){t=i;e:{a=sY;var s=e.current.memoizedState.isDehydrated;if(s&&(ug(e,i).flags|=256),2!==(i=uw(e,i,!1))&&6!==i){if(sU&&!s){e.errorRecoveryDisabledLanes|=o,sV|=o,a=4;break e}o=sK,sK=a,null!==o&&(null===sK?sK=o:sK.push.apply(sK,o))}a=i}if(o=!1,2!==a)continue}}if(1===a){ug(e,0),ud(e,t,0,!0);break}e:{switch(r=e,o=a){case 0:case 1:throw Error(l(345));case 4:if((4194048&t)!==t&&(0x3c00000&t)!==t)break;case 6:ud(r,t,sG,!sz);break e;case 2:sK=null;break;case 3:case 5:break;default:throw Error(l(329))}if((0x3c00000&t)===t&&10<(a=sZ+300-eb())){if(ud(r,t,sG,!sz),0!==eF(r,0,!0))break e;s6=t,r.timeoutHandle=cT(uc.bind(null,r,n,sK,s1,sQ,t,sG,sV,sW,sz,o,"Throttled",-0,0),a);break e}uc(r,n,sK,s1,sQ,t,sG,sV,sW,sz,o,null,-0,0)}}break}uW(e)}function uc(e,t,n,r,a,o,i,l,s,u,c,d,f,p){e.timeoutHandle=-1;var g,m,h=t.subtreeFlags,y=(0x13ffff00&o)===o;if(d=null,(y||8192&h||0x1002000==(0x1002000&h))&&(l$=null,s_(t,o,d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:tj}),y&&(h=d,null!=(y=(9===(y=e.containerInfo).nodeType?y:y.ownerDocument).__reactViewTransition)&&(h.count++,h.waitingForViewTransition=!0,h=dI.bind(h),y.finished.then(h,h))),null!==(g=d,m=h=(0x3c00000&o)===o?sZ-eb():(4194048&o)===o?sJ-eb():0,g.stylesheets&&0===g.count&&dD(g,g.stylesheets),h=0<g.count||0<g.imgCount?function(e){var t=setTimeout(function(){if(g.stylesheets&&dD(g,g.stylesheets),g.unsuspend){var e=g.unsuspend;g.unsuspend=null,e()}},6e4+m);0<g.imgBytes&&0===dO&&(dO=62500*function(){if("function"==typeof performance.getEntriesByType){for(var e=0,t=0,n=performance.getEntriesByType("resource"),r=0;r<n.length;r++){var a=n[r],o=a.transferSize,i=a.initiatorType,l=a.duration;if(o&&l&&ch(i)){for(i=0,l=a.responseEnd,r+=1;r<n.length;r++){var s=n[r],u=s.startTime;if(u>l)break;var c=s.transferSize,d=s.initiatorType;c&&ch(d)&&(i+=c*((s=s.responseEnd)<l?1:(l-u)/(s-u)))}if(--r,t+=8*(o+i)/(a.duration/1e3),10<++e)break}}if(0<e)return t/e/1e6}return navigator.connection&&"number"==typeof(e=navigator.connection.downlink)?e:5}());var n=setTimeout(function(){if(g.waitingForImages=!1,0===g.count&&(g.stylesheets&&dD(g,g.stylesheets),g.unsuspend)){var e=g.unsuspend;g.unsuspend=null,e()}},(g.imgBytes>dO?50:800)+m);return g.unsuspend=e,function(){g.unsuspend=null,clearTimeout(t),clearTimeout(n)}}:null))){s6=o,e.cancelPendingCommit=h(u_.bind(null,e,t,o,n,r,a,i,l,s,u,c,d,null,f,p)),ud(e,o,i,!u);return}u_(e,t,o,n,r,a,i,l,s,u,c,d)}function ud(e,t,n,r){t=ez(e,t)&~sX&~sV,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var a=t;0<a;){var o=31-eN(a),i=1<<o;r[o]=-1,a&=~i}0!==n&&eq(e,n,t)}function uf(){return 0!=(6&sI)||(uY(0,!1),!1)}function up(){if(null!==sj){if(0===sF)var e=sj.return;else e=sj,at=ae=null,oO(e),aB=null,aU=0,e=sj;for(;null!==e;)lx(e.alternate,e),e=e.return;sj=null}}function ug(e,t){var n=e.timeoutHandle;return -1!==n&&(e.timeoutHandle=-1,c_(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),s6=0,up(),sR=e,sj=n=rA(e.current,null),sD=t,sF=0,sM=null,sz=!1,sB=eM(e,t),sU=!1,sW=sG=sX=sV=sH=sq=0,sK=sY=null,sQ=!1,s$=ez(e,t),ry(),n}function um(e,t){op=null,G.H=iL,t===aN||t===aL?(t=aM(),sF=3):t===aO?(t=aM(),sF=4):sF=t===iY?8:null!==t&&"object"==typeof t&&"function"==typeof t.then?6:1,sM=t,null===sj&&(sq=1,iH(e,rj(t,e.current)))}function uh(){var e=ot.current;return null===e||((4194048&sD)===sD?null===on:((0x3c00000&sD)===sD||0!=(0x20000000&sD))&&e===on)}function uy(){var e=G.H;return G.H=iL,null===e?iL:e}function ub(){var e=G.A;return G.A=sO,e}function uv(){sq=4,sz||(4194048&sD)!==sD&&null!==ot.current||(sB=!0),0==(0x7ffffff&sH)&&0==(0x7ffffff&sV)||null===sR||ud(sR,sD,sG,!1)}function uw(e,t,n){var r=sI;sI|=2;var a=uy(),o=ub();(sR!==e||sD!==t)&&(s1=null,ug(e,t)),t=!1;var i=sq;e:for(;;)try{if(0!==sF&&null!==sj){var l=sj,s=sM;switch(sF){case 8:up(),i=6;break e;case 3:case 2:case 9:case 6:null===ot.current&&(t=!0);var u=sF;if(sF=0,sM=null,ux(e,l,s,u),n&&sB){i=0;break e}break;default:u=sF,sF=0,sM=null,ux(e,l,s,u)}}(function(){for(;null!==sj;)uS(sj)})(),i=sq;break}catch(t){um(e,t)}return t&&e.shellSuspendCounter++,at=ae=null,sI=r,G.H=a,G.A=o,null===sj&&(sR=null,sD=0,ry()),i}function uS(e){var t=lh(e.alternate,e,s$);e.memoizedProps=e.pendingProps,null===t?uE(e):sj=t}function uk(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=i9(n,t,t.pendingProps,t.type,void 0,sD);break;case 11:t=i9(n,t,t.pendingProps,t.type.render,t.ref,sD);break;case 5:oO(t);var r=t;r===rK&&(rZ?(r3(r),5===r.tag&&null!=r.stateNode&&(rQ=r.stateNode)):(r3(r),rZ=!0));default:lx(n,t),t=lh(n,t=sj=rC(t,s$),s$)}e.memoizedProps=e.pendingProps,null===t?uE(e):sj=t}function ux(e,t,n,r){at=ae=null,oO(t),aB=null,aU=0;var a=t.return;try{if(function(e,t,n,r,a){if(n.flags|=32768,null!==r&&"object"==typeof r&&"function"==typeof r.then){if(null!==(t=n.alternate)&&ai(t,n,a,!0),null!==(n=ot.current)){switch(n.tag){case 31:case 13:case 19:return null===on?uv():null===n.alternate&&0===sq&&(sq=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===aI?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=new Set([r]):t.add(r),uF(e,r,a)),!1;case 22:return n.flags|=65536,r===aI?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=new Set([r]):n.add(r),uF(e,r,a)),!1}throw Error(l(435,n.tag))}return uF(e,r,a),uv(),!1}if(rZ)return null!==(t=ot.current)?(0==(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==r1&&r9(rj(e=Error(l(422),{cause:r}),n))):(r!==r1&&r9(rj(t=Error(l(423),{cause:r}),n)),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=rj(r,n),a=iX(e.stateNode,r,a),a0(e,a),4!==sq&&(sq=2)),!1;var o=Error(l(520),{cause:r});if(o=rj(o,n),null===sY?sY=[o]:sY.push(o),4!==sq&&(sq=2),null===t)return!0;r=rj(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=iX(n.stateNode,r,e),a0(n,e),!1;case 1:if(t=n.type,o=n.stateNode,0==(128&n.flags)&&("function"==typeof t.getDerivedStateFromError||null!==o&&"function"==typeof o.componentDidCatch&&(null===s2||!s2.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,iW(a=iG(a),e,n,r),a0(n,a),!1;break;case 22:if(null!==n.memoizedState)return n.flags|=65536,!1}n=n.return}while(null!==n)return!1}(e,a,t,n,sD)){sq=1,iH(e,rj(n,e.current)),sj=null;return}}catch(t){if(null!==a)throw sj=a,t;sq=1,iH(e,rj(n,e.current)),sj=null;return}32768&t.flags?(rZ||1===r?e=!0:sB||0!=(0x20000000&sD)?e=!1:(sz=e=!0,(2===r||9===r||3===r||6===r)&&null!==(r=ot.current)&&13===r.tag&&(r.flags|=16384)),uT(t,e)):uE(t)}function uE(e){var t=e;do{if(0!=(32768&t.flags))return void uT(t,sz);e=t.return;var n=function(e,t,n){var r=t.pendingProps;switch(rW(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return lk(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),ar(am),ei(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(null===e||null===e.child)&&(r5(t)?ly(t):null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,r8())),lk(t),null;case 26:var a=t.type,o=t.memoizedState;return null===e?(ly(t),null!==o?(lk(t),lv(t,o)):(lk(t),lb(t,a,null,r,n))):o?o!==e.memoizedState?(ly(t),lk(t),lv(t,o)):(lk(t),t.flags&=-0x1000001):((e=e.memoizedProps)!==r&&ly(t),lk(t),lb(t,a,e,r,n)),null;case 27:if(es(t),n=er.current,a=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&ly(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return lk(t),t.subtreeFlags&=-0x2000001,null}e=et.current,r5(t)?r4(t,e):(t.stateNode=e=da(a,r,n),ly(t))}return lk(t),t.subtreeFlags&=-0x2000001,null;case 5:if(es(t),a=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&ly(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return lk(t),t.subtreeFlags&=-0x2000001,null}if(o=et.current,r5(t))r4(t,o);else{var i=cv(er.current);switch(o){case 1:o=i.createElementNS("http://www.w3.org/2000/svg",a);break;case 2:o=i.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;default:switch(a){case"svg":o=i.createElementNS("http://www.w3.org/2000/svg",a);break;case"math":o=i.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;case"script":(o=i.createElement("div")).innerHTML="<script><\/script>",o=o.removeChild(o.firstChild);break;case"select":o="string"==typeof r.is?i.createElement("select",{is:r.is}):i.createElement("select"),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o="string"==typeof r.is?i.createElement(a,{is:r.is}):i.createElement(a)}}o[eQ]=t,o[eZ]=r;e:for(i=t.child;null!==i;){if(5===i.tag||6===i.tag)o.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(t.stateNode=o,cg(o,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&ly(t)}}return lk(t),t.subtreeFlags&=-0x2000001,lb(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ly(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(l(166));if(e=er.current,r5(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=rK))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[eQ]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cd(e.nodeValue,n)))||r2(t,!0)}else(e=cv(e).createTextNode(r))[eQ]=t,t.stateNode=e}return lk(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=r5(t),null!==n){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(l(557));e[eQ]=t}else r6(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;lk(t),e=!1}else n=r8(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return ol(t),t;return ol(t),null}if(0!=(128&t.flags))throw Error(l(558))}return lk(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=r5(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(l(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(l(317));a[eQ]=t}else r6(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;lk(t),a=!1}else a=r8(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a){if(256&t.flags)return ol(t),t;return ol(t),null}}if(ol(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,a=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),o=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),lw(t,t.updateQueue),lk(t),null;case 4:return ei(),null===e&&ct(t.stateNode.containerInfo),t.flags|=0x4000000,lk(t),null;case 10:return ar(t.type),lk(t),null;case 19:if(oc(t),null===(r=t.memoizedState))return lk(t),null;if(a=0!=(128&t.flags),null===(o=r.rendering))if(a)lS(r,!1);else{if(0!==sq||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(o=od(e))){for(t.flags|=128,lS(r,!1),t.updateQueue=e=o.updateQueue,lw(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rC(n,e),n=n.sibling;return ou(t,1&os.current|2),rZ&&rV(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&eb()>s0&&(t.flags|=128,a=!0,lS(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=od(o))){if(t.flags|=128,a=!0,t.updateQueue=e=e.updateQueue,lw(t,e),lS(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!o.alternate&&!rZ)return lk(t),null}else 2*eb()-r.renderingStartTime>s0&&0x20000000!==n&&(t.flags|=128,a=!0,lS(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=r.last)?e.sibling=o:t.child=o,r.last=o)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=eb(),e.sibling=null,o=os.current,o=a?1&o|2:1&o,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rZ?ou(t,o):(n=o,ee(ot,t),ee(os,n),null===on&&(on=t)),rZ&&rV(t,r.treeForkCount),e}return lk(t),null;case 22:case 23:return ol(t),oe(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(lk(t),6&t.subtreeFlags&&(t.flags|=8192)):lk(t),null!==(n=t.updateQueue)&&lw(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&J(a_),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ar(am),lk(t),null;case 25:return null;case 30:return t.flags|=0x2000000,lk(t),null}throw Error(l(156,t.tag))}(t.alternate,t,s$);if(null!==n){sj=n;return}if(null!==(t=t.sibling)){sj=t;return}sj=t=e}while(null!==t)0===sq&&(sq=5)}function uT(e,t){do{var n=function(e,t){switch(rW(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ar(am),ei(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return es(t),null;case 31:if(null!==t.memoizedState){if(ol(t),null===t.alternate)throw Error(l(340));r6()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(ol(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(l(340));r6()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return oc(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ei(),null;case 10:return ar(t.type),null;case 22:case 23:return ol(t),oe(),null!==e&&J(a_),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return ar(am),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,sj=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){sj=e;return}sj=e=n}while(null!==e)sq=6,sj=null}function u_(e,t,n,r,a,o,i,s,u,c,d,f){e.cancelPendingCommit=null;do uI();while(0!==s4)if(0!=(6&sI))throw Error(l(327));if(null!==t){if(t===e.current)throw Error(l(177));e===sR&&(sj=sR=null,sD=0),s5=t,s3=e,s6=n,s9=a,s7=r,function(e,t,n,r,a,o,i){var l,s=t.lanes|t.childLanes;if(s8=s,!function(e,t,n,r,a,o){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(n=i&~n;0<n;){var c=31-eN(n),d=1<<c;l[c]=0,s[c]=-1;var f=u[c];if(null!==f)for(u[c]=null,c=0;c<f.length;c++){var p=f[c];null!==p&&(p.lane&=-0x20000001)}n&=~d}0!==r&&eq(e,r,0),0!==o&&0===a&&0!==e.tag&&(e.suspendedLanes|=o&~(i&~t))}(e,n,s|=rh,r,a,o),ut=null,(0x13ffff00&n)===n?(l=e.transitionTypes,e.transitionTypes=null,un=l,r=10262):(un=null,r=10256),0!=(t.subtreeFlags&r)||0!=(t.flags&r)?(e.callbackNode=null,e.callbackPriority=0,eg(ek,function(){return uR(),null})):(e.callbackNode=null,e.callbackPriority=0),lU=!1,r=0!=(13878&t.flags),0!=(13878&t.subtreeFlags)||r){r=G.T,G.T=null,a=W.p,W.p=2,o=sI,sI|=4;try{!function(e,t,n){if(e=e.containerInfo,cy=dX,nQ(e=nK(e))){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{var a=(r=(r=e.ownerDocument)&&r.defaultView||window).getSelection&&r.getSelection();if(a&&0!==a.rangeCount){r=a.anchorNode;var o,i=a.anchorOffset,l=a.focusNode;a=a.focusOffset;try{r.nodeType,l.nodeType}catch(e){r=null;break e}var s=0,u=-1,c=-1,d=0,f=0,p=e,g=null;t:for(;;){for(;p!==r||0!==i&&3!==p.nodeType||(u=s+i),p!==l||0!==a&&3!==p.nodeType||(c=s+a),3===p.nodeType&&(s+=p.nodeValue.length),null!==(o=p.firstChild);)g=p,p=o;for(;;){if(p===e)break t;if(g===r&&++d===i&&(u=s),g===l&&++f===a&&(c=s),null!==(o=p.nextSibling))break;g=(p=g).parentNode}p=o}r=-1===u||-1===c?null:{start:u,end:c}}else r=null}r=r||{start:0,end:0}}else r=null;for(cb={focusedElem:e,selectionRange:r},dX=!1,n=(0x13ffff00&n)===n,l8=t,t=n?9270:1024;null!==l8;){if(e=l8,n&&null!==(r=e.deletions))for(i=0;i<r.length;i++)n&&lZ(r[i]);if(null===e.alternate&&0!=(2&e.flags))n&&lq(e),sn(n);else{if(22===e.tag){if(r=e.alternate,null!==e.memoizedState){null!==r&&null===r.memoizedState&&n&&lZ(r),sn(n);continue}else if(null!==r&&null!==r.memoizedState){n&&lq(e),sn(n);continue}}r=e.child,0!=(e.subtreeFlags&t)&&null!==r?(r.return=e,l8=r):(n&&function e(t){for(t=t.child;null!==t;){if(30===t.tag){var n=t.memoizedProps,r=rc(n,t.stateNode);n=rf(n.default,n.update),t.flags&=-5,"none"!==n&&lG(t,r,n,t.memoizedState=[],!1)}else 0!=(0x2000000&t.subtreeFlags)&&e(t);t=t.sibling}}(e),sn(n))}}l$=null}(e,t,n)}finally{sI=o,W.p=a,G.T=r}}s4=1,lU?ue=function(e,t,n,r,a,o,i,l,s){var u=9===t.nodeType?t:t.ownerDocument;try{var c=u.startViewTransition({update:function(){var t=u.defaultView,n=t.navigation&&t.navigation.transition,i=u.fonts.status;r();var l=[];if("loaded"===i&&(u.documentElement.clientHeight,"loading"===u.fonts.status&&l.push(u.fonts.ready)),i=l.length,null!==e)for(var s=e.suspenseyImages,c=0,d=0;d<s.length;d++){var f=s[d];if(!f.complete){var p=f.getBoundingClientRect();if(0<p.bottom&&0<p.right&&p.top<t.innerHeight&&p.left<t.innerWidth){if((c+=dP(f))>dO){l.length=i;break}f=new Promise(cz.bind(f)),l.push(f)}}}return 0<l.length?(t=Promise.race([Promise.all(l),new Promise(function(e){return setTimeout(e,500)})]).then(a,a),(n?Promise.allSettled([n.finished,t]):t).then(o,o)):(a(),n)?n.finished.then(o,o):void o()},types:n});u.__reactViewTransition=c;var d=[];return c.ready.then(function(){for(var e=u.documentElement.getAnimations({subtree:!0}),t=0;t<e.length;t++){var n=e[t],r=n.effect,a=r.pseudoElement;if(null!=a&&a.startsWith("::view-transition")){d.push(n),n=r.getKeyframes();for(var o=a=void 0,l=!0,s=0;s<n.length;s++){var c=n[s],f=c.width;if(void 0===a)a=f;else if(a!==f){l=!1;break}if(f=c.height,void 0===o)o=f;else if(o!==f){l=!1;break}delete c.width,delete c.height,"none"===c.transform&&delete c.transform}l&&void 0!==a&&void 0!==o&&(r.setKeyframes(n),(l=getComputedStyle(r.target,r.pseudoElement)).width!==a||l.height!==o)&&((l=n[0]).width=a,l.height=o,(l=n[n.length-1]).width=a,l.height=o,r.setKeyframes(n))}}i()},function(e){u.__reactViewTransition===c&&(u.__reactViewTransition=null);try{"object"==typeof e&&null!==e&&"InvalidStateError"===e.name&&("View transition was skipped because document visibility state is hidden."===e.message||"Skipping view transition because document visibility state has become hidden."===e.message||"Skipping view transition because viewport size changed."===e.message||"Transition was aborted because of invalid state"===e.message)&&(e=null),null!==e&&s(e)}finally{r(),a(),i()}}),c.finished.finally(function(){for(var e=0;e<d.length;e++)d[e].cancel();u.__reactViewTransition===c&&(u.__reactViewTransition=null),l()}),c}catch(e){return r(),a(),i(),null}}(i,e.containerInfo,un,uP,uN,uC,uO,uR,uA):(uP(),uN(),uO())}(e,t,n,i,s,u,f)}}function uA(e){0!==s4&&(0,s3.onRecoverableError)(e,{componentStack:null})}function uC(){3===s4&&(s4=0,sy(s5,s3),s4=4)}function uP(){if(1===s4){s4=0;var e=s3,t=s5,n=s6,r=0!=(13878&t.flags);if(0!=(13878&t.subtreeFlags)||r){r=G.T,G.T=null;var a=W.p;W.p=2;var o=sI;sI|=4;try{l7=se=!1,sg(t,e,n),n=cb;var i=nK(e.containerInfo),l=n.focusedElem,s=n.selectionRange;if(i!==l&&l&&l.ownerDocument&&function e(t,n){return!!t&&!!n&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(l.ownerDocument.documentElement,l)){if(null!==s&&nQ(l)){var u=s.start,c=s.end;if(void 0===c&&(c=u),"selectionStart"in l)l.selectionStart=u,l.selectionEnd=Math.min(c,l.value.length);else{var d=l.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),g=l.textContent.length,m=Math.min(s.start,g),h=void 0===s.end?m:Math.min(s.end,g);!p.extend&&m>h&&(i=h,h=m,m=i);var y=nY(l,m),b=nY(l,h);if(y&&b&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==b.node||p.focusOffset!==b.offset)){var v=d.createRange();v.setStart(y.node,y.offset),p.removeAllRanges(),m>h?(p.addRange(v),p.extend(b.node,b.offset)):(v.setEnd(b.node,b.offset),p.addRange(v))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof l.focus&&l.focus(),l=0;l<d.length;l++){var w=d[l];w.element.scrollLeft=w.left,w.element.scrollTop=w.top}}dX=!!cy,cb=cy=null}finally{sI=o,W.p=a,G.T=r}}e.current=t,s4=2}}function uN(){if(2===s4){s4=0;var e=s3,t=s5,n=0!=(8772&t.flags);if(0!=(8772&t.subtreeFlags)||n){n=G.T,G.T=null;var r=W.p;W.p=2;var a=sI;sI|=4;try{sr(e,t.alternate,t)}finally{sI=a,W.p=r,G.T=n}}s4=3}}function uO(){if(4===s4||3===s4){s4=0;var e=ue;ue=null,ey();var t=s3,n=s5,r=s6,a=s7,o=(0x13ffff00&r)===r?10262:10256;if(0!=(n.subtreeFlags&o)||0!=(n.flags&o)?s4=5:(s4=0,s5=s3=null,uL(t,t.pendingLanes)),0===(o=t.pendingLanes)&&(s2=null),eG(r),n=n.stateNode,eC&&"function"==typeof eC.onCommitFiberRoot)try{eC.onCommitFiberRoot(eA,n,void 0,128==(128&n.current.flags))}catch(e){}if(null!==a){n=G.T,o=W.p,W.p=2,G.T=null;try{for(var i=t.onRecoverableError,l=0;l<a.length;l++){var s=a[l];i(s.value,{componentStack:s.stack})}}finally{G.T=n,W.p=o}}if(a=ut,i=un,un=null,null!==a&&(ut=null,null===i&&(i=[]),null!==e))for(s=0;s<a.length;s++)void 0!==(n=(0,a[s])(i))&&e.finished.finally(n);0!=(3&s6)&&uI(),uW(t),o=t.pendingLanes,0!=(261930&r)&&0!=(42&o)?t===ua?ur++:(ur=0,ua=t):(ur=0,ua=null),uY(0,!1)}}function uL(e,t){0==(e.pooledCacheLanes&=t)&&null!=(t=e.pooledCache)&&(e.pooledCache=null,ay(t))}function uI(){return null!==ue&&(ue.skipTransition(),ue=null),uP(),uN(),uO(),uR()}function uR(){if(5!==s4)return!1;var e=s3,t=s8;s8=0;var n=eG(s6),r=G.T,a=W.p;try{W.p=32>n?32:n,G.T=null,n=s9,s9=null;var o=s3,i=s6;if(s4=0,s5=s3=null,s6=0,0!=(6&sI))throw Error(l(331));var s=sI;if(sI|=4,sP(o.current),sk(o,o.current,i,n),sI=s,uY(0,!1),eC&&"function"==typeof eC.onPostCommitFiberRoot)try{eC.onPostCommitFiberRoot(eA,o)}catch(e){}return!0}finally{W.p=a,G.T=r,uL(e,t)}}function uj(e,t,n){t=rj(n,t),t=iX(e.stateNode,t,2),null!==(e=aZ(e,t,2))&&(e$(e,2),uW(e))}function uD(e,t,n){if(3===e.tag)uj(e,e,n);else for(;null!==t;){if(3===t.tag){uj(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===s2||!s2.has(r))){e=rj(n,e),null!==(r=aZ(t,n=iG(2),2))&&(iW(n,r,t,e),e$(r,2),uW(r));break}}t=t.return}}function uF(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new sL;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(sU=!0,a.add(n),e=uM.bind(null,e,t,n),t.then(e,e))}function uM(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,sR===e&&(sD&n)===n&&((4===sq||3===sq&&(0x3c00000&sD)===sD&&300>eb()-sZ)&&0==(2&sI)?ug(e,0):sX|=n,sW===sD&&(sW=0)),uW(e)}function uz(e,t){0===t&&(t=eB()),null!==(e=rw(e,t))&&(e$(e,t),uW(e))}function uB(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),uz(e,n)}function uU(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(t),uz(e,n)}var u$=null,uq=null,uH=!1,uV=!1,uX=!1,uG=0;function uW(e){e!==uq&&null===e.next&&(null===uq?u$=uq=e:uq=uq.next=e),uV=!0,uH||(uH=!0,cP(function(){0!=(6&sI)?eg(ew,uK):uQ()}))}function uY(e,t){if(!uX&&uV){uX=!0;do for(var n=!1,r=u$;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var o=0;else{var i=r.suspendedLanes,l=r.pingedLanes;o=0xc000095&(o=(1<<31-eN(42|e)+1)-1&(a&~(i&~l)))?0xc000095&o|1:o?2|o:0}0!==o&&(n=!0,u0(r,o))}else o=sD,0==(3&(o=eF(r,r===sR?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eM(r,o)||(n=!0,u0(r,o));r=r.next}while(n)uX=!1}}function uK(){uQ()}function uQ(){uV=uH=!1;var e,t=0;0===uG||((e=window.event)&&"popstate"===e.type?e===cE||(cE=e,0):(cE=null,1))||(t=uG);for(var n=eb(),r=null,a=u$;null!==a;){var o=a.next,i=uZ(a,n);0===i?(a.next=null,null===r?u$=o:r.next=o,null===o&&(uq=r)):(r=a,(0!==t||0!=(3&i))&&(uV=!0)),a=o}0!==s4&&5!==s4||uY(t,!1),0!==uG&&(uG=0)}function uZ(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=-0x3c00001&e.pendingLanes;0<o;){var i=31-eN(o),l=1<<i,s=a[i];-1===s?(0==(l&n)||0!=(l&r))&&(a[i]=function(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return -1}}(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}if(t=sR,n=sD,n=eF(e,e===t?n:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===n||e===t&&(2===sF||9===sF)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&em(r),e.callbackNode=null,e.callbackPriority=0;if(0==(3&n)||eM(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==r&&em(r),eG(n)){case 2:case 8:n=eS;break;case 32:default:n=ek;break;case 0x10000000:n=eE}return n=eg(n,r=uJ.bind(null,e)),e.callbackPriority=t,e.callbackNode=n,t}return null!==r&&null!==r&&em(r),e.callbackPriority=2,e.callbackNode=null,2}function uJ(e,t){if(0!==s4&&5!==s4)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(uI()&&e.callbackNode!==n)return null;var r=sD;return 0===(r=eF(e,e===sR?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(uu(e,r,t),uZ(e,eb()),null!=e.callbackNode&&e.callbackNode===n?uJ.bind(null,e):null)}function u0(e,t){if(uI())return null;uu(e,t,!0)}function u1(){if(0===uG){var e=ak;0===e&&(e=eI,0==(261888&(eI<<=1))&&(eI=256)),uG=e}return uG}function u2(e){return null==e||"symbol"==typeof e||"boolean"==typeof e?null:"function"==typeof e?e:tR(e)}for(var u4=0;u4<rl.length;u4++){var u3=rl[u4];rs(u3.toLowerCase(),"on"+(u3[0].toUpperCase()+u3.slice(1)))}rs(n7,"onAnimationEnd"),rs(re,"onAnimationIteration"),rs(rt,"onAnimationStart"),rs("dblclick","onDoubleClick"),rs("focusin","onFocus"),rs("focusout","onBlur"),rs(rn,"onTransitionRun"),rs(rr,"onTransitionStart"),rs(ra,"onTransitionCancel"),rs(ro,"onTransitionEnd"),ti("onMouseEnter",["mouseout","mouseover"]),ti("onMouseLeave",["mouseout","mouseover"]),ti("onPointerEnter",["pointerout","pointerover"]),ti("onPointerLeave",["pointerout","pointerover"]),to("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),to("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),to("onBeforeInput",["compositionend","keypress","textInput","paste"]),to("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),to("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),to("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var u5="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),u6=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(u5));function u8(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=u;try{o(a)}catch(e){rp(e)}a.currentTarget=null,o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=u;try{o(a)}catch(e){rp(e)}a.currentTarget=null,o=s}}}}function u9(e,t){var n=t[e0];void 0===n&&(n=t[e0]=new Set);var r=e+"__bubble";n.has(r)||(cn(t,e,2,!1),n.add(r))}function u7(e,t,n){var r=0;t&&(r|=4),cn(n,e,r,t)}var ce="_reactListening"+Math.random().toString(36).slice(2);function ct(e){if(!e[ce]){e[ce]=!0,tr.forEach(function(t){"selectionchange"!==t&&(u6.has(t)||u7(t,!1,e),u7(t,!0,e))});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[ce]||(t[ce]=!0,u7("selectionchange",!1,t))}}function cn(e,t,n,r){switch(dJ(t)){case 2:var a=dG;break;case 8:a=dW;break;default:a=dY}n=a.bind(null,t,n,e),a=void 0,tV&&("touchstart"===t||"touchmove"===t||"wheel"===t)&&(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function cr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&i.stateNode.containerInfo===a)return;i=i.return}for(;null!==l;){if(null===(i=e8(l)))return;if(5===(s=i.tag)||6===s||26===s||27===s){r=o=i;continue e}l=l.parentNode}}r=r.return}t$(function(){var r=o,a=tF(n),i=[];e:{var l=ri.get(e);if(void 0!==l){var s=t8,c=e;switch(e){case"keypress":if(0===tQ(n))break e;case"keydown":case"keyup":s=nf;break;case"focusin":c="focus",s=nr;break;case"focusout":c="blur",s=nr;break;case"beforeblur":case"afterblur":s=nr;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=nt;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=nn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=nm;break;case n7:case re:case rt:s=na;break;case ro:s=nh;break;case"scroll":case"scrollend":s=t7;break;case"wheel":s=ny;break;case"copy":case"cut":case"paste":s=no;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=np;break;case"submit":s=ng;break;case"toggle":case"beforetoggle":s=nb}var d=0!=(4&t),f=!d&&("scroll"===e||"scrollend"===e),p=d?null!==l?l+"Capture":null:l;d=[];for(var g,m=r;null!==m;){var h=m;if(g=h.stateNode,5!==(h=h.tag)&&26!==h&&27!==h||null===g||null===p||null!=(h=tq(m,p))&&d.push(ca(m,h,g)),f)break;m=m.return}0<d.length&&(l=new s(l,c,null,n,a),i.push({event:l,listeners:d}))}}if(0==(7&t)){s="mouseover"===e||"pointerover"===e,l="mouseout"===e||"pointerout"===e,!(s&&n!==tD&&(c=n.relatedTarget||n.fromElement)&&(e8(c)||c[eJ]))&&(l||s)&&(c=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(s=n.relatedTarget||n.toElement,l=r,null!==(s=s?e8(s):null)&&(f=u(s),d=s.tag,s!==f||5!==d&&27!==d&&6!==d)&&(s=null)):(l=null,s=r),l!==s&&(d=nt,h="onMouseLeave",p="onMouseEnter",m="mouse",("pointerout"===e||"pointerover"===e)&&(d=np,h="onPointerLeave",p="onPointerEnter",m="pointer"),f=null==l?c:e7(l),g=null==s?c:e7(s),(c=new d(h,m+"leave",l,n,a)).target=f,c.relatedTarget=g,h=null,e8(a)===r&&((d=new d(p,m+"enter",s,n,a)).target=g,d.relatedTarget=f,h=d),f=h,d=l&&s?x(l,s,ci):null,null!==l&&cl(i,c,l,d,!1),null!==s&&null!==f&&cl(i,f,s,d,!0)));e:{if("select"===(s=(l=r?e7(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var y,b=nj;else if(nP(l))if(nD)b=nH;else{b=n$;var v=nU}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)?b=nq:r&&tO(r.elementType)&&(b=nj);if(b&&(b=b(e,r))){nN(i,b,n,a);break e}v&&v(e,l,r)}switch(v=r?e7(r):window,e){case"focusin":(nP(v)||"true"===v.contentEditable)&&(nJ=v,n0=r,n1=null);break;case"focusout":n1=n0=nJ=null;break;case"mousedown":n2=!0;break;case"contextmenu":case"mouseup":case"dragend":n2=!1,n4(i,n,a);break;case"selectionchange":if(nZ)break;case"keydown":case"keyup":n4(i,n,a)}if(nw)t:{switch(e){case"compositionstart":var w="onCompositionStart";break t;case"compositionend":w="onCompositionEnd";break t;case"compositionupdate":w="onCompositionUpdate";break t}w=void 0}else nA?nT(e,n)&&(w="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(w="onCompositionStart");w&&(nx&&"ko"!==n.locale&&(nA||"onCompositionStart"!==w?"onCompositionEnd"===w&&nA&&(y=tK()):(tW="value"in(tG=a)?tG.value:tG.textContent,nA=!0)),0<(v=co(r,w)).length&&(w=new ni(w,e,null,n,a),i.push({event:w,listeners:v}),y?w.data=y:null!==(y=n_(n))&&(w.data=y))),(y=nk?function(e,t){switch(e){case"compositionend":return n_(t);case"keypress":if(32!==t.which)return null;return nE=!0," ";case"textInput":return" "===(e=t.data)&&nE?null:e;default:return null}}(e,n):function(e,t){if(nA)return"compositionend"===e||!nw&&nT(e,t)?(e=tK(),tY=tW=tG=null,nA=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return nx&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(w=co(r,"onBeforeInput")).length&&(v=new ni("onBeforeInput","beforeinput",null,n,a),i.push({event:v,listeners:w}),v.data=y);var S=e;if("submit"===S&&r&&r.stateNode===a){var k=u2((a[eZ]||null).action),E=n.submitter;E&&null!==(S=(S=E[eZ]||null)?u2(S.formAction):E.getAttribute("formAction"))&&(k=S,E=null);var T=new t8("action","action",null,n,a);i.push({event:T,listeners:[{instance:null,listener:function(){if(n.defaultPrevented){if(0!==uG){var e=new FormData(a,E);ib(r,{pending:!0,data:e,method:a.method,action:k},null,e)}}else"function"==typeof k&&(T.preventDefault(),ib(r,{pending:!0,data:e=new FormData(a,E),method:a.method,action:k},k,e))},currentTarget:a}]})}}u8(i,t)})}function ca(e,t,n){return{instance:e,listener:t,currentTarget:n}}function co(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;if(5!==(a=a.tag)&&26!==a&&27!==a||null===o||(null!=(a=tq(e,n))&&r.unshift(ca(e,a,o)),null!=(a=tq(e,t))&&r.push(ca(e,a,o))),3===e.tag)return r;e=e.return}return[]}function ci(e){if(null===e)return null;do e=e.return;while(e&&5!==e.tag&&27!==e.tag)return e||null}function cl(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(l=l.tag,null!==s&&s===r)break;5!==l&&26!==l&&27!==l||null===u||(s=u,a?null!=(u=tq(n,o))&&i.unshift(ca(n,u,s)):a||null!=(u=tq(n,o))&&i.push(ca(n,u,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var cs=/\r\n?/g,cu=/\u0000|\uFFFD/g;function cc(e){return("string"==typeof e?e:""+e).replace(cs,"\n").replace(cu,"")}function cd(e,t){return t=cc(t),cc(e)===t}function cf(e,t,n,r,a,o){switch(n){case"children":if("string"==typeof r)"body"===t||"textarea"===t&&""===r||tA(e,r);else{if("number"!=typeof r&&"bigint"!=typeof r)return;"body"!==t&&tA(e,""+r)}break;case"className":tp(e,"class",r);break;case"tabIndex":tp(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":tp(e,n,r);break;case"style":tN(e,r,o);return;case"data":if("object"!==t){tp(e,"data",r);break}case"src":case"href":if(""===r&&("a"!==t||"href"!==n)||null==r||"function"==typeof r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=tR(r),e.setAttribute(n,r);break;case"action":case"formAction":if("function"==typeof r){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}if("function"==typeof o&&("formAction"===n?("input"!==t&&cf(e,t,"name",a.name,a,null),cf(e,t,"formEncType",a.formEncType,a,null),cf(e,t,"formMethod",a.formMethod,a,null),cf(e,t,"formTarget",a.formTarget,a,null)):(cf(e,t,"encType",a.encType,a,null),cf(e,t,"method",a.method,a,null),cf(e,t,"target",a.target,a,null))),null==r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=tR(r),e.setAttribute(n,r);break;case"onClick":null!=r&&(e.onclick=tj);return;case"onScroll":null!=r&&u9("scroll",e);return;case"onScrollEnd":null!=r&&u9("scrollend",e);return;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(l(60));(null!=o?o.__html:void 0)!==n&&(e.innerHTML=n)}}break;case"multiple":e.multiple=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"muted":e.muted=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":case"autoFocus":break;case"xlinkHref":if(null==r||"function"==typeof r||"boolean"==typeof r||"symbol"==typeof r){e.removeAttribute("xlink:href");break}n=tR(r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":!0===r?e.setAttribute(n,""):!1!==r&&null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":null!=r&&"function"!=typeof r&&"symbol"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case"rowSpan":case"start":null==r||"function"==typeof r||"symbol"==typeof r||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case"popover":u9("beforetoggle",e),u9("toggle",e),tf(e,"popover",r);break;case"xlinkActuate":tg(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":tg(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":tg(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":tg(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":tg(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":tg(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":tg(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":tg(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":tg(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":tf(e,"is",r);break;case"innerText":case"textContent":return;default:if(2<n.length&&("o"===n[0]||"O"===n[0])&&("n"===n[1]||"N"===n[1]))return;tf(e,n=tL.get(n)||n,r)}tc=!0}function cp(e,t,n,r,a,o){switch(n){case"style":tN(e,r,o);return;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(l(60));(null!=o?o.__html:void 0)!==n&&(e.innerHTML=n)}}break;case"children":if("string"==typeof r)tA(e,r);else{if("number"!=typeof r&&"bigint"!=typeof r)return;tA(e,""+r)}break;case"onScroll":null!=r&&u9("scroll",e);return;case"onScrollEnd":null!=r&&u9("scrollend",e);return;case"onClick":null!=r&&(e.onclick=tj);return;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":case"innerText":case"textContent":return;default:if(!ta.hasOwnProperty(n))e:{if("o"===n[0]&&"n"===n[1]&&(a=n.endsWith("Capture"),o=n.slice(2,a?n.length-7:void 0),"function"==typeof(t=null!=(t=e[eZ]||null)?t[n]:null)&&e.removeEventListener(o,t,a),"function"==typeof r)){"function"!=typeof t&&null!==t&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(o,r,a);break e}tc=!0,n in e?e[n]=r:!0===r?e.setAttribute(n,""):tf(e,n,r)}return}tc=!0}function cg(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":u9("error",e),u9("load",e);var r,a=!1,o=!1;for(r in n)if(n.hasOwnProperty(r)){var i=n[r];if(null!=i)switch(r){case"src":a=!0;break;case"srcSet":o=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(l(137,t));default:cf(e,t,r,i,n,null)}}o&&cf(e,t,"srcSet",n.srcSet,n,null),a&&cf(e,t,"src",n.src,n,null);return;case"input":u9("invalid",e);var s=r=i=o=null,u=null,c=null;for(a in n)if(n.hasOwnProperty(a)){var d=n[a];if(null!=d)switch(a){case"name":o=d;break;case"type":i=d;break;case"checked":u=d;break;case"defaultChecked":c=d;break;case"value":r=d;break;case"defaultValue":s=d;break;case"children":case"dangerouslySetInnerHTML":if(null!=d)throw Error(l(137,t));break;default:cf(e,t,a,d,n,null)}}tk(e,r,s,u,c,i,o,!1);return;case"select":for(o in u9("invalid",e),a=i=r=null,n)if(n.hasOwnProperty(o)&&null!=(s=n[o]))switch(o){case"value":r=s;break;case"defaultValue":i=s;break;case"multiple":a=s;default:cf(e,t,o,s,n,null)}t=r,n=i,e.multiple=!!a,null!=t?tE(e,!!a,t,!1):null!=n&&tE(e,!!a,n,!0);return;case"textarea":for(i in u9("invalid",e),r=o=a=null,n)if(n.hasOwnProperty(i)&&null!=(s=n[i]))switch(i){case"value":a=s;break;case"defaultValue":o=s;break;case"children":r=s;break;case"dangerouslySetInnerHTML":if(null!=s)throw Error(l(91));break;default:cf(e,t,i,s,n,null)}t_(e,a,o,r);return;case"option":for(u in n)n.hasOwnProperty(u)&&null!=(a=n[u])&&("selected"===u?e.selected=a&&"function"!=typeof a&&"symbol"!=typeof a:cf(e,t,u,a,n,null));return;case"dialog":u9("beforetoggle",e),u9("toggle",e),u9("cancel",e),u9("close",e);break;case"iframe":case"object":u9("load",e);break;case"video":case"audio":for(a=0;a<u5.length;a++)u9(u5[a],e);break;case"image":u9("error",e),u9("load",e);break;case"details":u9("toggle",e);break;case"embed":case"source":case"link":u9("error",e),u9("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(c in n)if(n.hasOwnProperty(c)&&null!=(a=n[c]))switch(c){case"children":case"dangerouslySetInnerHTML":throw Error(l(137,t));default:cf(e,t,c,a,n,null)}return;default:if(tO(t)){for(d in n)n.hasOwnProperty(d)&&void 0!==(a=n[d])&&cp(e,t,d,a,n,void 0);return}}for(s in n)n.hasOwnProperty(s)&&null!=(a=n[s])&&cf(e,t,s,a,n,null)}var cm={};function ch(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}var cy=null,cb=null;function cv(e){return 9===e.nodeType?e:e.ownerDocument}function cw(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function cS(e,t){if(0===e)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return 1===e&&"foreignObject"===t?0:e}function ck(e,t,n,r){return(n=cv(n).createElement(e))[eQ]=r,n[eZ]=t,cg(n,e,t),tt(n),n}function cx(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"bigint"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var cE=null,cT="function"==typeof setTimeout?setTimeout:void 0,c_="function"==typeof clearTimeout?clearTimeout:void 0,cA="function"==typeof Promise?Promise:void 0,cC="function"==typeof requestAnimationFrame?requestAnimationFrame:cT,cP="function"==typeof queueMicrotask?queueMicrotask:void 0!==cA?function(e){return cA.resolve(null).then(e).catch(cN)}:cT;function cN(e){setTimeout(function(){throw e})}function cO(e){return"head"===e}function cL(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)||"/&"===n){if(0===r){e.removeChild(a),fl(t);return}r--}else if("$"===n||"$?"===n||"$~"===n||"$!"===n||"&"===n)r++;else if("html"===n)dl(e.ownerDocument.documentElement);else if("head"===n){dl(n=e.ownerDocument.head);for(var o=n.firstChild;o;){var i=o.nextSibling,l=o.nodeName;o[e3]||"SCRIPT"===l||"STYLE"===l||"LINK"===l&&"stylesheet"===o.rel.toLowerCase()||n.removeChild(o),o=i}}else"body"===n&&dl(e.ownerDocument.body);n=a}while(n)fl(t)}function cI(e,t){var n=e;e=0;do{var r=n.nextSibling;if(1===n.nodeType?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",""===n.getAttribute("style")&&n.removeAttribute("style")):3===n.nodeType&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),r&&8===r.nodeType)if("/$"===(n=r.data))if(0===e)break;else e--;else"$"!==n&&"$?"!==n&&"$~"!==n&&"$!"!==n||e++;n=r}while(n)}function cR(e,t,n){if(t=CSS.escape(t)!==t?"r-"+btoa(t).replace(/=/g,""):t,e.style.viewTransitionName=t,null!=n&&(e.style.viewTransitionClass=n),"inline"===(n=getComputedStyle(e)).display){if(1===(t=e.getClientRects()).length)var r=1;else for(var a=r=0;a<t.length;a++){var o=t[a];0<o.width&&0<o.height&&r++}1===r&&((e=e.style).display=1===t.length?"inline-block":"block",e.marginTop="-"+n.paddingTop,e.marginBottom="-"+n.paddingBottom)}}function cj(e,t){e=e.style;var n=null!=(t=t.style)?t.hasOwnProperty("viewTransitionName")?t.viewTransitionName:t.hasOwnProperty("view-transition-name")?t["view-transition-name"]:null:null;e.viewTransitionName=null==n||"boolean"==typeof n?"":(""+n).trim(),n=null!=t?t.hasOwnProperty("viewTransitionClass")?t.viewTransitionClass:t.hasOwnProperty("view-transition-class")?t["view-transition-class"]:null:null,e.viewTransitionClass=null==n||"boolean"==typeof n?"":(""+n).trim(),"inline-block"===e.display&&(null==t?e.display=e.margin="":(n=t.display,e.display=null==n||"boolean"==typeof n?"":n,null!=(n=t.margin)?e.margin=n:(n=t.hasOwnProperty("marginTop")?t.marginTop:t["margin-top"],e.marginTop=null==n||"boolean"==typeof n?"":n,t=t.hasOwnProperty("marginBottom")?t.marginBottom:t["margin-bottom"],e.marginBottom=null==t||"boolean"==typeof t?"":t)))}function cD(e,t,n){return n=n.ownerDocument.defaultView,{rect:e,abs:"absolute"===t.position||"fixed"===t.position,clip:"none"!==t.clipPath||"visible"!==t.overflow||"none"!==t.filter||"none"!==t.mask||"none"!==t.mask||"0px"!==t.borderRadius,view:0<=e.bottom&&0<=e.right&&e.top<=n.innerHeight&&e.left<=n.innerWidth}}function cF(e){return cD(e.getBoundingClientRect(),getComputedStyle(e),e)}function cM(e){var t=e.getBoundingClientRect();return cD(t=new DOMRect(t.x+2e4,t.y+2e4,t.width,t.height),getComputedStyle(e),e)}function cz(e){this.addEventListener("load",e),this.addEventListener("error",e)}function cB(e,t){this._scope=document.documentElement,this._selector="::view-transition-"+e+"("+t+")"}function cU(e){return{name:e,group:new cB("group",e),imagePair:new cB("image-pair",e),old:new cB("old",e),new:new cB("new",e)}}function c$(e){this._fragmentFiber=e,this._observers=this._eventListeners=null}function cq(e,t,n,r){return y(e).addEventListener(t,n,r),!1}function cH(e,t,n,r){return y(e).removeEventListener(t,n,r),!1}function cV(e){return null!=e&&"boolean"!=typeof e&&(!0===e.once||e.signal instanceof AbortSignal)?{capture:e.capture,passive:e.passive}:e}function cX(e){return null==e?"c=0":"boolean"==typeof e?"c="+(e?"1":"0"):"c="+(e.capture?"1":"0")}function cG(e,t,n,r){if(0===e.length)return -1;r=cX(r);for(var a=0;a<e.length;a++){var o=e[a];if(o.type===t&&o.listener===n&&cX(o.optionsOrUseCapture)===r)return a}return -1}function cW(e,t){return 6!==e.tag&&function(e,t){function n(){r=!0}if(e.ownerDocument.activeElement===e)return!0;var r=!1;try{e.ownerDocument.addEventListener("focus",n,!0),(e.focus||HTMLElement.prototype.focus).call(e,t)}finally{e.ownerDocument.removeEventListener("focus",n,!0)}return r}(e=y(e),t)}function cY(e,t){return t.push(e),!1}function cK(e,t){return 6!==e.tag&&!!((e=y(e))===t||e.contains(t))&&(t.blur(),!0)}function cQ(e,t){return 6!==e.tag&&(e=y(e),t.observe(e),!1)}function cZ(e,t){return 6!==e.tag&&(e=y(e),t.unobserve(e),!1)}cB.prototype.animate=function(e,t){return(t="number"==typeof t?{duration:t}:E({},t)).pseudoElement=this._selector,this._scope.animate(e,t)},cB.prototype.getAnimations=function(){for(var e=this._scope,t=this._selector,n=e.getAnimations({subtree:!0}),r=[],a=0;a<n.length;a++){var o=n[a].effect;null!==o&&o.target===e&&o.pseudoElement===t&&r.push(n[a])}return r},cB.prototype.getComputedStyle=function(){return getComputedStyle(this._scope,this._selector)},c$.prototype.addEventListener=function(e,t,n){var r=null,a=null;if(null==n||"boolean"==typeof n||null===(r=n.signal||null)||!r.aborted){null===this._eventListeners&&(this._eventListeners=[]);var o=this._eventListeners;if(-1===cG(o,e,t,n)){var i=this,l=t;null!=n&&"boolean"!=typeof n&&!0===n.once&&(l=function(r){i.removeEventListener(e,t,n),"function"==typeof t?t.call(this,r):t.handleEvent(r)}),null!==r&&(a=i.removeEventListener.bind(i,e,t,n),r.addEventListener("abort",a,{once:!0}),a=r.removeEventListener.bind(r,"abort",a)),r=cV(n),o.push({type:e,listener:t,optionsOrUseCapture:n,attachedListener:l,cleanup:a}),p(this._fragmentFiber.child,!1,cq,e,l,r)}this._eventListeners=o}},c$.prototype.removeEventListener=function(e,t,n){var r=this._eventListeners;if(null!==r&&-1!==(t=cG(r,e,t,n))){var a=r[t];n=a.attachedListener;var o=a.cleanup;a=cV(a.optionsOrUseCapture),p(this._fragmentFiber.child,!1,cH,e,n,a),r.splice(t,1),null!==o&&o()}},c$.prototype.dispatchEvent=function(e){var t=g(this._fragmentFiber);if(null===t)return!0;t=y(t);var n=this._eventListeners;if(null!==n&&0<n.length||!e.bubbles){var r=9===t.nodeType?t.createComment(""):document.createTextNode("");if(n)for(var a=0;a<n.length;a++){var o=n[a];r.addEventListener(o.type,o.attachedListener,cV(o.optionsOrUseCapture))}if(t.appendChild(r),e=r.dispatchEvent(e),n)for(a=0;a<n.length;a++)o=n[a],r.removeEventListener(o.type,o.attachedListener,cV(o.optionsOrUseCapture));return t.removeChild(r),e}return t.dispatchEvent(e)},c$.prototype.focus=function(e){p(this._fragmentFiber.child,!0,cW,e,void 0,void 0)},c$.prototype.focusLast=function(e){var t=[];p(this._fragmentFiber.child,!0,cY,t,void 0,void 0);for(var n=t.length-1;0<=n&&!cW(t[n],e);n--);},c$.prototype.blur=function(){var e=g(this._fragmentFiber);null!==e&&null!==(e=cv(e=y(e)).activeElement)&&p(this._fragmentFiber.child,!1,cK,e,void 0,void 0)},c$.prototype.observeUsing=function(e){null===this._observers&&(this._observers=new Set),this._observers.add(e),p(this._fragmentFiber.child,!1,cQ,e,void 0,void 0)},c$.prototype.unobserveUsing=function(e){var t=this._observers;if(null!==t&&t.has(e)){t.delete(e),p(this._fragmentFiber.child,!1,cZ,e,void 0,void 0);for(var n=t=0;n<cJ.length;n++){var r=cJ[n];r.fragmentInstance===this&&r.observer===e?e.unobserve(r.instance):cJ[t++]=r}cJ.length=t}};var cJ=[],c0=!1;function c1(e,t){if(6===e.tag){var n=(e=e.stateNode).ownerDocument.createRange();n.selectNodeContents(e),t.push.apply(t,n.getClientRects())}else e=y(e),t.push.apply(t,e.getClientRects());return!1}function c2(e,t){var n=e.ownerDocument.createRange();n.selectNodeContents(e),e=n.getBoundingClientRect(),window.scrollTo(window.scrollX+e.left,t?window.scrollY+e.top:window.scrollY+e.bottom-window.innerHeight)}function c4(e,t){return c3(e=y(e),t),!1}function c3(e,t){null==e.reactFragments&&(e.reactFragments=new Set),e.reactFragments.add(t)}function c5(e,t){var n=t._eventListeners;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];e.addEventListener(a.type,a.attachedListener,cV(a.optionsOrUseCapture))}3!==e.nodeType&&(null!==(n=t._observers)&&n.forEach(function(n){for(var r=0,a=0;a<cJ.length;a++){var o=cJ[a];(o.fragmentInstance!==t||o.observer!==n||o.instance!==e)&&(cJ[r++]=o)}cJ.length=r,n.observe(e)}),c3(e,t))}function c6(e){var t=e.firstChild;for(t&&10===t.nodeType&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":c6(n),e6(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===n.rel.toLowerCase())continue}e.removeChild(n)}}function c8(e,t){for(;8!==e.nodeType;)if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!t||null===(e=de(e.nextSibling)))return null;return e}function c9(e){return"$?"===e.data||"$~"===e.data}function c7(e){return"$!"===e.data||"$?"===e.data&&"loading"!==e.ownerDocument.readyState}function de(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t||"$~"===t||"&"===t||"F!"===t||"F"===t)break;if("/$"===t||"/&"===t)return null}}return e}c$.prototype.getClientRects=function(){var e=[];return p(this._fragmentFiber.child,!1,c1,e,void 0,void 0),e},c$.prototype.getRootNode=function(e){var t=g(this._fragmentFiber);return null===t?this:y(t).getRootNode(e)},c$.prototype.compareDocumentPosition=function(e){var t=g(this._fragmentFiber);if(null===t)return Node.DOCUMENT_POSITION_DISCONNECTED;var n=[];p(this._fragmentFiber.child,!1,cY,n,void 0,void 0);var r=y(t);if(0===n.length){if(n=r,m(this._fragmentFiber)){e:{for(t=this._fragmentFiber.return;null!==t;){if(4===t.tag){t=t.stateNode.containerInfo;break e}if(3===t.tag||5===t.tag||27===t.tag)break;t=t.return}t=null}null!=t&&(n=t)}t=this._fragmentFiber;var a=r=n.compareDocumentPosition(e);return n===e?a=Node.DOCUMENT_POSITION_CONTAINS:r&Node.DOCUMENT_POSITION_CONTAINED_BY&&(a=null===(n=h(t)[1])?Node.DOCUMENT_POSITION_PRECEDING:0===(e=y(n).compareDocumentPosition(e))||e&Node.DOCUMENT_POSITION_FOLLOWING?Node.DOCUMENT_POSITION_FOLLOWING:Node.DOCUMENT_POSITION_PRECEDING),a|Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC}t=y(n[0]),a=y(n[n.length-1]);var o=m(this._fragmentFiber)?t.parentElement:r;if(null==o)return Node.DOCUMENT_POSITION_DISCONNECTED;r=o.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY,o=o.compareDocumentPosition(a)&Node.DOCUMENT_POSITION_CONTAINED_BY;var i=t.compareDocumentPosition(e),l=a.compareDocumentPosition(e),s=i&Node.DOCUMENT_POSITION_CONTAINED_BY||l&Node.DOCUMENT_POSITION_CONTAINED_BY;return l=r&&o&&i&Node.DOCUMENT_POSITION_FOLLOWING&&l&Node.DOCUMENT_POSITION_PRECEDING,(t=r&&t===e||o&&a===e||s||l?Node.DOCUMENT_POSITION_CONTAINED_BY:(r||t!==e)&&(o||a!==e)?i:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC)&Node.DOCUMENT_POSITION_DISCONNECTED||t&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC||function(e,t,n,r,a){var o=e8(a);if(e&Node.DOCUMENT_POSITION_CONTAINED_BY){if(n=!!o)e:{for(;null!==o;){if(7===o.tag&&(o===t||o.alternate===t)){n=!0;break e}o=o.return}n=!1}return n}if(e&Node.DOCUMENT_POSITION_CONTAINS){if(null===o)return o=a.ownerDocument,a===o||a===o.documentElement||a===o.body;e:{for(o=t,t=g(t);null!==o;){if((5===o.tag||3===o.tag||27===o.tag)&&(o===t||o.alternate===t)){o=!0;break e}o=o.return}o=!1}return o}return e&Node.DOCUMENT_POSITION_PRECEDING?((t=!!o)&&!(t=o===n)&&(null===(t=x(n,o,k))?t=!1:(p(t,!0,w,o,n),o=b,b=null,t=null!==o)),t):!!(e&Node.DOCUMENT_POSITION_FOLLOWING)&&((t=!!o)&&!(t=o===r)&&(null===(t=x(r,o,k))?t=!1:(p(t,!0,S,o,r),o=b,v=b=null,t=null!==o)),t)}(t,this._fragmentFiber,n[0],n[n.length-1],e)?t:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC},c$.prototype.scrollIntoView=function(e){if("object"==typeof e)throw Error(l(566));var t=[];p(this._fragmentFiber.child,!1,cY,t,void 0,void 0);var n=!1!==e;if(0===t.length){var r=h(this._fragmentFiber);if(null===(r=n?r[1]||r[0]||g(this._fragmentFiber):r[0]||r[1]))return;if(6===r.tag)return void c2(e=y(r),n);if(9!==(r=y(r)).nodeType){if(11===r.nodeType){null!==(n="host"in r?r.host:null)&&n.scrollIntoView(e);return}r.scrollIntoView(e)}}for(r=n?t.length-1:0;r!==(n?-1:t.length);){var a=t[r];6===a.tag?c2(a=y(a),n):y(a).scrollIntoView(e),r+=n?-1:1}};var dt=null;function dn(e){e=e.nextSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n||"/&"===n){if(0===t)return de(e.nextSibling);t--}else"$"!==n&&"$!"!==n&&"$?"!==n&&"$~"!==n&&"&"!==n||t++}e=e.nextSibling}return null}function dr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n||"$~"===n||"&"===n){if(0===t)return e;t--}else"/$"!==n&&"/&"!==n||t++}e=e.previousSibling}return null}function da(e,t,n){switch(t=cv(n),e){case"html":if(!(e=t.documentElement))throw Error(l(452));return e;case"head":if(!(e=t.head))throw Error(l(453));return e;case"body":if(!(e=t.body))throw Error(l(454));return e;default:throw Error(l(451))}}function di(e,t,n){for(var r in n){var a=n[r];n.hasOwnProperty(r)&&null!=a&&cf(e,t,r,null,cm,a)}null!=n.dangerouslySetInnerHTML&&(e.textContent=""),e.onclick===tj&&(e.onclick=null),e6(e)}function dl(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);e6(e)}var ds=new Map,du=new Set;function dc(e){if("function"==typeof e.getRootNode){var t=e.getRootNode();if(9===t.nodeType||11===t.nodeType)return t}return 9===e.nodeType?e:e.ownerDocument}var dd=W.d;W.d={f:function(){var e=dd.f(),t=uf();return e||t},r:function(e){var t=e9(e);null!==t&&5===t.tag&&"form"===t.type?iw(t):dd.r(e)},D:function(e){dd.D(e),dp("dns-prefetch",e,null)},C:function(e,t){dd.C(e,t),dp("preconnect",e,t)},L:function(e,t,n){if(dd.L(e,t,n),df&&e&&t){var r='link[rel="preload"][as="'+tw(t)+'"]';"image"===t&&n&&n.imageSrcSet?(r+='[imagesrcset="'+tw(n.imageSrcSet)+'"]',"string"==typeof n.imageSizes&&(r+='[imagesizes="'+tw(n.imageSizes)+'"]')):r+='[href="'+tw(e)+'"]';var a=r;switch(t){case"style":a=dm(e);break;case"script":a=db(e)}if(!(ds.has(a)||(e=E({rel:"preload",href:"image"===t&&n&&n.imageSrcSet?void 0:e,as:t},n),ds.set(a,e),null!==df.querySelector(r)||"style"===t&&df.querySelector(dh(a))||"script"===t&&df.querySelector(dv(a))))){var o=df.createElement("link");cg(o,"link",e),"style"===t&&(o[e5]=!0,o.onload=o.onerror=function(){tn(o)}),tt(o),df.head.appendChild(o)}}},m:function(e,t){if(dd.m(e,t),df&&e){var n=t&&"string"==typeof t.as?t.as:"script",r='link[rel="modulepreload"][as="'+tw(n)+'"][href="'+tw(e)+'"]',a=r;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=db(e)}if(!ds.has(a)&&(e=E({rel:"modulepreload",href:e},t),ds.set(a,e),null===df.querySelector(r))){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(df.querySelector(dv(a)))return}cg(n=df.createElement("link"),"link",e),tt(n),df.head.appendChild(n)}}},X:function(e,t){if(dd.X(e,t),df&&e){var n=te(df).hoistableScripts,r=db(e),a=n.get(r);a||((a=df.querySelector(dv(r)))||(e=E({src:e,async:!0},t),(t=ds.get(r))&&dx(e,t),tt(a=df.createElement("script")),cg(a,"link",e),df.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(r,a))}},S:function(e,t,n){if(dd.S(e,t,n),df&&e){var r=te(df).hoistableStyles,a=dm(e);t=t||"default";var o=r.get(a);if(!o){var i={loading:0,preload:null};if(o=df.querySelector(dh(a)))i.loading=5;else{e=E({rel:"stylesheet",href:e,"data-precedence":t},n),(n=ds.get(a))&&dk(e,n);var l=o=df.createElement("link");tt(l),cg(l,"link",e),l._p=new Promise(function(e,t){l.onload=e,l.onerror=t}),l.addEventListener("load",function(){i.loading|=1}),l.addEventListener("error",function(){i.loading|=2}),i.loading|=4,dS(o,t,df)}o={type:"stylesheet",instance:o,count:1,state:i},r.set(a,o)}}},M:function(e,t){if(dd.M(e,t),df&&e){var n=te(df).hoistableScripts,r=db(e),a=n.get(r);a||((a=df.querySelector(dv(r)))||(e=E({src:e,async:!0,type:"module"},t),(t=ds.get(r))&&dx(e,t),tt(a=df.createElement("script")),cg(a,"link",e),df.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(r,a))}}};var df="u"<typeof document?null:document;function dp(e,t,n){if(df&&"string"==typeof t&&t){var r=tw(t);r='link[rel="'+e+'"][href="'+r+'"]',"string"==typeof n&&(r+='[crossorigin="'+n+'"]'),du.has(r)||(du.add(r),e={rel:e,crossOrigin:n,href:t},null===df.querySelector(r)&&(cg(t=df.createElement("link"),"link",e),tt(t),df.head.appendChild(t)))}}function dg(e,t,n,r){var a=(a=er.current)?dc(a):null;if(!a)throw Error(l(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof n.precedence&&"string"==typeof n.href?(n=dm(n.href),(r=(t=te(a).hoistableStyles).get(n))||(r={type:"style",instance:null,count:0,state:null},t.set(n,r)),r):{type:"void",instance:null,count:0,state:null};case"link":if("stylesheet"===n.rel&&"string"==typeof n.href&&"string"==typeof n.precedence){e=dm(n.href);var o=te(a).hoistableStyles,i=o.get(e);if(i||(a=a.ownerDocument||a,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(e,i),(o=a.querySelector(dh(e)))?o._p||(i.instance=o,i.state.loading=5):((o=ds.get(e))||(o={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},ds.set(e,o)),function(e,t,n,r){if(t=e.querySelector('link[rel="preload"][as="style"]['+t+"]")){if(!0!==t[e5]){r.loading=1;return}}else(t=e.createElement("link"))[e5]=!0,t.onload=t.onerror=tn.bind(null,t),cg(t,"link",n),tt(t),e.head.appendChild(t);r.preload=t,t.addEventListener("load",function(){return r.loading|=1}),t.addEventListener("error",function(){return r.loading|=2})}(a,e,o,i.state))),t&&null===r)throw Error(l(528,""));return i}if(t&&null!==r)throw Error(l(529,""));return null;case"script":return t=n.async,"string"==typeof(n=n.src)&&t&&"function"!=typeof t&&"symbol"!=typeof t?(n=db(n),(r=(t=te(a).hoistableScripts).get(n))||(r={type:"script",instance:null,count:0,state:null},t.set(n,r)),r):{type:"void",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function dm(e){return'href="'+tw(e)+'"'}function dh(e){return'link[rel="stylesheet"]['+e+"]"}function dy(e){return E({},e,{"data-precedence":e.precedence,precedence:null})}function db(e){return'[src="'+tw(e)+'"]'}function dv(e){return"script[async]"+e}function dw(e,t,n){if(t.count++,null===t.instance)switch(t.type){case"style":var r=e.querySelector('style[data-href~="'+tw(n.href)+'"]');if(r)return t.instance=r,tt(r),r;var a=E({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return tt(r=(e.ownerDocument||e).createElement("style")),cg(r,"style",a),dS(r,n.precedence,e),t.instance=r;case"stylesheet":a=dm(n.href);var o=e.querySelector(dh(a));if(o)return t.state.loading|=4,t.instance=o,tt(o),o;r=dy(n),(a=ds.get(a))&&dk(r,a),tt(o=(e.ownerDocument||e).createElement("link"));var i=o;return i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),cg(o,"link",r),t.state.loading|=4,dS(o,n.precedence,e),t.instance=o;case"script":if(o=db(n.src),a=e.querySelector(dv(o)))return t.instance=a,tt(a),a;return r=n,(a=ds.get(o))&&dx(r=E({},n),a),tt(a=(e=e.ownerDocument||e).createElement("script")),cg(a,"link",r),e.head.appendChild(a),t.instance=a;case"void":return null;default:throw Error(l(443,t.type))}return"stylesheet"===t.type&&0==(4&t.state.loading)&&(r=t.instance,t.state.loading|=4,dS(r,n.precedence,e)),t.instance}function dS(e,t,n){for(var r=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=r.length?r[r.length-1]:null,o=a,i=0;i<r.length;i++){var l=r[i];if(l.dataset.precedence===t)o=l;else if(o!==a)break}o?o.parentNode.insertBefore(e,o.nextSibling):(t=9===n.nodeType?n.head:n).insertBefore(e,t.firstChild)}function dk(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.title&&(e.title=t.title)}function dx(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.integrity&&(e.integrity=t.integrity)}var dE=null;function dT(e,t,n){if(null===dE){var r=new Map,a=dE=new Map;a.set(n,r)}else(r=(a=dE).get(n))||(r=new Map,a.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),a=0;a<n.length;a++){var o=n[a];if(!(o[e3]||o[eQ]||"link"===e&&"stylesheet"===o.getAttribute("rel"))&&"http://www.w3.org/2000/svg"!==o.namespaceURI){var i=o.getAttribute(t)||"";i=e+i;var l=r.get(i);l?l.push(o):r.set(i,[o])}}return r}function d_(e,t,n){(e=e.ownerDocument||e).head.insertBefore(n,"title"===t?e.querySelector("head > title"):null)}function dA(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function dC(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function dP(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function dN(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=dP(t),e.suspenseyImages.push(t)),e=dR.bind(e),t.decode().then(e,e))}var dO=0;function dL(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)dD(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function dI(){this.count--,dL(this)}function dR(){this.imgCount--,dL(this)}var dj=null;function dD(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,dj=new Map,t.forEach(dF,e),dj=null,dI.call(e))}function dF(e,t){if(!(4&t.state.loading)){var n=dj.get(e);if(n)var r=n.get(null);else{n=new Map,dj.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o<a.length;o++){var i=a[o];("LINK"===i.nodeName||"not all"!==i.getAttribute("media"))&&(n.set(i.dataset.precedence,i),r=i)}r&&n.set(null,r)}i=(a=t.instance).getAttribute("data-precedence"),(o=n.get(i)||r)===r&&n.set(null,a),n.set(i,a),this.count++,r=dI.bind(this),a.addEventListener("load",r),a.addEventListener("error",r),o?o.parentNode.insertBefore(a,o.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(a,e.firstChild),t.state.loading|=4}}var dM={$$typeof:L,Provider:null,Consumer:null,_currentValue:Y,_currentValue2:Y,_threadCount:0};function dz(e,t,n,r,a,o,i,l,s){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=eU(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=eU(0),this.hiddenUpdates=eU(null),this.identifierPrefix=r,this.onUncaughtError=a,this.onCaughtError=o,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=s,this.transitionTypes=null,this.incompleteTransitions=new Map}function dB(e,t,n,r,a,o,i,l,s,u,c,d){return e=new dz(e,t,n,i,s,u,c,d,l),t=1,!0===o&&(t|=24),o=rT(3,null,null,t),e.current=o,o.stateNode=e,t=ah(),t.refCount++,e.pooledCache=t,t.refCount++,o.memoizedState={element:r,isDehydrated:n,cache:t},aY(o),e}function dU(e,t,n,r,a,o){a=a?rx:rx,null===r.context?r.context=a:r.pendingContext=a,(r=aQ(t)).payload={element:n},null!==(o=void 0===o?null:o)&&(r.callback=o),null!==(n=aZ(e,r,t))&&(us(n,e,t),aJ(n,e,t))}function d$(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function dq(e,t){d$(e,t),(e=e.alternate)&&d$(e,t)}function dH(e){if(13===e.tag||31===e.tag){var t=rw(e,0x4000000);null!==t&&us(t,e,0x4000000),dq(e,0x4000000)}}function dV(e){if(13===e.tag||31===e.tag){var t=uo(),n=rw(e,t=eX(t));null!==n&&us(n,e,t),dq(e,t)}}var dX=!0;function dG(e,t,n,r){var a=G.T;G.T=null;var o=W.p;try{W.p=2,dY(e,t,n,r)}finally{W.p=o,G.T=a}}function dW(e,t,n,r){var a=G.T;G.T=null;var o=W.p;try{W.p=8,dY(e,t,n,r)}finally{W.p=o,G.T=a}}function dY(e,t,n,r){if(dX){var a=dK(r);if(null===a)cr(e,t,r,dQ,n),d9(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return d1=d7(d1,e,t,n,r,a),!0;case"dragenter":return d2=d7(d2,e,t,n,r,a),!0;case"mouseover":return d4=d7(d4,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return d3.set(o,d7(d3.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,d5.set(o,d7(d5.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(d9(e,r),4&t&&-1<d8.indexOf(e)){for(;null!==a;){var o=e9(a);if(null!==o)switch(o.tag){case 3:if((o=o.stateNode).current.memoizedState.isDehydrated){var i=eD(o.pendingLanes);if(0!==i){var l=o;for(l.pendingLanes|=2,l.entangledLanes|=2;i;){var s=1<<31-eN(i);l.entanglements[1]|=s,i&=~s}uW(o),0==(6&sI)&&(s0=eb()+500,uY(0,!1))}}break;case 31:case 13:null!==(l=rw(o,2))&&us(l,o,2),uf(),dq(o,2)}if(null===(o=dK(r))&&cr(e,t,r,dQ,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else cr(e,t,r,null,n)}}function dK(e){return dZ(e=tF(e))}var dQ=null;function dZ(e){if(dQ=null,null!==(e=e8(e))){var t=u(e);if(null===t)e=null;else{var n=t.tag;if(13===n){if(null!==(e=c(t)))return e;e=null}else if(31===n){if(null!==(e=d(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return dQ=e,null}function dJ(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"fullscreenerror":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"resize":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(ev()){case ew:return 2;case eS:return 8;case ek:case ex:return 32;case eE:return 0x10000000;default:return 32}default:return 32}}var d0=!1,d1=null,d2=null,d4=null,d3=new Map,d5=new Map,d6=[],d8="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function d9(e,t){switch(e){case"focusin":case"focusout":d1=null;break;case"dragenter":case"dragleave":d2=null;break;case"mouseover":case"mouseout":d4=null;break;case"pointerover":case"pointerout":d3.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":d5.delete(t.pointerId)}}function d7(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&null!==(t=e9(t))&&dH(t)):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a)),e}function fe(e){var t=e8(e.target);if(null!==t){var n=u(t);if(null!==n){if(13===(t=n.tag)){if(null!==(t=c(n))){e.blockedOn=t,eY(e.priority,function(){dV(n)});return}}else if(31===t){if(null!==(t=d(n))){e.blockedOn=t,eY(e.priority,function(){dV(n)});return}}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=3===n.tag?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=dK(e.nativeEvent);if(null!==n)return null!==(t=e9(n))&&dH(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);tD=r,n.target.dispatchEvent(r),tD=null,t.shift()}return!0}function fn(e,t,n){ft(e)&&n.delete(t)}function fr(){d0=!1,null!==d1&&ft(d1)&&(d1=null),null!==d2&&ft(d2)&&(d2=null),null!==d4&&ft(d4)&&(d4=null),d3.forEach(fn),d5.forEach(fn)}function fa(e,t){e.blockedOn===t&&(e.blockedOn=null,d0||(d0=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,fr)))}var fo=null;function fi(e){fo!==e&&(fo=e,a.unstable_scheduleCallback(a.unstable_NormalPriority,function(){fo===e&&(fo=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],a=e[t+2];if("function"!=typeof r)if(null===dZ(r||n))continue;else break;var o=e9(n);null!==o&&(e.splice(t,3),t-=3,ib(o,{pending:!0,data:a,method:n.method,action:r},r,a))}}))}function fl(e){function t(t){return fa(t,e)}null!==d1&&fa(d1,e),null!==d2&&fa(d2,e),null!==d4&&fa(d4,e),d3.forEach(t),d5.forEach(t);for(var n=0;n<d6.length;n++){var r=d6[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<d6.length&&null===(n=d6[0]).blockedOn;)fe(n),null===n.blockedOn&&d6.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<n.length;r+=3){var a=n[r],o=n[r+1],i=a[eZ]||null;if("function"==typeof o)i||fi(n);else if(i){var l=null;if(o&&o.hasAttribute("formAction")){if(a=o,i=o[eZ]||null)l=i.formAction;else if(null!==dZ(a))continue}else l=i.action;"function"==typeof l?n[r+1]=l:(n.splice(r,3),r-=3),fi(n)}}}function fs(){function e(e){e.canIntercept&&"react-transition"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return a=e})},focusReset:"manual",scroll:"manual"})}function t(){null!==a&&(a(),a=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:"react-transition",history:"replace"})}}if("object"==typeof navigation){var r=!1,a=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),null!==a&&(a(),a=null)}}}function fu(e){this._internalRoot=e}function fc(e){this._internalRoot=e}fc.prototype.render=fu.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(l(409));dU(t.current,uo(),e,t,null,null)},fc.prototype.unmount=fu.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dU(e.current,2,null,e,null,null),uf(),t[eJ]=null}},fc.prototype.unstable_scheduleHydration=function(e){if(e){var t=eW();e={blockedOn:null,target:e,priority:t};for(var n=0;n<d6.length&&0!==t&&t<d6[n].priority;n++);d6.splice(n,0,e),0===n&&fe(e)}};var fd=o.version;if("19.3.0"!==fd)throw Error(l(527,fd,"19.3.0"));if(W.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(l(188));throw Error(l(268,e=Object.keys(e).join(",")))}return null===(e=null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=u(e)))throw Error(l(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return f(a),e;if(o===r)return f(a),t;o=o.sibling}throw Error(l(188))}if(n.return!==r.return)n=a,r=o;else{for(var i=!1,s=a.child;s;){if(s===n){i=!0,n=a,r=o;break}if(s===r){i=!0,r=a,n=o;break}s=s.sibling}if(!i){for(s=o.child;s;){if(s===n){i=!0,n=o,r=a;break}if(s===r){i=!0,r=o,n=a;break}s=s.sibling}if(!i)throw Error(l(189))}}if(n.alternate!==r)throw Error(l(190))}if(3!==n.tag)throw Error(l(188));return n.stateNode.current===n?e:t}(t))?function e(t){var n=t.tag;if(5===n||26===n||27===n||6===n)return t;for(t=t.child;null!==t;){if(null!==(n=e(t)))return n;t=t.sibling}return null}(e):null)?null:e.stateNode},"u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ff=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ff.isDisabled&&ff.supportsFiber)try{eA=ff.inject({bundleType:0,version:"19.3.0",rendererPackageName:"react-dom",currentDispatcherRef:G,reconcilerVersion:"19.3.0"}),eC=ff}catch(e){}}t.createRoot=function(e,t){if(!s(e))throw Error(l(299));var n=!1,r="",a=iU,o=i$,i=iq;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(a=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(i=t.onRecoverableError)),t=dB(e,1,!1,null,null,n,r,null,a,o,i,fs),e[eJ]=t.current,ct(e),new fu(t)},t.hydrateRoot=function(e,t,n){if(!s(e))throw Error(l(299));var r=!1,a="",o=iU,i=i$,u=iq,c=null;return null!=n&&(!0===n.unstable_strictMode&&(r=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(i=n.onCaughtError),void 0!==n.onRecoverableError&&(u=n.onRecoverableError),void 0!==n.formState&&(c=n.formState)),(t=dB(e,1,!0,t,null!=n?n:null,r,a,c,o,i,u,fs)).context=rx,n=t.current,(a=aQ(r=eX(r=uo()))).callback=null,aZ(n,a,r),n=r,t.current.lanes=n,e$(t,n),uW(t),e[eJ]=t.current,ct(e),new fc(t)},t.version="19.3.0"},6221(e,t,n){"use strict";var r=n(6540);function a(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(){}var i={d:{f:o,r:function(){throw Error(a(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},l=Symbol.for("react.portal"),s=Symbol.for("react.recoverable"),u=Symbol.for("react.optimistic_key"),c=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,t.browser=function(e){return{$$typeof:s,_reason:e}},t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(a(299));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:l,key:null==r?null:r===u?u:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.flushSync=function(e){var t=c.T,n=i.p;try{if(c.T=null,i.p=2,e)return e()}finally{c.T=t,i.p=n,i.d.f()}},t.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,i.d.C(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&i.d.D(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var n=t.as,r=d(n,t.crossOrigin),a="string"==typeof t.integrity?t.integrity:void 0,o="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===n?i.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):"script"===n&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var n=d(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0})}}else null==t&&i.d.M(e)},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var n=t.as,r=d(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e)if(t){var n=d(t.as,t.crossOrigin);i.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0})}else i.d.m(e)},t.requestFormReset=function(e){i.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,n){return c.H.useFormState(e,t,n)},t.useFormStatus=function(){return c.H.useHostTransitionStatus()},t.version="19.3.0"},5338(e,t,n){"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(1247)},961(e,t,n){"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(6221)},115(e){var t="u">typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;e.exports=function(e,o){try{return function e(o,i){if(o===i)return!0;if(o&&i&&"object"==typeof o&&"object"==typeof i){var l,s,u,c;if(o.constructor!==i.constructor)return!1;if(Array.isArray(o)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(!e(o[s],i[s]))return!1;return!0}if(n&&o instanceof Map&&i instanceof Map){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=o.entries();!(s=c.next()).done;)if(!e(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&o instanceof Set&&i instanceof Set){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(o)&&ArrayBuffer.isView(i)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(o[s]!==i[s])return!1;return!0}if(o.constructor===RegExp)return o.source===i.source&&o.flags===i.flags;if(o.valueOf!==Object.prototype.valueOf&&"function"==typeof o.valueOf&&"function"==typeof i.valueOf)return o.valueOf()===i.valueOf();if(o.toString!==Object.prototype.toString&&"function"==typeof o.toString&&"function"==typeof i.toString)return o.toString()===i.toString();if((l=(u=Object.keys(o)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&o instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!o.$$typeof)&&!e(o[u[s]],i[u[s]]))return!1;return!0}return o!=o&&i!=i}(e,o)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},545(e,t,n){"use strict";n.d(t,{mg:()=>Q,vd:()=>q});var r=n(6540),a=n(5556),o=n.n(a),i=n(115),l=n.n(i),s=n(311),u=n.n(s),c=n(2833),d=n.n(c);function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,g(e,t)}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},y={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(h).map(function(e){return h[e]}),S={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k=Object.keys(S).reduce(function(e,t){return e[S[t]]=t,e},{}),x=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=x(e,h.TITLE),n=x(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,function(){return t});var r=x(e,"defaultTitle");return t||r||void 0},T=function(e,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return f({},e,t)},{})},_=function(e,t,n){var r={};return n.filter(function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)}).map(function(t){return t[e]}).reverse().reduce(function(e,n){var a={};n.filter(function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)}).reverse().forEach(function(t){return e.push(t)});for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e},[]).reverse()},A=function(e,t){if(Array.isArray(e)&&e.length){for(var n=0;n<e.length;n+=1)if(e[n][t])return!0}return!1},C=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce(function(e,n){return!function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.default.push(n):e.priority.push(n),e},{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[h.NOSCRIPT,h.SCRIPT,h.STYLE],L=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce(function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r},"")},R=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce(function(t,n){return t[S[n]||n]=e[n],t},t)},j=function(e,t){return t.map(function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach(function(e){var n=S[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]}),r.createElement(e,o)})},D=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){var e,n,a,o;return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=R(n,a),[r.createElement(h.TITLE,o,e)]},toString:function(){var r,a,o,i;return r=t.title,a=t.titleAttributes,o=I(a),i=C(r),o?"<"+e+' data-rh="true" '+o+">"+L(i,n)+"</"+e+">":"<"+e+' data-rh="true">'+L(i,n)+"</"+e+">"}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return R(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return j(e,t)},toString:function(){return t.reduce(function(t,r){var a=Object.keys(r).filter(function(e){return"innerHTML"!==e&&"cssText"!==e}).reduce(function(e,t){var a=void 0===r[t]?t:t+'="'+L(r[t],n)+'"';return e?e+" "+a:a},""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")},"")}}}},F=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=e.titleAttributes,u=e.linkTags,c=e.metaTags,d=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var p,g,m,w,S,k,x=(p=e.linkTags,g=e.scriptTags,m=e.encode,w=P(e.metaTags,v),S=P(p,y),k=P(g,b),{priorityMethods:{toComponent:function(){return[].concat(j(h.META,w.priority),j(h.LINK,S.priority),j(h.SCRIPT,k.priority))},toString:function(){return D(h.META,w.priority,m)+" "+D(h.LINK,S.priority,m)+" "+D(h.SCRIPT,k.priority,m)}},metaTags:w.default,linkTags:S.default,scriptTags:k.default});f=x.priorityMethods,u=x.linkTags,c=x.metaTags,d=x.scriptTags}return{priority:f,base:D(h.BASE,t,r),bodyAttributes:D("bodyAttributes",n,r),htmlAttributes:D("htmlAttributes",a,r),link:D(h.LINK,u,r),meta:D(h.META,c,r),noscript:D(h.NOSCRIPT,o,r),script:D(h.SCRIPT,d,r),style:D(h.STYLE,i,r),title:D(h.TITLE,{title:void 0===l?"":l,titleAttributes:s},r)}},M=[],z=function(e,t){var n=this;void 0===t&&(t="u">typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?M:n.instances},add:function(e){(n.canUseDOM?M:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?M:n.instances).indexOf(e);(n.canUseDOM?M:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=F({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},B=r.createContext({}),U=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),$="u">typeof document,q=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new z(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(B.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);q.canUseDOM=$,q.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},q.defaultProps={context:{}},q.displayName="HelmetProvider";var H=function(e,t){var n,r=document.head||document.querySelector(h.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach(function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some(function(e,t){return n=t,r.isEqualNode(e)})?o.splice(n,1):i.push(r)}),o.forEach(function(e){return e.parentNode.removeChild(e)}),i.forEach(function(e){return r.appendChild(e)}),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},X=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(h.BODY,e.bodyAttributes),V(h.HTML,r),void 0!==c&&document.title!==c&&(document.title=C(c)),V(h.TITLE,d);var f={baseTag:H(h.BASE,n),linkTags:H(h.LINK,a),metaTags:H(h.META,o),noscriptTags:H(h.NOSCRIPT,i),scriptTags:H(h.SCRIPT,s),styleTags:H(h.STYLE,u)},p={},g={};Object.keys(f).forEach(function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(g[e]=f[e].oldTags)}),t&&t(),l(e,p,g)},G=null,W=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o={baseTag:(e=["href"],(t=n.helmetInstances.get().map(function(e){var t=f({},e.props);return delete t.context,t})).filter(function(e){return void 0!==e[h.BASE]}).map(function(e){return e[h.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t},[])),bodyAttributes:T("bodyAttributes",t),defer:x(t,"defer"),encode:x(t,"encodeSpecialCharacters"),htmlAttributes:T("htmlAttributes",t),linkTags:_(h.LINK,["rel","href"],t),metaTags:_(h.META,["name","charset","http-equiv","property","itemprop"],t),noscriptTags:_(h.NOSCRIPT,["innerHTML"],t),onChangeClientState:x(t,"onChangeClientState")||function(){},scriptTags:_(h.SCRIPT,["src","innerHTML"],t),styleTags:_(h.STYLE,["cssText"],t),title:E(t),titleAttributes:T("titleAttributes",t),prioritizeSeoTags:A(t,"prioritizeSeoTags")};q.canUseDOM?(G&&cancelAnimationFrame(G),o.defer?G=requestAnimationFrame(function(){X(o,function(){G=null})}):(X(o),G=null)):F&&(a=F(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);W.propTypes={context:U.isRequired},W.displayName="HelmetDispatcher";var Y=["children"],K=["children"],Q=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case h.SCRIPT:case h.NOSCRIPT:return{innerHTML:t};case h.STYLE:return{cssText:t};default:throw Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case h.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case h.BODY:return f({},a,{bodyAttributes:f({},o)});case h.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach(function(t){var r;n=f({},n,((r={})[t]=e[t],r))}),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some(function(t){return e.type===t}),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some(function(e){return"string"!=typeof e}),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,function(e){if(e&&e.props){var r=e.props,o=r.children,i=m(r,Y),l=Object.keys(i).reduce(function(e,t){return e[k[t]||t]=i[t],e},{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case h.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}}),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=m(e,K),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof z||(o=new z(o.context,o.instances)),o?r.createElement(W,f({},a,{context:o.value,helmetData:void 0})):r.createElement(B.Consumer,null,function(e){return r.createElement(W,f({},a,{context:e}))})},t}(r.Component);Q.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},Q.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Q.displayName="Helmet"},2799(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,g=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function S(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case h:case m:case s:return e;default:return t}}case a:return t}}}function k(e){return S(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=h,t.Memo=m,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return k(e)||S(e)===c},t.isConcurrentMode=k,t.isContextConsumer=function(e){return S(e)===u},t.isContextProvider=function(e){return S(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return S(e)===f},t.isFragment=function(e){return S(e)===o},t.isLazy=function(e){return S(e)===h},t.isMemo=function(e){return S(e)===m},t.isPortal=function(e){return S(e)===a},t.isProfiler=function(e){return S(e)===l},t.isStrictMode=function(e){return S(e)===i},t.isSuspense=function(e){return S(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===v||e.$$typeof===w||e.$$typeof===y)},t.typeOf=S},4363(e,t,n){"use strict";e.exports=n(2799)},3259(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var l=n(6540),s=[],u=[],c=l.createContext(null);function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then(function(e){return n.loading=!1,n.loaded=e,e}).catch(function(e){throw n.loading=!1,n.error=e,e}),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach(function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then(function(e){t.loaded[r]=e}).catch(function(e){t.error=e})})}catch(e){t.error=e}return t.promise=Promise.all(n).then(function(e){return t.loading=!1,e}).catch(function(e){throw t.loading=!1,e}),t}function p(e,t){return l.createElement(e&&e.__esModule?e.default:e,t)}function g(e,t){if(!t.loading)throw Error("react-loadable requires a `loading` component");var d,f,g=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),m=null;function h(){return m||(m=e(g.loader)),m.promise}return s.push(h),"function"==typeof g.webpack&&u.push(function(){if((0,g.webpack)().every(function(e){return void 0!==e&&void 0!==n.m[e]}))return h()}),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",function(){r.setState({error:null,loading:!0,timedOut:!1}),m=e(g.loader),r._loadModule()}),h(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return h()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context&&Array.isArray(g.modules)&&g.modules.forEach(function(t){e.context.report(t)}),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof g.delay&&(0===g.delay?this.setState({pastDelay:!0}):this._delay=setTimeout(function(){t({pastDelay:!0})},g.delay)),"number"==typeof g.timeout&&(this._timeout=setTimeout(function(){t({timedOut:!0})},g.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.promise.then(function(){return n(),null}).catch(function(e){return n(),null})}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(g.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?g.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextType",c),f}function m(e){return g(d,e)}function h(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then(function(){if(e.length)return h(e)})}m.Map=function(e){if("function"!=typeof e.render)throw Error("LoadableMap requires a `render(loaded, props)` function");return g(f,e)},m.Capture=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return l.createElement(c.Provider,{value:{report:this.props.report}},l.Children.only(this.props.children))},t}(l.Component),m.preloadAll=function(){return new Promise(function(e,t){h(s).then(e,t)})},m.preloadReady=function(){return new Promise(function(e,t){h(u).then(e,e)})},e.exports=m},2831(e,t,n){"use strict";n.d(t,{u:()=>function e(t,n,a){return void 0===a&&(a=[]),t.some(function(t){var o=t.path?(0,r.B6)(n,t):a.length?a[a.length-1].match:r.Ix.computeRootMatch(n);return o&&(a.push({route:t,match:o}),t.routes&&e(t.routes,n,a)),o}),a},v:()=>i});var r=n(6347),a=n(8168),o=n(6540);function i(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map(function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})})):null}},4625(e,t,n){"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>y,k2:()=>w});var r=n(6347),a=n(594),o=n(6540),i=n(3328),l=n(8168),s=n(8587),u=n(1561),c=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component),d=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.TM)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component),f=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},g=function(e){return e},m=o.forwardRef;void 0===m&&(m=g);var h=m(function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),r())}});return g!==m?c.ref=t||n:c.ref=n,o.createElement("a",c)}),y=m(function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,d=e.to,y=e.innerRef,b=(0,s.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,function(e){e||(0,u.A)(!1);var n=e.history,r=p(f(d,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.A)({},b,{href:s,navigate:function(){var t=f(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(c||r?n.replace:n.push)(t)}});return g!==m?h.ref=t||y:h.innerRef=y,o.createElement(a,h)})}),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var w=v(function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,d=e.activeStyle,g=e.className,m=e.exact,h=e.isActive,w=e.location,S=e.sensitive,k=e.strict,x=e.style,E=e.to,T=e.innerRef,_=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,function(e){e||(0,u.A)(!1);var n=w||e.location,i=p(f(E,n),n),s=i.pathname,A=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),C=A?(0,r.B6)(n.pathname,{path:A,exact:m,sensitive:S,strict:k}):null,P=!!(h?h(C,n):C),N="function"==typeof g?g(P):g,O="function"==typeof x?x(P):x;P&&(N=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter(function(e){return e}).join(" ")}(N,c),O=(0,l.A)({},O,d));var L=(0,l.A)({"aria-current":P&&a||null,className:N,style:O,to:i},_);return b!==v?L.ref=t||T:L.innerRef=T,o.createElement(y,L)})})},6347(e,t,n){"use strict";n.d(t,{B6:()=>v,Ix:()=>h,W6:()=>x,XZ:()=>m,dO:()=>S,qh:()=>w,zy:()=>E});var r=n(594),a=n(6540),o=n(5556),i=n.n(o),l=(n(3328),n(1561)),s=n(8168),u=n(5302),c=n.n(u);n(4363),n(8587),n(4146);var d="u">typeof globalThis?globalThis:"u">typeof window?window:void 0!==n.g?n.g:{},f=a.createContext||function(e,t){var n,o,l="__create-react-context-"+(d.__global_unique_id__=(d.__global_unique_id__||0)+1)+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=Array(a),i=0;i<a;i++)o[i]=arguments[i];return n=(t=e.call.apply(e,[this].concat(o))||this).props.value,r=[],t.emitter={on:function(e){r.push(e)},off:function(e){r=r.filter(function(t){return t!==e})},get:function(){return n},set:function(e,t){n=e,r.forEach(function(e){return e(n,t)})}},t}(0,r.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;(r===a?0!==r||1/r==1/a:r!=r&&a!=a)?n=0:0!=(n=("function"==typeof t?t(r,a):0x3fffffff)|0)&&this.emitter.set(e.value,n)}},a.render=function(){return this.props.children},n}(a.Component);(n={})[l]=i().object.isRequired,s.childContextTypes=n;var u=function(t){function n(){for(var e,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){(e.observedBits&n)!=0&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?0x3fffffff:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?0x3fffffff:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){var e;return(Array.isArray(e=this.props.children)?e[0]:e)(this.state.value)},n}(a.Component);return(o={})[l]=i().object,u.contextTypes=o,{Provider:s,Consumer:u}},p=function(e){var t=f();return t.displayName=e,t},g=p("Router-History"),m=p("Router"),h=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen(function(e){n._pendingLocation=e})),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen(function(t){e._isMounted&&e.setState({location:t})})),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(m.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(g.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component,a.Component;var y={},b=0;function v(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce(function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=y[n]||(y[n]={});if(r[e])return r[e];var a=[],o={regexp:c()(e,a,t),keys:a};return b<1e4&&(r[e]=o,b++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var d=s[0],f=s.slice(1),p=e===d;return o&&!p?null:{path:n,url:"/"===n&&""===d?"/":d,isExact:p,params:i.reduce(function(e,t,n){return e[t.name]=f[n],e},{})}},null)}var w=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(m.Consumer,null,function(t){t||(0,l.A)(!1);var n,r=e.props.location||t.location,o=e.props.computedMatch?e.props.computedMatch:e.props.path?v(r.pathname,e.props):t.match,i=(0,s.A)({},t,{location:r,match:o}),u=e.props,c=u.children,d=u.component,f=u.render;return Array.isArray(c)&&(n=c,0===a.Children.count(n))&&(c=null),a.createElement(m.Provider,{value:i},i.match?c?"function"==typeof c?c(i):c:d?a.createElement(d,i):f?f(i):null:"function"==typeof c?c(i):null)})},t}(a.Component);a.Component;var S=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(m.Consumer,null,function(t){t||(0,l.A)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?v(o.pathname,(0,s.A)({},e.props,{path:i})):t.match}}),r?a.cloneElement(n,{location:o,computedMatch:r}):null})},t}(a.Component),k=a.useContext;function x(){return k(g)}function E(){return k(m).location}},9698(e,t){"use strict";var n=Symbol.for("react.transitional.element");function r(e,t,r){var a=null;if(void 0!==r&&(a=""+r),void 0!==t.key&&(a=""+t.key),"key"in t)for(var o in r={},t)"key"!==o&&(r[o]=t[o]);else r=t;return{$$typeof:n,type:e,key:a,ref:void 0!==(t=r.ref)?t:null,props:r}}t.Fragment=Symbol.for("react.fragment"),t.jsx=r,t.jsxs=r},9869(e,t){"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.for("react.view_transition"),m=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,b={};function v(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||h}function w(){}function S(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},w.prototype=v.prototype;var k=S.prototype=new w;k.constructor=S,y(k,v.prototype),k.isPureReactComponent=!0;var x=Array.isArray;function E(){}var T={H:null,A:null,T:null,S:null},_=Object.prototype.hasOwnProperty;function A(e,t,r){var a=r.ref;return{$$typeof:n,type:e,key:t,ref:void 0!==a?a:null,props:r}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var P=/\/+/g;function N(e,t){var n,r;return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36)}function O(e,t,a){if(null==e)return e;var o=[],i=0;return!function e(t,a,o,i,l){var s,u,c,d=typeof t;("undefined"===d||"boolean"===d)&&(t=null);var p=!1;if(null===t)p=!0;else switch(d){case"bigint":case"string":case"number":p=!0;break;case"object":switch(t.$$typeof){case n:case r:p=!0;break;case f:return e((p=t._init)(t._payload),a,o,i,l)}}if(p)return l=l(t),p=""===i?"."+N(t,0):i,x(l)?(o="",null!=p&&(o=p.replace(P,"$&/")+"/"),e(l,a,o,"",function(e){return e})):null!=l&&(C(l)&&(s=l,u=o+(null==l.key||t&&t.key===l.key?"":(""+l.key).replace(P,"$&/")+"/")+p,l=A(s.type,u,s.props)),a.push(l)),1;p=0;var g=""===i?".":i+":";if(x(t))for(var h=0;h<t.length;h++)d=g+N(i=t[h],h),p+=e(i,a,o,d,l);else if("function"==typeof(h=null===(c=t)||"object"!=typeof c?null:"function"==typeof(c=m&&c[m]||c["@@iterator"])?c:null))for(t=h.call(t),h=0;!(i=t.next()).done;)d=g+N(i=i.value,h++),p+=e(i,a,o,d,l);else if("object"===d){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(E,E):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),a,o,i,l);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(a=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":a)+"). If you meant to render a collection of children, use an array instead.")}return p}(e,o,"","",function(e){return t.call(a,e,i++)}),o}function L(e){if(-1===e._status){var t=(0,e._result)();t.then(function(n){(0===e._status||-1===e._status)&&(e._status=1,e._result=n,void 0===t.status&&(t.status="fulfilled",t.value=n))},function(n){(0===e._status||-1===e._status)&&(e._status=2,e._result=n,void 0===t.status&&(t.status="rejected",t.reason=n))}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var I="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function R(e){var t=T.T,n={};n.types=null!==t?t.types:null,T.T=n;try{var r=e(),a=T.S;null!==a&&a(n,r),"object"==typeof r&&null!==r&&"function"==typeof r.then&&r.then(E,I)}catch(e){I(e)}finally{null!==t&&null!==n.types&&(t.types=n.types),T.T=t}}function j(e){var t=T.T;if(null!==t){var n=t.types;null===n?t.types=[e]:-1===n.indexOf(e)&&n.push(e)}else R(j.bind(null,e))}t.Activity=p,t.Children={map:O,forEach:function(e,t,n){O(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return O(e,function(){t++}),t},toArray:function(e){return O(e,function(e){return e})||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=v,t.Fragment=a,t.Profiler=i,t.PureComponent=S,t.StrictMode=o,t.Suspense=c,t.ViewTransition=g,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},t.addTransitionType=j,t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cacheSignal=function(){return null},t.cloneElement=function(e,t,n){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var r=y({},e.props),a=e.key;if(null!=t)for(o in void 0!==t.key&&(a=""+t.key),t)_.call(t,o)&&"key"!==o&&"__self"!==o&&"__source"!==o&&("ref"!==o||void 0!==t.ref)&&(r[o]=t[o]);var o=arguments.length-2;if(1===o)r.children=n;else if(1<o){for(var i=Array(o),l=0;l<o;l++)i[l]=arguments[l+2];r.children=i}return A(e.type,a,r)},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},t.createElement=function(e,t,n){var r,a={},o=null;if(null!=t)for(r in void 0!==t.key&&(o=""+t.key),t)_.call(t,r)&&"key"!==r&&"__self"!==r&&"__source"!==r&&(a[r]=t[r]);var i=arguments.length-2;if(1===i)a.children=n;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];a.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===a[r]&&(a[r]=i[r]);return A(e,o,a)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=R,t.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},t.use=function(e){return T.H.use(e)},t.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},t.useCallback=function(e,t){return T.H.useCallback(e,t)},t.useContext=function(e){return T.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},t.useEffect=function(e,t){return T.H.useEffect(e,t)},t.useEffectEvent=function(e){return T.H.useEffectEvent(e)},t.useId=function(){return T.H.useId()},t.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return T.H.useMemo(e,t)},t.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},t.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},t.useRef=function(e){return T.H.useRef(e)},t.useState=function(e){return T.H.useState(e)},t.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},t.useTransition=function(){return T.H.useTransition()},t.version="19.3.0"},6540(e,t,n){"use strict";e.exports=n(9869)},4848(e,t,n){"use strict";e.exports=n(9698)},4477(e,t){"use strict";function n(e,t){var n=e.length;for(e.push(t);0<n;){var r=n-1>>>1,a=e[r];if(0<o(a,t))e[r]=t,e[n]=a,n=r;else break}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else if(u<a&&0>o(c,n))e[r]=c,e[u]=n,r=u;else break}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var i,l=performance;t.unstable_now=function(){return l.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}var c=[],d=[],f=1,p=null,g=3,m=!1,h=!1,y=!1,b=!1,v="function"==typeof setTimeout?setTimeout:null,w="function"==typeof clearTimeout?clearTimeout:null,S="u">typeof setImmediate?setImmediate:null;function k(e){for(var t=r(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,n(c,t);else break;t=r(d)}}function x(e){if(y=!1,k(e),!h)if(null!==r(c))h=!0,E||(E=!0,i());else{var t=r(d);null!==t&&L(x,t.startTime-e)}}var E=!1,T=-1,_=5,A=-1;function C(){return!!b||!(t.unstable_now()-A<_)}function P(){if(b=!1,E){var e=t.unstable_now();A=e;var n=!0;try{e:{h=!1,y&&(y=!1,w(T),T=-1),m=!0;var o=g;try{t:{for(k(e),p=r(c);null!==p&&!(p.expirationTime>e&&C());){var l=p.callback;if("function"==typeof l){p.callback=null,g=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){p.callback=s,k(e),n=!0;break t}p===r(c)&&a(c),k(e)}else a(c);p=r(c)}if(null!==p)n=!0;else{var u=r(d);null!==u&&L(x,u.startTime-e),n=!1}}break e}finally{p=null,g=o,m=!1}}}finally{n?i():E=!1}}}if("function"==typeof S)i=function(){S(P)};else if("u">typeof MessageChannel){var N=new MessageChannel,O=N.port2;N.port1.onmessage=P,i=function(){O.postMessage(null)}}else i=function(){v(P,0)};function L(e,n){T=v(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return g},t.unstable_next=function(e){switch(g){case 1:case 2:case 3:var t=3;break;default:t=g}var n=g;g=t;try{return e()}finally{g=n}},t.unstable_requestPaint=function(){b=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=g;g=e;try{return t()}finally{g=n}},t.unstable_scheduleCallback=function(e,a,o){var l=t.unstable_now();switch(o="object"==typeof o&&null!==o&&"number"==typeof(o=o.delay)&&0<o?l+o:l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=o+s,e={id:f++,callback:a,priorityLevel:e,startTime:o,expirationTime:s,sortIndex:-1},o>l?(e.sortIndex=o,n(d,e),null===r(c)&&e===r(d)&&(y?(w(T),T=-1):y=!0,L(x,o-l))):(e.sortIndex=s,n(c,e),h||m||(h=!0,E||(E=!0,i()))),e},t.unstable_shouldYield=C,t.unstable_wrapCallback=function(e){var t=g;return function(){var n=g;g=t;try{return e.apply(this,arguments)}finally{g=n}}}},9982(e,t,n){"use strict";e.exports=n(4477)},2833(e){e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},8460(e,t,n){"use strict";n.d(t,{A:()=>f}),n(6540);var r=n(4848),a=n(3259),o=n.n(a),i=n(4054);let l={"01a85c17":[()=>Promise.all([n.e("4014"),n.e("9786")]).then(n.bind(n,3456)),"@theme/BlogTagsListPage",3456],"02854a60":[()=>Promise.all([n.e("5005"),n.e("8384")]).then(n.bind(n,7455)),"@site/i18n/en/docusaurus-plugin-content-docs/current/quickstart/setup.md",7455],"1078a278":[()=>Promise.all([n.e("5005"),n.e("3674")]).then(n.bind(n,3445)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-lineage.md",3445],"136d9fb6":[()=>n.e("9901").then(n.t.bind(n,9216,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-tags-origin-bee.json",9216],0x11113f9:[()=>Promise.all([n.e("4014"),n.e("5005"),n.e("1016"),n.e("106")]).then(n.bind(n,280)),"@theme/DocItem",280],"22e0017f":[()=>n.e("1591").then(n.t.bind(n,3558,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-tags-d52.json",3558],"2cb18a50":[()=>Promise.all([n.e("5005"),n.e("9548")]).then(n.bind(n,1564)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/architecture.md",1564],"33fc5bb8":[()=>Promise.all([n.e("4014"),n.e("5005"),n.e("1016"),n.e("6726"),n.e("48")]).then(n.bind(n,2242)),"@theme/Blog/Pages/BlogAuthorsPostsPage",2242],"36994c47":[()=>n.e("191").then(n.t.bind(n,5516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",5516],"4a65a190":[()=>Promise.all([n.e("5005"),n.e("2705")]).then(n.bind(n,670)),"@site/blog/2026-09-28-origin-of-sqlparserx.md",670],"4b0ae1c1":[()=>Promise.all([n.e("5005"),n.e("9375")]).then(n.bind(n,8786)),"@site/blog/2026-09-28-origin-of-sqlparserx.md?truncated=true",8786],"533336a0":[()=>Promise.all([n.e("5005"),n.e("8102")]).then(n.bind(n,1082)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-lineage.md",1082],"5abf25f6":[()=>n.e("3179").then(n.t.bind(n,779,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-authors-changlu-bc5.json",779],"5b44acae":[()=>Promise.all([n.e("5005"),n.e("8637")]).then(n.bind(n,2424)),"@site/i18n/en/docusaurus-plugin-content-docs/current/intro.md",2424],"5e95c892":[()=>n.e("1668").then(n.bind(n,6569)),"@theme/DocsRoot",6569],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"621db11d":[()=>Promise.all([n.e("4014"),n.e("6726"),n.e("1221")]).then(n.bind(n,6433)),"@theme/Blog/Pages/BlogAuthorsListPage",6433],"672ba3d6":[()=>Promise.all([n.e("4014"),n.e("8893")]).then(n.bind(n,7062)),"@site/src/pages/community.js",7062],"6875c492":[()=>Promise.all([n.e("4014"),n.e("5005"),n.e("1016"),n.e("6726"),n.e("766")]).then(n.bind(n,149)),"@theme/BlogTagsPostsPage",149],"773100d1":[()=>Promise.all([n.e("5005"),n.e("4413")]).then(n.bind(n,4282)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/quickstart/setup.md",4282],"7ba64a19":[()=>Promise.all([n.e("5005"),n.e("947")]).then(n.bind(n,6296)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/field-lineage.md",6296],"814f3328":[()=>n.e("1833").then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"92d5f697":[()=>Promise.all([n.e("5005"),n.e("4128")]).then(n.bind(n,1110)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/function-parse.md",1110],"9aae347e":[()=>Promise.all([n.e("5005"),n.e("1759")]).then(n.bind(n,1421)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-parse.md",1421],"9c37e8a9":[()=>Promise.all([n.e("5005"),n.e("1033")]).then(n.bind(n,6845)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/introduction.md",6845],"9e4087bc":[()=>n.e("9660").then(n.bind(n,7243)),"@theme/BlogArchivePage",7243],a02bd756:[()=>n.e("5415").then(n.t.bind(n,8354,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-edf.json",8354],a16ef744:[()=>Promise.all([n.e("5005"),n.e("9984")]).then(n.bind(n,3349)),"@site/i18n/en/docusaurus-plugin-content-docs/current/contributing.md",3349],a6aa9e1f:[()=>Promise.all([n.e("4014"),n.e("5005"),n.e("1016"),n.e("6726"),n.e("7496")]).then(n.bind(n,2152)),"@theme/BlogListPage",2152],a7456010:[()=>n.e("3056").then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e("5575").then(n.bind(n,8146)),"@theme/DocVersionRoot",8146],a84fc31f:[()=>Promise.all([n.e("5005"),n.e("9414")]).then(n.bind(n,3893)),"@site/i18n/en/docusaurus-plugin-content-docs/current/about/introduction.md",3893],a94703ab:[()=>Promise.all([n.e("4014"),n.e("6785")]).then(n.bind(n,1399)),"@theme/DocRoot",1399],aa9e3246:[()=>n.e("2687").then(n.t.bind(n,6321,19)),"@generated/docusaurus-plugin-content-docs/default/p/sql-parser-x-en-docs-next-d4b.json",6321],aba21aa0:[()=>n.e("3747").then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],ac311984:[()=>Promise.all([n.e("5005"),n.e("9590")]).then(n.bind(n,7821)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-parse.md",7821],ac4ff279:[()=>Promise.all([n.e("5005"),n.e("8222")]).then(n.bind(n,6462)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/contributing.md",6462],acecf23e:[()=>n.e("3220").then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],bd32d0d5:[()=>n.e("5940").then(n.t.bind(n,4241,19)),"@generated/docusaurus-plugin-content-docs/default/p/sql-parser-x-en-docs-7be.json",4241],c4f5d8e4:[()=>Promise.all([n.e("4014"),n.e("4823")]).then(n.bind(n,7641)),"@site/src/pages/index.js",7641],c61d1296:[()=>Promise.all([n.e("5005"),n.e("3224")]).then(n.bind(n,9246)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/intro.md",9246],ccc49370:[()=>Promise.all([n.e("4014"),n.e("5005"),n.e("1016"),n.e("6726"),n.e("6074")]).then(n.bind(n,2063)),"@theme/BlogPostPage",2063],d611a6ba:[()=>Promise.all([n.e("5005"),n.e("9794")]).then(n.bind(n,3354)),"@site/i18n/en/docusaurus-plugin-content-docs/current/about/architecture.md",3354],db80618e:[()=>n.e("6056").then(n.t.bind(n,9707,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-authors-2a6.json",9707],e539d78b:[()=>Promise.all([n.e("5005"),n.e("5301")]).then(n.bind(n,8432)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/field-lineage.md",8432],e9caf4bd:[()=>n.e("2030").then(n.t.bind(n,7846,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-archive-987.json",7846],f798a39c:[()=>Promise.all([n.e("5005"),n.e("7266")]).then(n.bind(n,264)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/function-parse.md",264]};function s({error:e,retry:t,pastDelay:n}){return e?(0,r.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,r.jsx)("p",{children:String(e)}),(0,r.jsx)("div",{children:(0,r.jsx)("button",{type:"button",onClick:t,children:"Retry"})})]}):n?(0,r.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,r.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,r.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,r.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(7665),c=n(7574);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e("5062").then(n.bind(n,629)),modules:["@theme/NotFound"],webpack:()=>[629],render(e,t){let n=e.default;return(0,r.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,r.jsx)(n,{...t})})}});let a=i[`${e}-${t}`],d={},f=[],p=[];return Object.entries((0,u.A)(a)).forEach(([e,t])=>{let n=l[t];n&&(d[e]=n[0],f.push(n[1]),p.push(n[2]))}),o().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){let o=JSON.parse(JSON.stringify(a));Object.entries(t).forEach(([t,n])=>{let r=n.default;if(!r)throw Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);("object"==typeof r||"function"==typeof r)&&Object.keys(n).filter(e=>"default"!==e).forEach(e=>{r[e]=n[e]});let a=o,i=t.split(".");i.slice(0,-1).forEach(e=>{a=a[e]}),a[i[i.length-1]]=r});let i=o.__comp;delete o.__comp;let l=o.__context;delete o.__context;let s=o.__props;return delete o.__props,(0,r.jsx)(c.W,{value:l,children:(0,r.jsx)(i,{...o,...s,...n})})}})}let f=[{path:"/SqlParserX/en/blog",component:d("/SqlParserX/en/blog","c47"),exact:!0},{path:"/SqlParserX/en/blog/archive",component:d("/SqlParserX/en/blog/archive","bf0"),exact:!0},{path:"/SqlParserX/en/blog/authors",component:d("/SqlParserX/en/blog/authors","ac8"),exact:!0},{path:"/SqlParserX/en/blog/authors/changlu",component:d("/SqlParserX/en/blog/authors/changlu","a8d"),exact:!0},{path:"/SqlParserX/en/blog/origin-of-sqlparserx",component:d("/SqlParserX/en/blog/origin-of-sqlparserx","a52"),exact:!0},{path:"/SqlParserX/en/blog/tags",component:d("/SqlParserX/en/blog/tags","2aa"),exact:!0},{path:"/SqlParserX/en/blog/tags/origin",component:d("/SqlParserX/en/blog/tags/origin","121"),exact:!0},{path:"/SqlParserX/en/community",component:d("/SqlParserX/en/community","2bf"),exact:!0},{path:"/SqlParserX/en/docs",component:d("/SqlParserX/en/docs","708"),routes:[{path:"/SqlParserX/en/docs/next",component:d("/SqlParserX/en/docs/next","f9e"),routes:[{path:"/SqlParserX/en/docs/next",component:d("/SqlParserX/en/docs/next","cf5"),routes:[{path:"/SqlParserX/en/docs/next/about/architecture",component:d("/SqlParserX/en/docs/next/about/architecture","7df"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/about/introduction",component:d("/SqlParserX/en/docs/next/about/introduction","9f1"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/contributing",component:d("/SqlParserX/en/docs/next/contributing","083"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/field-lineage",component:d("/SqlParserX/en/docs/next/core/field-lineage","d01"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/function-parse",component:d("/SqlParserX/en/docs/next/core/function-parse","2b2"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/table-lineage",component:d("/SqlParserX/en/docs/next/core/table-lineage","a0c"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/table-parse",component:d("/SqlParserX/en/docs/next/core/table-parse","69c"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/intro",component:d("/SqlParserX/en/docs/next/intro","684"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/quickstart/setup",component:d("/SqlParserX/en/docs/next/quickstart/setup","65f"),exact:!0,sidebar:"docs"}]}]},{path:"/SqlParserX/en/docs",component:d("/SqlParserX/en/docs","d2e"),routes:[{path:"/SqlParserX/en/docs",component:d("/SqlParserX/en/docs","9f3"),routes:[{path:"/SqlParserX/en/docs/about/architecture",component:d("/SqlParserX/en/docs/about/architecture","d26"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/about/introduction",component:d("/SqlParserX/en/docs/about/introduction","046"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/contributing",component:d("/SqlParserX/en/docs/contributing","d4c"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/field-lineage",component:d("/SqlParserX/en/docs/core/field-lineage","4f9"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/function-parse",component:d("/SqlParserX/en/docs/core/function-parse","906"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/table-lineage",component:d("/SqlParserX/en/docs/core/table-lineage","2f2"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/table-parse",component:d("/SqlParserX/en/docs/core/table-parse","a91"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/intro",component:d("/SqlParserX/en/docs/intro","9c5"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/quickstart/setup",component:d("/SqlParserX/en/docs/quickstart/setup","646"),exact:!0,sidebar:"docs"}]}]}]},{path:"/SqlParserX/en/",component:d("/SqlParserX/en/","624"),exact:!0},{path:"*",component:d("*")}]},1173(e,t,n){"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(4848),a=n(6540);let o=a.createContext(!1);function i({children:e}){let[t,n]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{n(!0)},[]),(0,r.jsx)(o.Provider,{value:t,children:e})}},354(e,t,n){"use strict";var r=n(4848),a=n(6540),o=n(5338),i=n(545),l=n(4625),s=n(4784),u=n(1289);let c=[n(7612),n(6464),n(2489),n(3678),n(6448)];var d=n(8460),f=n(6347),p=n(2831);function g({children:e}){return(0,r.jsx)(r.Fragment,{children:e})}var m=n(3899);let h=e=>e.defaultFormatter(e);function y({children:e}){return(0,r.jsx)(m.AL,{formatter:h,children:e})}function b({children:e}){return(0,r.jsx)(y,{children:e})}var v=n(3572),w=n(898),S=n(6497),k=n(1022),x=n(4308),E=n(5243),T=n(5248),_=n(4175);function A(){let{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),a=(0,E.o)(),o=n[e].htmlLang;return(0,r.jsxs)(v.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,r.jsx)("meta",{property:"og:locale",content:o.replace("-","_")}),Object.values(n).filter(e=>o!==e.htmlLang).map(e=>(0,r.jsx)("meta",{property:"og:locale:alternate",content:e.htmlLang.replace("-","_")},`meta-og-${e.htmlLang}`))]})}function C({permalink:e}){let{siteConfig:{url:t}}=(0,w.A)(),n=function(){let{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,f.zy)();return e+(0,T.applyTrailingSlash)((0,S.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=e?`${t}${e}`:n;return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{property:"og:url",content:a}),(0,r.jsx)("link",{rel:"canonical",href:a})]})}function P(){let{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,k.p)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,r.jsx)("body",{})]}),n&&(0,r.jsx)(x.be,{image:n}),(0,r.jsx)(C,{}),(0,r.jsx)(A,{}),(0,r.jsx)(_.A,{tag:"default",locale:e}),(0,r.jsx)(v.A,{children:t.map((e,t)=>(0,r.jsx)("meta",{...e},t))})]})}let N=new Map;var O=n(1173),L=n(3587),I=n(9989);function R(e,...t){let n=c.map(n=>{let r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}let j=function({children:e,location:t,previousLocation:n}){return(0,I.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;let n=e.pathname===t.pathname,r=e.hash===t.hash,a=e.search===t.search;if(n&&r&&!a)return;let{hash:o}=e;if(o){let e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),R("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function D(e){return Promise.all(Array.from(new Set([e,decodeURI(e)])).map(e=>(0,p.u)(d.A,e)).flat().map(e=>e.route.component.preload?.()))}class F extends a.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=u.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;let n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),D(n.pathname).then(()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})}).catch(e=>{console.warn(e),window.location.reload()}),!1}render(){let{children:e,location:t}=this.props;return(0,r.jsx)(j,{previousLocation:this.previousLocation,location:t,children:(0,r.jsx)(f.qh,{location:t,render:()=>e})})}}let M="__docusaurus-base-url-issue-banner-suggestion-container";function z(){let{siteConfig:{baseUrl:e}}=(0,w.A)();return(0,r.jsx)(r.Fragment,{children:!u.A.canUseDOM&&(0,r.jsx)(v.A,{children:(0,r.jsx)("script",{children:` +(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1889"],{7612(e,t,n){"use strict";n.r(t)},6464(e,t,n){"use strict";n.r(t)},6448(e,t,n){"use strict";n.r(t)},3328(e,t,n){"use strict";n.d(t,{AO:()=>f,yJ:()=>p,sC:()=>C,TM:()=>_,zR:()=>w});var r=n(8168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}let i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o,l,s,u,c,d;"string"==typeof e?(s="",u="",-1!==(c=(l=e||"/").indexOf("#"))&&(u=l.substr(c),l=l.substr(0,c)),-1!==(d=l.indexOf("?"))&&(s=l.substr(d),l=l.substr(0,d)),(o={pathname:l,search:"?"===s?"":s,hash:"#"===u?"":u}).state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(e){if(e instanceof URIError)throw URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.');throw e}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null,t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter(function(e){return e!==r})}},notifyListeners:function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach(function(e){return e.apply(void 0,n)})}}}var g=!!("u">typeof window&&window.document&&window.document.createElement);function h(e,t){t(window.confirm(e))}var y="popstate",b="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),g||(0,l.A)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=-1!==window.navigator.userAgent.indexOf("Trident"),i=e,u=i.forceRefresh,w=void 0!==u&&u,S=i.getUserConfirmation,k=void 0===S?h:S,x=i.keyLength,E=void 0===x?6:x,T=e.basename?d(s(e.basename)):"";function _(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return T&&(o=c(o,T)),p(o,r,n)}function A(){return Math.random().toString(36).substr(2,E)}var C=m();function N(e){(0,r.A)(U,e),U.length=n.length,C.notifyListeners(U.location,U.action)}function P(e){(void 0!==e.state||-1!==navigator.userAgent.indexOf("CriOS"))&&I(_(e.state))}function O(){I(_(v()))}var L=!1;function I(e){L?(L=!1,N()):C.confirmTransitionTo(e,"POP",k,function(t){var n,r,a,o,i;t?N({action:"POP",location:e}):(n=e,r=U.location,-1===(a=j.indexOf(r.key))&&(a=0),-1===(o=j.indexOf(n.key))&&(o=0),(i=a-o)&&(L=!0,F(i)))})}var R=_(v()),j=[R.key];function D(e){return T+f(e)}function F(e){n.go(e)}var M=0;function z(e){1===(M+=e)&&1===e?(window.addEventListener(y,P),o&&window.addEventListener(b,O)):0===M&&(window.removeEventListener(y,P),o&&window.removeEventListener(b,O))}var B=!1,U={length:n.length,action:"POP",location:R,createHref:D,push:function(e,t){var r="PUSH",o=p(e,t,A(),U.location);C.confirmTransitionTo(o,r,k,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=j.indexOf(U.location.key),u=j.slice(0,s+1);u.push(o.key),j=u,N({action:r,location:o})}else window.location.href=t}})},replace:function(e,t){var r="REPLACE",o=p(e,t,A(),U.location);C.confirmTransitionTo(o,r,k,function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=j.indexOf(U.location.key);-1!==s&&(j[s]=o.key),N({action:r,location:o})}else window.location.replace(t)}})},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=C.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=C.appendListener(e);return z(1),function(){z(-1),t()}}};return U}var S="hashchange",k={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function x(e){var t=e.indexOf("#");return -1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return -1===t?"":e.substring(t+1)}function T(e){window.location.replace(x(window.location.href)+"#"+e)}function _(e){void 0===e&&(e={}),g||(0,l.A)(!1);var t=window.history;window.navigator.userAgent.indexOf("Firefox");var n=e,a=n.getUserConfirmation,o=void 0===a?h:a,i=n.hashType,u=e.basename?d(s(e.basename)):"",y=k[void 0===i?"slash":i],b=y.encodePath,v=y.decodePath;function w(){var e=v(E());return u&&(e=c(e,u)),p(e)}var _=m();function A(e){(0,r.A)(z,e),z.length=t.length,_.notifyListeners(z.location,z.action)}var C=!1,N=null;function P(){var e=E(),t=b(e);if(e!==t)T(t);else{var n,r=w(),a=z.location;if(!C&&a.pathname===r.pathname&&a.search===r.search&&a.hash===r.hash||N===f(r))return;N=null,n=r,C?(C=!1,A()):_.confirmTransitionTo(n,"POP",o,function(e){var t,r,a,o,i;e?A({action:"POP",location:n}):(t=n,r=z.location,-1===(a=R.lastIndexOf(f(r)))&&(a=0),-1===(o=R.lastIndexOf(f(t)))&&(o=0),(i=a-o)&&(C=!0,j(i)))})}}var O=E(),L=b(O);O!==L&&T(L);var I=w(),R=[f(I)];function j(e){t.go(e)}var D=0;function F(e){1===(D+=e)&&1===e?window.addEventListener(S,P):0===D&&window.removeEventListener(S,P)}var M=!1,z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=x(window.location.href)),n+"#"+b(u+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);_.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=b(u+t);if(E()!==a){N=t,window.location.hash=a;var o=R.lastIndexOf(f(z.location)),i=R.slice(0,o+1);i.push(t),R=i,A({action:n,location:r})}else A()}})},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);_.confirmTransitionTo(r,n,o,function(e){if(e){var t=f(r),a=b(u+t);E()!==a&&(N=t,T(a));var o=R.indexOf(f(z.location));-1!==o&&(R[o]=t),A({action:n,location:r})}})},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(e){void 0===e&&(e=!1);var t=_.setPrompt(e);return M||(F(1),M=!0),function(){return M&&(M=!1,F(-1)),t()}},listen:function(e){var t=_.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function A(e,t,n){return Math.min(Math.max(e,t),n)}function C(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=t.keyLength,s=void 0===l?6:l,u=m();function c(e){(0,r.A)(b,e),b.length=b.entries.length,u.notifyListeners(b.location,b.action)}function d(){return Math.random().toString(36).substr(2,s)}var g=A(void 0===i?0:i,0,o.length-1),h=o.map(function(e){return"string"==typeof e?p(e,void 0,d()):p(e,void 0,e.key||d())});function y(e){var t=A(b.index+e,0,b.entries.length-1),r=b.entries[t];u.confirmTransitionTo(r,"POP",n,function(e){e?c({action:"POP",location:r,index:t}):c()})}var b={length:h.length,action:"POP",location:h[g],index:g,entries:h,createHref:f,push:function(e,t){var r="PUSH",a=p(e,t,d(),b.location);u.confirmTransitionTo(a,r,n,function(e){if(e){var t=b.index+1,n=b.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),c({action:r,location:a,index:t,entries:n})}})},replace:function(e,t){var r="REPLACE",a=p(e,t,d(),b.location);u.confirmTransitionTo(a,r,n,function(e){e&&(b.entries[b.index]=a,c({action:r,location:a}))})},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=b.index+e;return t>=0&&t<b.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return b}},4146(e,t,n){"use strict";var r=n(4363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),g=s(n),h=0;h<i.length;++h){var y=i[h];if(!o[y]&&!(r&&r[y])&&!(g&&g[y])&&!(l&&l[y])){var b=f(n,y);try{u(t,y,b)}catch(e){}}}}return t}},311(e){"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=Error(t.replace(/%s/g,function(){return u[c++]}))).name="Invariant Violation"}throw s.framesToPop=1,s}}},4634(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},5947(e){var t;t=function(){var e,t,n,r={};r.version="0.2.0";var a=r.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}r.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(a[t]=n);return this},r.status=null,r.set=function(e){var t=r.isStarted();r.status=1===(e=o(e,a.minimum,1))?null:e;var n=r.render(!t),s=n.querySelector(a.barSelector),u=a.speed,c=a.easing;return n.offsetWidth,i(function(t){var o,i,d,f;""===a.positionUsing&&(a.positionUsing=r.getPositioningCSS()),l(s,(o=e,i=u,d=c,(f="translate3d"===a.positionUsing?{transform:"translate3d("+(-1+o)*100+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+(-1+o)*100+"%,0)"}:{"margin-left":(-1+o)*100+"%"}).transition="all "+i+"ms "+d,f)),1===e?(l(n,{transition:"none",opacity:1}),n.offsetWidth,setTimeout(function(){l(n,{transition:"all "+u+"ms linear",opacity:0}),setTimeout(function(){r.remove(),t()},u)},u)):setTimeout(t,u)}),this},r.isStarted=function(){return"number"==typeof r.status},r.start=function(){r.status||r.set(0);var e=function(){setTimeout(function(){r.status&&(r.trickle(),e())},a.trickleSpeed)};return a.trickle&&e(),this},r.done=function(e){return e||r.status?r.inc(.3+.5*Math.random()).set(1):this},r.inc=function(e){var t=r.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),r.set(t)):r.start()},r.trickle=function(){return r.inc(Math.random()*a.trickleRate)},e=0,t=0,r.promise=function(n){return n&&"resolved"!==n.state()&&(0===t&&r.start(),e++,t++,n.always(function(){0==--t?(e=0,r.done()):r.set((e-t)/e)})),this},r.render=function(e){if(r.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=a.template;var n,o=t.querySelector(a.barSelector),i=e?"-100":(-1+(r.status||0))*100,s=document.querySelector(a.parent);return l(o,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),!a.showSpinner&&(n=t.querySelector(a.spinnerSelector))&&f(n),s!=document.body&&u(s,"nprogress-custom-parent"),s.appendChild(t),t},r.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},r.isRendered=function(){return!!document.getElementById("nprogress")},r.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var i=(n=[],function(e){n.push(e),1==n.length&&function e(){var t=n.shift();t&&t(e)}()}),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n,r,a){var o;r=t[o=(o=r).replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,t){return t.toUpperCase()})]||(t[o]=function(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}(o)),n.style[r]=a}return function(e,t){var r,a,o=arguments;if(2==o.length)for(r in t)void 0!==(a=t[r])&&t.hasOwnProperty(r)&&n(e,r,a);else n(e,o[1],o[2])}}();function s(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=d(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function c(e,t){var n,r=d(e);s(e,t)&&(e.className=(n=r.replace(" "+t+" "," ")).substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return r},"function"==typeof define&&define.amd?define(t):e.exports=t()},5302(e,t,n){var r=n(4634);e.exports=function e(t,n,a){if(r(n)||(a=n||a,n=[]),a=a||{},t instanceof RegExp){var i,l,s=n,d=t.source.match(/\((?!\?)/g);if(d)for(var f=0;f<d.length;f++)s.push({name:f,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return t.keys=s,t}if(r(t)){for(var p,m=n,g=a,h=[],y=0;y<t.length;y++)h.push(e(t[y],m,g).source);return(p=RegExp("(?:"+h.join("|")+")",u(g))).keys=m,p}return i=n,c(o(t,l=a),i,l)},e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=c;var a=RegExp("(\\\\.)|([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))","g");function o(e,t){for(var n,r=[],o=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var c,d,f=n[0],p=n[1],m=n.index;if(l+=e.slice(i,m),i=m+f.length,p){l+=p[1];continue}var g=e[i],h=n[2],y=n[3],b=n[4],v=n[5],w=n[6],S=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=g&&g!==h,x="+"===w||"*"===w,E="?"===w||"*"===w,T=h||u,_=b||v,A=h||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:y||o++,prefix:h||"",delimiter:T,optional:E,repeat:x,partial:k,asterisk:!!S,pattern:_?_.replace(/([=!:$\/()])/g,"\\$1"):S?".*":(c=T,!(d=A)||d.indexOf(c)>-1?"[^"+s(c)+"]+?":s(d)+"|(?:(?!"+s(d)+")[^"+s(c)+"])+?")})}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function l(e,t){for(var n=Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=RegExp("^(?:"+e[a].pattern+")$",u(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c,d=e[u];if("string"==typeof d){o+=d;continue}var f=l[d.name];if(null==f)if(d.optional){d.partial&&(o+=d.prefix);continue}else throw TypeError('Expected "'+d.name+'" to be defined');if(r(f)){if(!d.repeat)throw TypeError('Expected "'+d.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length)if(d.optional)continue;else throw TypeError('Expected "'+d.name+'" to not be empty');for(var p=0;p<f.length;p++){if(c=s(f[p]),!n[u].test(c))throw TypeError('Expected all "'+d.name+'" to match "'+d.pattern+'", but received `'+JSON.stringify(c)+"`");o+=(0===p?d.prefix:d.delimiter)+c}continue}if(c=d.asterisk?encodeURI(f).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}):s(f),!n[u].test(c))throw TypeError('Expected "'+d.name+'" to match "'+d.pattern+'", but received "'+c+'"');o+=d.prefix+c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e&&e.sensitive?"":"i"}function c(e,t,n){r(t)||(n=t||n,t=[]);for(var a,o=(n=n||{}).strict,i=!1!==n.end,l="",c=0;c<e.length;c++){var d=e[c];if("string"==typeof d)l+=s(d);else{var f=s(d.prefix),p="(?:"+d.pattern+")";t.push(d),d.repeat&&(p+="(?:"+f+p+")*"),l+=p=d.optional?d.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var m=s(n.delimiter||"/"),g=l.slice(-m.length)===m;return o||(l=(g?l.slice(0,-m.length):l)+"(?:"+m+"(?=$))?"),i?l+="$":l+=o&&g?"":"(?="+m+"|$)",(a=RegExp("^"+l,u(n))).keys=t,a}},7022(){!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash}(Prism)},6976(){var e,t,n,r;e=Prism,t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}},e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:r.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,function(){return t.source})),lookbehind:!0,inside:{punctuation:/\./}}})},2514(){Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},9700(){var e=Prism;function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var g=f.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=f.substring(m+p.length),b=[];g&&b.push.apply(b,i([g])),b.push(h),y&&b.push.apply(b,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})},9486(){var e;e=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i,Prism.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:e}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:e}},punctuation:/[{};]/}},2342(){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},6966(){Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},2416(e,t,n){var r={"./prism-bash":"7022","./prism-java":"6976","./prism-json":"2514","./prism-nginx":"9486","./prism-python":"2342","./prism-sql":"6966"};function a(e){return n(o(e))}function o(e){if(!n.o(r,e)){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=2416},2694(e,t,n){"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556(e,t,n){e.exports=n(2694)()},6925(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},1247(e,t,n){"use strict";var r,a=n(9982),o=n(6540),i=n(961);function l(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function u(e){for(var t=e,n=t;n&&!n.alternate;)0!=(4098&(t=n).flags)&&(e=t.return),n=t.return;for(;t.return;)t=t.return;return 3===t.tag?e:null}function c(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function d(e){if(31===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function f(e){if(u(e)!==e)throw Error(l(188))}function p(e,t,n,r,a,o){for(;null!==e;){if((5===e.tag||27===e.tag||6===e.tag)&&n(e,r,a,o)||(22!==e.tag||null===e.memoizedState)&&(t||5!==e.tag&&27!==e.tag)&&p(e.child,t,n,r,a,o))return!0;e=e.sibling}return!1}function m(e){for(e=e.return;null!==e;){if(3===e.tag||5===e.tag||27===e.tag)return e;e=e.return}return null}function g(e){var t=!1;for(e=e.return;null!==e&&(4===e.tag&&(t=!0),3!==e.tag&&5!==e.tag&&27!==e.tag);)e=e.return;return t}function h(e){var t=[null,null],n=m(e);return null===n||function e(t,n,r,a){for(;null!==r;){if(r===n)a.foundSelf=!0;else if(5===r.tag||27===r.tag||6===r.tag){if(a.foundSelf)return t[1]=r,!0;t[0]=r}else if((22!==r.tag||null===r.memoizedState)&&e(t,n,r.child,a))return!0;r=r.sibling}return!1}(t,e,n.child,{foundSelf:!1}),t}function y(e){switch(e.tag){case 5:case 27:case 6:return e.stateNode;case 3:return e.stateNode.containerInfo;default:throw Error(l(559))}}var b=null,v=null;function w(e,t,n){return e===n||e===t&&(b=e,!0)}function S(e,t,n){return e===n?(v=e,!1):e===t&&(null!==v&&(b=e),!0)}function k(e){if(null===e)return null;do e=null===e?null:e.return;while(e&&5!==e.tag&&27!==e.tag&&3!==e.tag)return e||null}function x(e,t,n){for(var r=0,a=e;a;a=n(a))r++;a=0;for(var o=t;o;o=n(o))a++;for(;0<r-a;)e=n(e),r--;for(;0<a-r;)t=n(t),a--;for(;r--;){if(e===t||null!==t&&e===t.alternate)return e;e=n(e),t=n(t)}return null}var E=Object.assign,T=Symbol.for("react.element"),_=Symbol.for("react.transitional.element"),A=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),N=Symbol.for("react.strict_mode"),P=Symbol.for("react.profiler"),O=Symbol.for("react.consumer"),L=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),R=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),F=Symbol.for("react.lazy");Symbol.for("react.scope");var M=Symbol.for("react.activity"),z=Symbol.for("react.legacy_hidden");Symbol.for("react.tracing_marker");var B=Symbol.for("react.memo_cache_sentinel"),U=Symbol.for("react.view_transition"),$=Symbol.for("react.recoverable"),q=Symbol.iterator;function H(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=q&&e[q]||e["@@iterator"])?e:null}var V=Symbol.for("react.client.reference"),X=Array.isArray,G=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,W=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y={pending:!1,data:null,method:null,action:null},K=[],Q=-1;function Z(e){return{current:e}}function J(e){0>Q||(e.current=K[Q],K[Q]=null,Q--)}function ee(e,t){K[++Q]=e.current,e.current=t}var et=Z(null),en=Z(null),er=Z(null),ea=Z(null);function eo(e,t){switch(ee(er,t),ee(en,e),ee(et,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?cw(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=cS(t=cw(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}J(et),ee(et,e)}function ei(){J(et),J(en),J(er)}function el(e){var t=e.memoizedState;null!==t&&(dM._currentValue=t.memoizedState,ee(ea,e));var n=cS(t=et.current,e.type);t!==n&&(ee(en,e),ee(et,n))}function es(e){en.current===e&&(J(et),J(en)),ea.current===e&&(J(ea),dM._currentValue=Y)}function eu(e){if(void 0===t1)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);t1=t&&t[1]||"",t2=-1<e.stack.indexOf("\n at")?" (<anonymous>)":-1<e.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+t1+e+t2}var ec=!1;function ed(e,t){if(!e||ec)return"";ec=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}n=!1;try{var a=Object.getOwnPropertyDescriptor(e.prototype,"props");Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),n=!0,new e}finally{n&&(void 0!==a?Object.defineProperty(e.prototype,"props",a):delete e.prototype.props)}}}else{try{throw Error()}catch(e){r=e}(n=e())&&"function"==typeof n.catch&&n.catch(function(){})}}catch(e){if(e&&r&&"string"==typeof e.stack)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var a=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");a&&a.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var o=r.DetermineComponentFrameRoot(),i=o[0],l=o[1];if(i&&l){var s=i.split("\n"),u=l.split("\n");for(a=r=0;r<s.length&&!s[r].includes("DetermineComponentFrameRoot");)r++;for(;a<u.length&&!u[a].includes("DetermineComponentFrameRoot");)a++;if(r===s.length||a===u.length)for(r=s.length-1,a=u.length-1;1<=r&&0<=a&&s[r]!==u[a];)a--;for(;1<=r&&0<=a;r--,a--)if(s[r]!==u[a]){if(1!==r||1!==a)do if(r--,a--,0>a||s[r]!==u[a]){var c="\n"+s[r].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=r&&0<=a)break}}}finally{ec=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?eu(n):""}function ef(e){try{var t="",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return eu(e.type);case 16:return eu("Lazy");case 13:return e.child!==t&&null!==t?eu("Suspense Fallback"):eu("Suspense");case 19:return eu("SuspenseList");case 0:case 15:return ed(e.type,!1);case 11:return ed(e.type.render,!1);case 1:return ed(e.type,!0);case 31:return eu("Activity");case 30:return eu("ViewTransition");default:return""}}(e,n),n=e,e=e.return;while(e)return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var ep=Object.prototype.hasOwnProperty,em=a.unstable_scheduleCallback,eg=a.unstable_cancelCallback,eh=a.unstable_shouldYield,ey=a.unstable_requestPaint,eb=a.unstable_now,ev=a.unstable_getCurrentPriorityLevel,ew=a.unstable_ImmediatePriority,eS=a.unstable_UserBlockingPriority,ek=a.unstable_NormalPriority,ex=a.unstable_LowPriority,eE=a.unstable_IdlePriority,eT=a.log,e_=a.unstable_setDisableYieldValue,eA=null,eC=null;function eN(e){if("function"==typeof eT&&e_(e),eC&&"function"==typeof eC.setStrictMode)try{eC.setStrictMode(eA,e)}catch(e){}}var eP=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(eO(e)/eL|0)|0},eO=Math.log,eL=Math.LN2,eI=256,eR=262144,ej=4194304;function eD(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function eF(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,o=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=0x7ffffff&r;return 0!==l?0!=(r=l&~o)?a=eD(r):0!=(i&=l)?a=eD(i):n||0!=(n=l&~e)&&(a=eD(n)):0!=(l=r&~o)?a=eD(l):0!==i?a=eD(i):n||0!=(n=r&~e)&&(a=eD(n)),0===a?0:0!==t&&t!==a&&0==(t&o)&&((o=a&-a)>=(n=t&-t)||32===o&&0!=(4194048&n))?t:a}function eM(e,t){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function ez(e,t){0!=(8&t)&&(t|=32&t);var n=e.entangledLanes;if(0!==n)for(e=e.entanglements,n&=t;0<n;){var r=31-eP(n),a=1<<r;t|=e[r],n&=~a}return t}function eB(){var e=ej;return 0==(0x3c00000&(ej<<=1))&&(ej=4194304),e}function eU(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function e$(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function eq(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-eP(t);e.entangledLanes|=t,e.entanglements[r]=0x40000000|e.entanglements[r]|261930&n}function eH(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-eP(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}function eV(e,t){var n=t&-t;return 0!=((n=0!=(42&n)?1:eX(n))&(e.suspendedLanes|t))?0:n}function eX(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 0x1000000:case 0x2000000:e=128;break;case 0x10000000:e=0x8000000;break;default:e=0}return e}function eG(e){return 2<(e&=-e)?8<e?0!=(0x7ffffff&e)?32:0x10000000:8:2}function eW(){var e=W.p;return 0!==e?e:void 0===(e=window.event)?32:dJ(e.type)}function eY(e,t){var n=W.p;try{return W.p=e,t()}finally{W.p=n}}var eK=Math.random().toString(36).slice(2),eQ="__reactFiber$"+eK,eZ="__reactProps$"+eK,eJ="__reactContainer$"+eK,e0="__reactEvents$"+eK,e1="__reactListeners$"+eK,e2="__reactHandles$"+eK,e4="__reactResources$"+eK,e3="__reactMarker$"+eK,e6="__reactLoad$"+eK;function e8(e){delete e[eQ],delete e[eZ],delete e[e1],delete e[e2]}function e5(e){var t;if(t=e[eQ])return t;for(var n=e.parentNode;n;){if(t=n[eJ]||n[eQ]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=dr(e);null!==e;){if(n=e[eQ])return n;e=dr(e)}return t}n=(e=n).parentNode}return null}function e9(e){if(e=e[eQ]||e[eJ]){var t=e.tag;if(5===t||6===t||13===t||31===t||26===t||27===t||3===t)return e}return null}function e7(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e.stateNode;throw Error(l(33))}function te(e){var t=e[e4];return t||(t=e[e4]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function tt(e){e[e3]=!0}function tn(e){e[e6]=void 0}var tr=new Set,ta={};function to(e,t){ti(e,t),ti(e+"Capture",t)}function ti(e,t){for(ta[e]=t,e=0;e<t.length;e++)tr.add(t[e])}var tl=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),ts={},tu={},tc=!1;function td(){var e=tc;return tc=!1,e}function tf(e,t,n){if(ep.call(tu,t)||!ep.call(ts,t)&&(tl.test(t)?tu[t]=!0:(ts[t]=!0,!1)))if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var r=t.toLowerCase().slice(0,5);if("data-"!==r&&"aria-"!==r)return void e.removeAttribute(t)}e.setAttribute(t,n)}}function tp(e,t,n){if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,n)}}function tm(e,t,n,r){if(null===r)e.removeAttribute(n);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,r)}}function tg(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function th(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function ty(e){if(!e._valueTracker){var t=th(e)?"checked":"value";e._valueTracker=function(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&void 0!==r&&"function"==typeof r.get&&"function"==typeof r.set){var a=r.get,o=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){n=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e,t,""+e[t])}}function tb(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=th(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}var tv=/[\n"\\]/g;function tw(e){return e.replace(tv,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function tS(e,t,n,r,a,o,i,l){e.name="",null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i?e.type=i:e.removeAttribute("type"),null!=t?"number"===i?(0===t&&""===e.value||e.value!=t)&&(e.value=""+tg(t)):e.value!==""+tg(t)&&(e.value=""+tg(t)):"submit"!==i&&"reset"!==i||e.removeAttribute("value"),null!=t?"number"===i&&e.value==t?tx(e,tg(e.value)):tx(e,tg(t)):null!=n?tx(e,tg(n)):null!=r&&e.removeAttribute("value"),null==a&&null!=o&&(e.defaultChecked=!!o),null!=a&&(e.checked=a&&"function"!=typeof a&&"symbol"!=typeof a),null!=l&&"function"!=typeof l&&"symbol"!=typeof l&&"boolean"!=typeof l?e.name=""+tg(l):e.removeAttribute("name")}function tk(e,t,n,r,a,o,i,l){if(null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.type=o),null!=t||null!=n){if(("submit"===o||"reset"===o)&&null==t)return void ty(e);n=null!=n?""+tg(n):"",t=null!=t?""+tg(t):n,l||t===e.value||(e.value=t),e.defaultValue=t}r="function"!=typeof(r=null!=r?r:a)&&"symbol"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i&&(e.name=i),ty(e)}function tx(e,t){e.defaultValue!==""+t&&(e.defaultValue=""+t)}function tE(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(a=0,n=""+tg(n),t=null;a<e.length;a++){if(e[a].value===n){e[a].selected=!0,r&&(e[a].defaultSelected=!0);return}null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function tT(e,t,n){if(null!=t&&((t=""+tg(t))!==e.value&&(e.value=t),null==n)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=null!=n?""+tg(n):""}function t_(e,t,n,r){if(null==t){if(null!=r){if(null!=n)throw Error(l(92));if(X(r)){if(1<r.length)throw Error(l(93));r=r[0]}n=r}null==n&&(n=""),t=n}e.defaultValue=n=tg(t),(r=e.textContent)===n&&""!==r&&null!==r&&(e.value=r),ty(e)}function tA(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType){n.nodeValue=t;return}}e.textContent=t}var tC=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function tN(e,t,n){var r=0===t.indexOf("--");null==n||"boolean"==typeof n||""===n?r?e.setProperty(t,""):"float"===t?e.cssFloat="":e[t]="":r?e.setProperty(t,n):"number"!=typeof n||0===n||tC.has(t)?"float"===t?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function tP(e,t,n){if(null!=t&&"object"!=typeof t)throw Error(l(62));if(e=e.style,null!=n){for(var r in n)!n.hasOwnProperty(r)||null!=t&&t.hasOwnProperty(r)||(0===r.indexOf("--")?e.setProperty(r,""):"float"===r?e.cssFloat="":e[r]="",tc=!0);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&(tN(e,a,r),tc=!0)}else for(var o in t)t.hasOwnProperty(o)&&tN(e,o,t[o])}function tO(e){if(-1===e.indexOf("-"))return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var tL=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["maskType","mask-type"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),tI=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function tR(e){return tI.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function tj(){}var tD=null;function tF(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var tM=null,tz=null;function tB(e){var t=e9(e);if(t&&(e=t.stateNode)){var n=e[eZ]||null;switch(e=t.stateNode,t.type){case"input":if(tS(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+tw(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[eZ]||null;if(!a)throw Error(l(90));tS(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)(r=n[t]).form===e.form&&tb(r)}break;case"textarea":tT(e,n.value,n.defaultValue);break;case"select":null!=(t=n.value)&&tE(e,!!n.multiple,t,!1)}}}var tU=!1;function t$(e,t,n){if(tU)return e(t,n);tU=!0;try{return e(t)}finally{if(tU=!1,(null!==tM||null!==tz)&&(uf(),tM&&(t=tM,e=tz,tz=tM=null,tB(t),e)))for(t=0;t<e.length;t++)tB(e[t])}}function tq(e,t){var n=e.stateNode;if(null===n)return null;var r=n[eZ]||null;if(null===r)return null;switch(n=r[t],t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r="button"!==(e=e.type)&&"input"!==e&&"select"!==e&&"textarea"!==e),e=!r;break;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(l(231,t,typeof n));return n}var tH="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement,tV=!1;if(tH)try{var tX={};Object.defineProperty(tX,"passive",{get:function(){tV=!0}}),window.addEventListener("test",tX,tX),window.removeEventListener("test",tX,tX)}catch(e){tV=!1}var tG=null,tW=null,tY=null;function tK(){if(tY)return tY;var e,t,n=tW,r=n.length,a="value"in tG?tG.value:tG.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tY=a.slice(e,1<t?1-t:void 0)}function tQ(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function tZ(){return!0}function tJ(){return!1}function t0(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?tZ:tJ,this.isPropagationStopped=tJ,this}return E(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=tZ)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=tZ)},persist:function(){},isPersistent:tZ}),t}var t1,t2,t4,t3,t6,t8={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},t5=t0(t8),t9=E({},t8,{view:0,detail:0}),t7=t0(t9),ne=E({},t9,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:nd,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==t6&&(t6&&"mousemove"===e.type?(t4=e.screenX-t6.screenX,t3=e.screenY-t6.screenY):t3=t4=0,t6=e),t4)},movementY:function(e){return"movementY"in e?e.movementY:t3}}),nt=t0(ne),nn=t0(E({},ne,{dataTransfer:0})),nr=t0(E({},t9,{relatedTarget:0})),na=t0(E({},t8,{animationName:0,elapsedTime:0,pseudoElement:0})),no=t0(E({},t8,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),ni=t0(E({},t8,{data:0})),nl={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},ns={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},nu={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function nc(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=nu[e])&&!!t[e]}function nd(){return nc}var nf=t0(E({},t9,{key:function(e){if(e.key){var t=nl[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tQ(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?ns[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:nd,charCode:function(e){return"keypress"===e.type?tQ(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tQ(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),np=t0(E({},ne,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),nm=t0(E({},t8,{submitter:0})),ng=t0(E({},t9,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:nd})),nh=t0(E({},t8,{propertyName:0,elapsedTime:0,pseudoElement:0})),ny=t0(E({},ne,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),nb=t0(E({},t8,{newState:0,oldState:0,source:0})),nv=[9,13,27,32],nw=tH&&"CompositionEvent"in window,nS=null;tH&&"documentMode"in document&&(nS=document.documentMode);var nk=tH&&"TextEvent"in window&&!nS,nx=tH&&(!nw||nS&&8<nS&&11>=nS),nE=!1;function nT(e,t){switch(e){case"keyup":return -1!==nv.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function n_(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var nA=!1,nC={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function nN(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!nC[e.type]:"textarea"===t}function nP(e,t,n,r){tM?tz?tz.push(r):tz=[r]:tM=r,0<(t=co(t,"onChange")).length&&(n=new t5("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var nO=null,nL=null;function nI(e){u5(e,0)}function nR(e){if(tb(e7(e)))return e}function nj(e,t){if("change"===e)return t}var nD=!1;if(tH){if(tH){var nF="oninput"in document;if(!nF){var nM=document.createElement("div");nM.setAttribute("oninput","return;"),nF="function"==typeof nM.oninput}r=nF}else r=!1;nD=r&&(!document.documentMode||9<document.documentMode)}function nz(){nO&&(nO.detachEvent("onpropertychange",nB),nL=nO=null)}function nB(e){if("value"===e.propertyName&&nR(nL)){var t=[];nP(t,nL,e,tF(e)),t$(nI,t)}}function nU(e,t,n){"focusin"===e?(nz(),nO=t,nL=n,nO.attachEvent("onpropertychange",nB)):"focusout"===e&&nz()}function n$(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return nR(nL)}function nq(e,t){if("click"===e)return nR(t)}function nH(e,t){if("input"===e||"change"===e)return nR(t)}var nV="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function nX(e,t){if(nV(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!ep.call(t,a)||!nV(e[a],t[a]))return!1}return!0}function nG(e){if(void 0===(e=e||("u">typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function nW(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function nY(e,t){var n,r=nW(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=nW(r)}}function nK(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var t=nG(e.document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(n)e=t.contentWindow;else break;t=nG(e.document)}return t}function nQ(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var nZ=tH&&"documentMode"in document&&11>=document.documentMode,nJ=null,n0=null,n1=null,n2=!1;function n4(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;n2||null==nJ||nJ!==nG(r)||(r="selectionStart"in(r=nJ)&&nQ(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},n1&&nX(n1,r)||(n1=r,0<(r=co(n0,"onSelect")).length&&(t=new t5("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=nJ)))}function n3(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var n6={animationend:n3("Animation","AnimationEnd"),animationiteration:n3("Animation","AnimationIteration"),animationstart:n3("Animation","AnimationStart"),transitionrun:n3("Transition","TransitionRun"),transitionstart:n3("Transition","TransitionStart"),transitioncancel:n3("Transition","TransitionCancel"),transitionend:n3("Transition","TransitionEnd")},n8={},n5={};function n9(e){if(n8[e])return n8[e];if(!n6[e])return e;var t,n=n6[e];for(t in n)if(n.hasOwnProperty(t)&&t in n5)return n8[e]=n[t];return e}tH&&(n5=document.createElement("div").style,"AnimationEvent"in window||(delete n6.animationend.animation,delete n6.animationiteration.animation,delete n6.animationstart.animation),"TransitionEvent"in window||delete n6.transitionend.transition);var n7=n9("animationend"),re=n9("animationiteration"),rt=n9("animationstart"),rn=n9("transitionrun"),rr=n9("transitionstart"),ra=n9("transitioncancel"),ro=n9("transitionend"),ri=new Map,rl="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function rs(e,t){ri.set(e,t),to(t,[e])}rl.push("scrollEnd");var ru=0;function rc(e,t){return null!=e.name&&"auto"!==e.name?e.name:null!==t.autoName?t.autoName:t.autoName=e="_"+(e=s3.identifierPrefix)+"t_"+(ru++).toString(32)+"_"}function rd(e){if(null==e||"string"==typeof e)return e;var t=null,n=un;if(null!==n)for(var r=0;r<n.length;r++){var a=e[n[r]];if(null!=a){if("none"===a)return"none";t=null==t?a:t+" "+a}}return null==t?e.default:t}function rf(e,t){return e=rd(e),null==(t=rd(t))?"auto"===e?null:e:"auto"===t?null:t}var rp="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},rm=[],rg=0,rh=0;function ry(){for(var e=rg,t=rh=rg=0;t<e;){var n=rm[t];rm[t++]=null;var r=rm[t];rm[t++]=null;var a=rm[t];rm[t++]=null;var o=rm[t];if(rm[t++]=null,null!==r&&null!==a){var i=r.pending;null===i?a.next=a:(a.next=i.next,i.next=a),r.pending=a}0!==o&&rS(n,a,o)}}function rb(e,t,n,r){rm[rg++]=e,rm[rg++]=t,rm[rg++]=n,rm[rg++]=r,rh|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function rv(e,t,n,r){return rb(e,t,n,r),rk(e)}function rw(e,t){return rb(e,null,null,t),rk(e)}function rS(e,t,n){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n);for(var a=!1,o=e.return;null!==o;)o.childLanes|=n,null!==(r=o.alternate)&&(r.childLanes|=n),22===o.tag&&(null===(e=o.stateNode)||1&e._visibility||(a=!0)),e=o,o=o.return;return 3===e.tag?(o=e.stateNode,a&&null!==t&&(a=31-eP(n),null===(r=(e=o.hiddenUpdates)[a])?e[a]=[t]:r.push(t),t.lane=0x20000000|n),o):null}function rk(e){if(50<ur)throw ur=0,ua=null,Error(l(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var rx={};function rE(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function rT(e,t,n,r){return new rE(e,t,n,r)}function r_(e){return!(!(e=e.prototype)||!e.isReactComponent)}function rA(e,t){var n=e.alternate;return null===n?((n=rT(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=0x47f00000&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function rC(e,t){e.flags&=0x47f00002;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,e.dependencies=null===(t=n.dependencies)?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function rN(e,t,n,r,a,o){var i=0;if("function"==typeof(r=e))r_(r)&&(i=1);else if("string"==typeof r)i=!function(e,t,n){if(1===n||null!=t.itemProp)return!1;switch(e){case"meta":case"title":return!0;case"style":if("string"!=typeof t.precedence||"string"!=typeof t.href||""===t.href)break;return!0;case"link":if("string"!=typeof t.rel||"string"!=typeof t.href||""===t.href||t.onLoad||t.onError)break;if("stylesheet"===t.rel)return e=t.disabled,"string"==typeof t.precedence&&null==e;return!0;case"script":if(t.async&&"function"!=typeof t.async&&"symbol"!=typeof t.async&&!t.onLoad&&!t.onError&&t.src&&"string"==typeof t.src)return!0}return!1}(e,n,et.current)?"html"===e||"head"===e||"body"===e?27:5:26;else e:switch(r){case M:return(e=rT(31,n,t,a)).elementType=M,e.lanes=o,e;case C:return rP(n.children,a,o,t);case N:i=8,a|=24;break;case P:return(e=rT(12,n,t,2|a)).elementType=P,e.lanes=o,e;case R:return(e=rT(13,n,t,a)).elementType=R,e.lanes=o,e;case j:return(e=rT(19,n,t,a)).elementType=j,e.lanes=o,e;case z:case U:return(e=rT(30,n,t,e=32|a)).elementType=U,e.lanes=o,e.stateNode={autoName:null,paired:null,clones:null,ref:null},e;default:if("object"==typeof r&&null!==r)switch(r.$$typeof){case L:i=10;break e;case O:i=9;break e;case I:i=11;break e;case D:i=14;break e;case F:i=16,r=null;break e}i=29,n=Error(l(130,null===e?"null":typeof e,"")),r=null}return(t=rT(i,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function rP(e,t,n,r){return(e=rT(7,e,r,t)).lanes=n,e}function rO(e,t,n){return(e=rT(6,e,null,t)).lanes=n,e}function rL(e){var t=rT(18,null,null,0);return t.stateNode=e,t}function rI(e,t,n){return(t=rT(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var rR=new WeakMap;function rj(e,t){if("object"==typeof e&&null!==e){var n=rR.get(e);return void 0!==n?n:(t={value:e,source:t,stack:ef(t)},rR.set(e,t),t)}return{value:e,source:t,stack:ef(t)}}var rD=[],rF=0,rM=null,rz=0,rB=[],rU=0,r$=null,rq=1,rH="";function rV(e,t){rD[rF++]=rz,rD[rF++]=rM,rM=e,rz=t}function rX(e,t,n){rB[rU++]=rq,rB[rU++]=rH,rB[rU++]=r$,r$=e;var r=rq;e=rH;var a=32-eP(r)-1;r&=~(1<<a),n+=1;var o=32-eP(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,rq=1<<32-eP(t)+a|n<<a|r,rH=o+e}else rq=1<<o|n<<a|r,rH=e}function rG(e){null!==e.return&&(rV(e,1),rX(e,1,0))}function rW(e){for(;e===rM;)rM=rD[--rF],rD[rF]=null,rz=rD[--rF],rD[rF]=null;for(;e===r$;)r$=rB[--rU],rB[rU]=null,rH=rB[--rU],rB[rU]=null,rq=rB[--rU],rB[rU]=null}function rY(e,t){rB[rU++]=rq,rB[rU++]=rH,rB[rU++]=r$,rq=t.id,rH=t.overflow,r$=e}var rK=null,rQ=null,rZ=!1,rJ=null,r0=!1,r1=Error(l(519));function r2(e){var t=Error(l(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?"text":"HTML",""));throw r9(rj(t,e)),r1}function r4(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[eQ]=e,t[eZ]=r,n){case"dialog":u9("cancel",t),u9("close",t);break;case"iframe":case"object":case"embed":u9("load",t);break;case"video":case"audio":for(n=0;n<u6.length;n++)u9(u6[n],t);break;case"source":u9("error",t);break;case"img":case"image":case"link":u9("error",t),u9("load",t);break;case"details":u9("toggle",t);break;case"input":u9("invalid",t),tk(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case"select":u9("invalid",t);break;case"textarea":u9("invalid",t),t_(t,r.value,r.defaultValue,r.children)}"string"!=typeof(n=r.children)&&"number"!=typeof n&&"bigint"!=typeof n||t.textContent===""+n||!0===r.suppressHydrationWarning||cd(t.textContent,n)?(null!=r.popover&&(u9("beforetoggle",t),u9("toggle",t)),null!=r.onScroll&&u9("scroll",t),null!=r.onScrollEnd&&u9("scrollend",t),null!=r.onClick&&(t.onclick=tj),t=!0):t=!1,t||r2(e,!0)}function r3(e){for(rK=e.return;rK;)switch(rK.tag){case 5:case 31:case 13:r0=!1;return;case 27:case 3:r0=!0;return;default:rK=rK.return}}function r6(e){if(e!==rK)return!1;if(!rZ)return r3(e),rZ=!0,!1;var t,n=e.tag;if((t=3!==n&&27!==n)&&((t=5===n)&&(t="form"===(t=e.type)||"button"===t||cx(e.type,e.memoizedProps)),t=!t),t&&rQ&&r2(e),r3(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rQ=dn(e)}else if(31===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rQ=dn(e)}else 27===n?(n=rQ,cO(e.type)?(e=dt,dt=null,rQ=e):rQ=n):rQ=rK?de(e.stateNode.nextSibling):null;return!0}function r8(){rQ=rK=null,rZ=!1}function r5(){var e=rJ;return null!==e&&(null===sK?sK=e:sK.push.apply(sK,e),rJ=null),e}function r9(e){null===rJ?rJ=[e]:rJ.push(e)}var r7=Z(null),ae=null,at=null;function an(e,t,n){ee(r7,t._currentValue),t._currentValue=n}function ar(e){e._currentValue=r7.current,J(r7)}function aa(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function ao(e,t,n,r){var a=e.child;for(null!==a&&(a.return=e);null!==a;){var o=a.dependencies;if(null!==o){var i=a.child;o=o.firstContext;e:for(;null!==o;){var s=o;o=a;for(var u=0;u<t.length;u++)if(s.context===t[u]){o.lanes|=n,null!==(s=o.alternate)&&(s.lanes|=n),aa(o.return,n,e),r||(i=null);break e}o=s.next}}else if(18===a.tag){if(null===(i=a.return))throw Error(l(341));i.lanes|=n,null!==(o=i.alternate)&&(o.lanes|=n),aa(i,n,e),i=null}else 13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated?(a.lanes|=n,null!==(i=a.alternate)&&(i.lanes|=n),aa(a.return,n,e),i=null!==(i=a.child)?i.sibling:null):i=a.child;if(null!==i)i.return=a;else for(i=a;null!==i;){if(i===e){i=null;break}if(null!==(a=i.sibling)){a.return=i.return,i=a;break}i=i.return}a=i}}function ai(e,t,n,r){e=null;for(var a=t,o=!1;null!==a;){if(!o){if(0!=(524288&a.flags))o=!0;else if(0!=(262144&a.flags))break}if(10===a.tag){var i=a.alternate;if(null===i)throw Error(l(387));if(null!==(i=i.memoizedProps)){var s=a.type;nV(a.pendingProps.value,i.value)||(null!==e?e.push(s):e=[s])}}else if(a===ea.current){if(null===(i=a.alternate))throw Error(l(387));i.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(null!==e?e.push(dM):e=[dM])}a=a.return}return null!==e&&ao(t,e,n,r),t.flags|=262144,null!==e}function al(e){for(e=e.firstContext;null!==e;){if(!nV(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function as(e){ae=e,at=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function au(e){return ad(ae,e)}function ac(e,t){return null===ae&&as(e),ad(e,t)}function ad(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===at){if(null===e)throw Error(l(308));at=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else at=at.next=t;return n}var af="u">typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ap=a.unstable_scheduleCallback,am=a.unstable_NormalPriority,ag={$$typeof:L,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ah(){return{controller:new af,data:new Map,refCount:0}}function ay(e){e.refCount--,0===e.refCount&&ap(am,function(){e.controller.abort()})}function ab(e,t){if(0!=(4194048&e.pendingLanes)){var n=e.transitionTypes;for(null===n&&(n=e.transitionTypes=[]),e=0;e<t.length;e++){var r=t[e];-1===n.indexOf(r)&&n.push(r)}}}var av=null,aw=null,aS=0,ak=0,ax=null;function aE(){if(0==--aS&&(av=null,null!==aw)){null!==ax&&(ax.status="fulfilled");var e=aw;aw=null,ak=0,ax=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var aT=G.S;G.S=function(e,t){if(sJ=eb(),"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e){if(null===aw){var t=aw=[];aS=0,ak=u1(),ax={status:"pending",value:void 0,then:function(e){t.push(e)}}}aS++,e.then(aE,aE)}(t),null!==av)for(var n=u$;null!==n;)ab(n,av),n=n.next;if(null!==(n=e.types)){for(var r=u$;null!==r;)ab(r,n),r=r.next;if(0!==ak){null===(r=av)&&(r=av=[]);for(var a=0;a<n.length;a++){var o=n[a];-1===r.indexOf(o)&&r.push(o)}}}null!==aT&&aT(e,t)};var a_=Z(null);function aA(){var e=a_.current;return null!==e?e:sR.pooledCache}function aC(e,t){null===t?ee(a_,a_.current):ee(a_,t.pool)}function aN(){var e=aA();return null===e?null:{parent:ag._currentValue,pool:e}}var aP=Error(l(460)),aO=Error(l(474)),aL=Error(l(542)),aI={then:function(){}};function aR(e){return"fulfilled"===(e=e.status)||"rejected"===e}function aj(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(tj,tj),t=n),t.status){case"fulfilled":return t.value;case"rejected":if(az(e=t.reason),void 0===e&&!("reason"in t))throw Error(l(600));throw e;default:if("string"==typeof t.status)t.then(tj,tj);else{if(null!==(e=sR)&&100<e.shellSuspendCounter)throw Error(l(482));(e=t).status="pending",e.then(function(e){if("pending"===t.status){var n=t;n.status="fulfilled",n.value=e}},function(e){if("pending"===t.status){var n=t;n.status="rejected",n.reason=e}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw az(e=t.reason),e}throw aF=t,aP}}function aD(e){try{return(0,e._init)(e._payload)}catch(e){if(null!==e&&"object"==typeof e&&"function"==typeof e.then)throw aF=e,aP;throw e}}var aF=null;function aM(){if(null===aF)throw Error(l(459));var e=aF;return aF=null,e}function az(e){if(e===aP||e===aL)throw Error(l(483))}var aB=null,aU=0;function a$(e){var t=aU;return aU+=1,null===aB&&(aB=[]),aj(aB,e,t)}function aq(e,t){e.ref=void 0!==(t=t.props.ref)?t:null}function aH(e,t){if(t.$$typeof===T)throw Error(l(525));throw Error(l(31,"[object Object]"===(e=Object.prototype.toString.call(t))?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function aV(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;null!==e;)null===e.key?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return(e=rA(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return(t.index=r,e)?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=0x8000002,n):(t.flags|=1048576,n)}function i(t){return e&&null===t.alternate&&(t.flags|=0x8000002),t}function s(e,t,n,r){return null===t||6!==t.tag?(t=rO(n,e.mode,r)).return=e:(t=a(t,n)).return=e,t}function u(e,t,n,r){var o=n.type;return o===C?(aq(e=d(e,t,n.props.children,r,n.key),n),e):(null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===F&&aD(o)===t.type)?aq(t=a(t,n.props),n):aq(t=rN(n.type,n.key,n.props,null,e.mode,r),n),t.return=e,t)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=rI(n,e.mode,r)).return=e:(t=a(t,n.children||[])).return=e,t}function d(e,t,n,r,o){return null===t||7!==t.tag?(t=rP(n,e.mode,r,o)).return=e:(t=a(t,n)).return=e,t}function f(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t||"bigint"==typeof t)return(t=rO(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case _:return aq(n=rN(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case A:return(t=rI(t,e.mode,n)).return=e,t;case F:return f(e,t=aD(t),n)}if(X(t)||H(t))return(t=rP(t,e.mode,n,null)).return=e,t;if("function"==typeof t.then)return f(e,a$(t),n);if(t.$$typeof===L)return f(e,ac(e,t),n);aH(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n||"bigint"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case _:return n.key===a?u(e,t,n,r):null;case A:return n.key===a?c(e,t,n,r):null;case F:return p(e,t,n=aD(n),r)}if(X(n)||H(n))return null!==a?null:d(e,t,n,r,null);if("function"==typeof n.then)return p(e,t,a$(n),r);if(n.$$typeof===L)return p(e,t,ac(e,n),r);aH(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r||"bigint"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case _:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case A:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case F:return m(e,t,n,r=aD(r),a)}if(X(r)||H(r))return d(t,e=e.get(n)||null,r,a,null);if("function"==typeof r.then)return m(e,t,n,a$(r),a);if(r.$$typeof===L)return m(e,t,n,ac(t,r),a);aH(t,r)}return null}return function(s,u,c,d){try{aU=0;var g=function s(u,c,d,g){if("object"==typeof d&&null!==d&&d.type===C&&null===d.key&&void 0===d.props.ref&&(d=d.props.children),"object"==typeof d&&null!==d){switch(d.$$typeof){case _:e:{for(var h=d.key;null!==c;){if(c.key===h){if((h=d.type)===C){if(7===c.tag){n(u,c.sibling),aq(g=a(c,d.props.children),d),g.return=u,u=g;break e}}else if(c.elementType===h||"object"==typeof h&&null!==h&&h.$$typeof===F&&aD(h)===c.type){n(u,c.sibling),aq(g=a(c,d.props),d),g.return=u,u=g;break e}n(u,c);break}t(u,c),c=c.sibling}d.type===C?aq(g=rP(d.props.children,u.mode,g,d.key),d):aq(g=rN(d.type,d.key,d.props,null,u.mode,g),d),g.return=u,u=g}return i(u);case A:e:{for(h=d.key;null!==c;){if(c.key===h)if(4===c.tag&&c.stateNode.containerInfo===d.containerInfo&&c.stateNode.implementation===d.implementation){n(u,c.sibling),(g=a(c,d.children||[])).return=u,u=g;break e}else{n(u,c);break}t(u,c),c=c.sibling}(g=rI(d,u.mode,g)).return=u,u=g}return i(u);case F:return s(u,c,d=aD(d),g)}if(X(d))return function(a,i,l,s){for(var u=null,c=null,d=i,g=i=0,h=null;null!==d&&g<l.length;g++){d.index>g?(h=d,d=null):h=d.sibling;var y=p(a,d,l[g],s);if(null===y){null===d&&(d=h);break}e&&d&&null===y.alternate&&t(a,d),i=o(y,i,g),null===c?u=y:c.sibling=y,c=y,d=h}if(g===l.length)return n(a,d),rZ&&rV(a,g),u;if(null===d){for(;g<l.length;g++)null!==(d=f(a,l[g],s))&&(i=o(d,i,g),null===c?u=d:c.sibling=d,c=d);return rZ&&rV(a,g),u}for(d=r(d);g<l.length;g++)null!==(h=m(d,a,g,l[g],s))&&(e&&null!==(y=h.alternate)&&d.delete(null===y.key?g:y.key),i=o(h,i,g),null===c?u=h:c.sibling=h,c=h);return e&&d.forEach(function(e){return t(a,e)}),rZ&&rV(a,g),u}(u,c,d,g);if(H(d)){if("function"!=typeof(h=H(d)))throw Error(l(150));return function(a,i,s,u){if(null==s)throw Error(l(151));for(var c=null,d=null,g=i,h=i=0,y=null,b=s.next();null!==g&&!b.done;h++,b=s.next()){g.index>h?(y=g,g=null):y=g.sibling;var v=p(a,g,b.value,u);if(null===v){null===g&&(g=y);break}e&&g&&null===v.alternate&&t(a,g),i=o(v,i,h),null===d?c=v:d.sibling=v,d=v,g=y}if(b.done)return n(a,g),rZ&&rV(a,h),c;if(null===g){for(;!b.done;h++,b=s.next())null!==(b=f(a,b.value,u))&&(i=o(b,i,h),null===d?c=b:d.sibling=b,d=b);return rZ&&rV(a,h),c}for(g=r(g);!b.done;h++,b=s.next())null!==(b=m(g,a,h,b.value,u))&&(e&&null!==(y=b.alternate)&&g.delete(null===y.key?h:y.key),i=o(b,i,h),null===d?c=b:d.sibling=b,d=b);return e&&g.forEach(function(e){return t(a,e)}),rZ&&rV(a,h),c}(u,c,d=h.call(d),g)}if("function"==typeof d.then)return s(u,c,a$(d),g);if(d.$$typeof===L)return s(u,c,ac(u,d),g);aH(u,d)}return"string"==typeof d&&""!==d||"number"==typeof d||"bigint"==typeof d?(d=""+d,null!==c&&6===c.tag?(n(u,c.sibling),(g=a(c,d)).return=u):(n(u,c),(g=rO(d,u.mode,g)).return=u),i(u=g)):n(u,c)}(s,u,c,d);return aB=null,g}catch(e){if(e===aP||e===aL)throw e;var h=rT(29,e,null,s.mode);return h.lanes=d,h.return=s,h}finally{}}}var aX=aV(!0),aG=aV(!1),aW=!1;function aY(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function aK(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function aQ(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function aZ(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&sI)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=rk(e),rS(e,null,n),t}return rb(e,r,t,n),rk(e)}function aJ(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194048&n))){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eH(e,n)}}function a0(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n)null===o?a=o=t:o=o.next=t}else a=o=t;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var a1=!1;function a2(){if(a1){var e=ax;if(null!==e)throw e}}function a4(e,t,n,r){a1=!1;var a=e.updateQueue;aW=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&(l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s)}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var f=-0x20000001&l.lane,p=f!==l.lane;if(p?(sD&f)===f:(r&f)===f){0!==f&&f===ak&&(a1=!0),null!==c&&(c=c.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var m=e,g=l;switch(f=t,g.tag){case 1:if("function"==typeof(m=g.payload)){d=m.call(n,d,f);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(f="function"==typeof(m=g.payload)?m.call(n,d,f):m))break e;d=E({},d,f);break e;case 2:aW=!0}}null!==(f=l.callback)&&(e.flags|=64,p&&(e.flags|=8192),null===(p=a.callbacks)?a.callbacks=[f]:p.push(f))}else p={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=p,s=d):c=c.next=p,i|=f;if(null===(l=l.next))if(null===(l=a.shared.pending))break;else l=(p=l).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null===o&&(a.shared.lanes=0),sH|=i,e.lanes=i,e.memoizedState=d}}function a3(e,t){if("function"!=typeof e)throw Error(l(191,e));e.call(t)}function a6(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;e<n.length;e++)a3(n[e],t)}var a8=Z(null),a5=Z(0);function a9(e,t){ee(a5,e=s$),ee(a8,t),s$=e|t.baseLanes}function a7(){ee(a5,s$),ee(a8,a8.current)}function oe(){s$=a5.current,J(a8),J(a5)}var ot=Z(null),on=null;function or(e){var t=e.alternate;ee(os,1&os.current),ee(ot,e),null===on&&(null===t||null!==a8.current?on=e:null!==t.memoizedState&&(on=e))}function oa(e){ee(os,os.current),ee(ot,e),null===on&&(on=e)}function oo(e){22===e.tag?(ee(os,os.current),ee(ot,e),null===on&&(on=e)):oi()}function oi(){ee(os,os.current),ee(ot,ot.current)}function ol(e){J(ot),on===e&&(on=null),J(os)}var os=Z(0);function ou(e,t){ee(ot,ot.current),ee(os,t)}function oc(e){J(os),J(ot),on===e&&(on=null)}function od(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||c9(n)||c7(n)))return t}else if(19===t.tag&&"independent"!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var of=0,op=null,om=null,og=null,oh=!1,oy=!1,ob=!1,ov=0,ow=0,oS=null,ok=0;function ox(){throw Error(l(321))}function oE(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!nV(e[n],t[n]))return!1;return!0}function oT(e,t,n,r,a,o){return of=o,op=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,G.H=null===e||null===e.memoizedState?iI:iR,ob=!1,o=n(r,a),ob=!1,oy&&(o=oA(t,n,r,a)),o_(e),o}function o_(e){G.H=iL;var t=null!==om&&null!==om.next;if(of=0,og=om=op=null,oh=!1,ow=0,oS=null,t)throw Error(l(300));null===e||iK||null!==(e=e.dependencies)&&al(e)&&(iK=!0)}function oA(e,t,n,r){op=e;var a=0;do{if(oy&&(oS=null),ow=0,oy=!1,25<=a)throw Error(l(301));if(a+=1,og=om=null,null!=e.updateQueue){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,null!=o.memoCache&&(o.memoCache.index=0)}G.H=ij,o=t(n,r)}while(oy)return o}function oC(){var e=G.H,t=e.useState()[0];return t="function"==typeof t.then?oj(t):t,e=e.useState()[0],(null!==om?om.memoizedState:null)!==e&&(op.flags|=1024),t}function oN(){var e=0!==ov;return ov=0,e}function oP(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function oO(e){if(oh){for(e=e.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}oh=!1}of=0,og=om=op=null,oy=!1,ow=ov=0,oS=null}function oL(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===og?op.memoizedState=og=e:og=og.next=e,og}function oI(){if(null===om){var e=op.alternate;e=null!==e?e.memoizedState:null}else e=om.next;var t=null===og?op.memoizedState:og.next;if(null!==t)og=t,om=e;else{if(null===e){if(null===op.alternate)throw Error(l(467));throw Error(l(310))}e={memoizedState:(om=e).memoizedState,baseState:om.baseState,baseQueue:om.baseQueue,queue:om.queue,next:null},null===og?op.memoizedState=og=e:og=og.next=e}return og}function oR(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function oj(e){var t=ow;return ow+=1,null===oS&&(oS=[]),e=aj(oS,e,t),t=op,null===(null===og?t.memoizedState:og.next)&&(G.H=null===(t=t.alternate)||null===t.memoizedState?iI:iR),e}function oD(e){if(null!==e&&"object"==typeof e){if("function"==typeof e.then)return oj(e);if(e.$$typeof===$)return;if(e.$$typeof===L)return au(e)}throw Error(l(438,String(e)))}function oF(e){var t=null,n=op.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var r=op.alternate;null!==r&&null!==(r=r.updateQueue)&&null!=(r=r.memoCache)&&(t={data:r.data.map(function(e){return e.slice()}),index:0})}if(null==t&&(t={data:[],index:0}),null===n&&(n=oR(),op.updateQueue=n),n.memoCache=t,void 0===(n=t.data[t.index]))for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=B;return t.index++,n}function oM(e,t){return"function"==typeof t?t(e):t}function oz(e){return oB(oI(),om,e)}function oB(e,t,n){var r=e.queue;if(null===r)throw Error(l(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(null!==o){if(null!==a){var i=a.next;a.next=o.next,o.next=i}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,null===a)e.memoizedState=o;else{t=a.next;var s=i=null,u=null,c=t,d=!1;do{var f=-0x20000001&c.lane;if(f!==c.lane?(sD&f)===f:(of&f)===f){var p=c.revertLane;if(0===p)null!==u&&(u=u.next={lane:0,revertLane:0,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),f===ak&&(d=!0);else if((of&p)===p){c=c.next,p===ak&&(d=!0);continue}else f={lane:0,revertLane:c.revertLane,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===u?(s=u=f,i=o):u=u.next=f,op.lanes|=p,sH|=p;f=c.action,ob&&n(o,f),o=c.hasEagerState?c.eagerState:n(o,f)}else p={lane:f,revertLane:c.revertLane,gesture:c.gesture,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===u?(s=u=p,i=o):u=u.next=p,op.lanes|=f,sH|=f;c=c.next}while(null!==c&&c!==t)if(null===u?i=o:u.next=s,!nV(o,e.memoizedState)&&(iK=!0,d&&null!==(n=ax)))throw n;e.memoizedState=o,e.baseState=i,e.baseQueue=u,r.lastRenderedState=o}return null===a&&(r.lanes=0),[e.memoizedState,r.dispatch]}function oU(e){var t=oI(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var i=a=a.next;do o=e(o,i.action),i=i.next;while(i!==a)nV(o,t.memoizedState)||(iK=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function o$(e,t,n){var r=op,a=oI(),o=rZ;if(o){if(void 0===n)throw Error(l(407));n=n()}else n=t();var i=!nV((om||a).memoizedState,n);if(i&&(a.memoizedState=n,iK=!0),a=a.queue,ia(oV.bind(null,r,a,e),[e]),o9((e=a.getSnapshot!==t||i||null!==og&&0!=(1&og.memoizedState.tag))?9:8,{destroy:void 0},oH.bind(null,r,a,n,t),null),e){if(r.flags|=2048,null===sR)throw Error(l(349));o||0!=(127&of)||oq(r,t,n)}return n}function oq(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=op.updateQueue)?(t=oR(),op.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function oH(e,t,n,r){t.value=n,t.getSnapshot=r,oX(t)&&oG(e)}function oV(e,t,n){return n(function(){oX(t)&&oG(e)})}function oX(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!nV(e,n)}catch(e){return!0}}function oG(e){var t=rw(e,2);null!==t&&us(t,e,2)}function oW(e){var t=oL();if("function"==typeof e){var n=e;if(e=n(),ob){eN(!0);try{n()}finally{eN(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:oM,lastRenderedState:e},t}function oY(e,t,n,r){return e.baseState=n,oB(e,om,"function"==typeof r?r:oM)}function oK(e,t,n,r,a){if(iN(e))throw Error(l(485));if(null!==(e=t.action)){var o={payload:a,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};null!==G.T?n(!0):o.isTransition=!1,r(o),null===(n=t.pending)?(o.next=t.pending=o,oQ(t,o)):(o.next=n.next,t.pending=n.next=o)}}function oQ(e,t){var n=t.action,r=t.payload,a=e.state;if(t.isTransition){var o=G.T,i={};i.types=null!==o?o.types:null,G.T=i;try{var l=n(a,r),s=G.S;null!==s&&s(i,l),oZ(e,t,l)}catch(n){o0(e,t,n)}finally{null!==o&&null!==i.types&&(o.types=i.types),G.T=o}}else try{o=n(a,r),oZ(e,t,o)}catch(n){o0(e,t,n)}}function oZ(e,t,n){null!==n&&"object"==typeof n&&"function"==typeof n.then?n.then(function(n){oJ(e,t,n)},function(n){return o0(e,t,n)}):oJ(e,t,n)}function oJ(e,t,n){t.status="fulfilled",t.value=n,o1(t),e.state=n,null!==(t=e.pending)&&((n=t.next)===t?e.pending=null:(n=n.next,t.next=n,oQ(e,n)))}function o0(e,t,n){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do t.status="rejected",t.reason=n,o1(t),t=t.next;while(t!==r)}e.action=null}function o1(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function o2(e,t){return t}function o4(e,t){if(rZ){var n=sR.formState;if(null!==n){e:{var r=op;if(rZ){if(rQ){t:{for(var a=rQ,o=r0;8!==a.nodeType;)if(!o||null===(a=de(a.nextSibling))){a=null;break t}a="F!"===(o=a.data)||"F"===o?a:null}if(a){rQ=de(a.nextSibling),r="F!"===a.data;break e}}r2(r)}r=!1}r&&(t=n[0])}}return(n=oL()).memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o2,lastRenderedState:t},n.queue=r,n=i_.bind(null,op,r),r.dispatch=n,r=oW(!1),o=iC.bind(null,op,!1,r.queue),r=oL(),a={state:t,dispatch:null,action:e,pending:null},r.queue=a,n=oK.bind(null,op,a,o,n),a.dispatch=n,r.memoizedState=e,[t,n,!1]}function o3(e){return o6(oI(),om,e)}function o6(e,t,n){if(t=oB(e,t,o2)[0],e=oz(oM)[0],"object"==typeof t&&null!==t&&"function"==typeof t.then)try{var r=oj(t)}catch(e){if(e===aP)throw aL;throw e}else r=t;var a=(t=oI()).queue,o=a.dispatch;return n!==t.memoizedState&&(op.flags|=2048,o9(9,{destroy:void 0},o8.bind(null,a,n),null)),[r,o,e]}function o8(e,t){e.action=t}function o5(e){var t=oI(),n=om;if(null!==n)return o6(t,n,e);oI(),t=t.memoizedState;var r=(n=oI()).queue.dispatch;return n.memoizedState=e,[t,r,!1]}function o9(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},null===(t=op.updateQueue)&&(t=oR(),op.updateQueue=t),null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function o7(){return oI().memoizedState}function ie(e,t,n,r){var a=oL();op.flags|=e,a.memoizedState=o9(1|t,{destroy:void 0},n,void 0===r?null:r)}function it(e,t,n,r){var a=oI();r=void 0===r?null:r;var o=a.memoizedState.inst;null!==om&&null!==r&&oE(r,om.memoizedState.deps)?a.memoizedState=o9(t,o,n,r):(op.flags|=e,a.memoizedState=o9(1|t,o,n,r))}function ir(e,t){ie(8390656,8,e,t)}function ia(e,t){it(2048,8,e,t)}function io(e){var t=oI().memoizedState,n={ref:t,nextImpl:e};op.flags|=4;var r=op.updateQueue;if(null===r)r=oR(),op.updateQueue=r,r.events=[n];else{var a=r.events;null===a?r.events=[n]:a.push(n)}return function(){if(0!=(2&sI))throw Error(l(440));return t.impl.apply(void 0,arguments)}}function ii(e,t){return it(4,2,e,t)}function il(e,t){return it(4,4,e,t)}function is(e,t){if("function"==typeof t){var n=t(e=e());return function(){"function"==typeof n?n():t(null)}}if(null!=t)return t.current=e=e(),function(){t.current=null}}function iu(e,t,n){n=null!=n?n.concat([e]):null,it(4,4,is.bind(null,t,e),n)}function ic(){}function id(e,t){var n=oI();t=void 0===t?null:t;var r=n.memoizedState;return null!==t&&oE(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function ip(e,t){var n=oI();t=void 0===t?null:t;var r=n.memoizedState;if(null!==t&&oE(t,r[1]))return r[0];if(r=e(),ob){eN(!0);try{e()}finally{eN(!1)}}return n.memoizedState=[r,t],r}function im(e,t,n){return void 0===n||0!=(0x40000000&of)&&0==(261930&sD)?e.memoizedState=t:(e.memoizedState=n,e=ui(),op.lanes|=e,sH|=e,n)}function ig(e,t,n,r){return nV(n,t)?n:null!==a8.current?(nV(e=im(e,n,r),t)||(iK=!0),e):0==(106&of)||0!=(0x40000000&of)&&0==(261930&sD)?(iK=!0,e.memoizedState=n):(e=ui(),op.lanes|=e,sH|=e,t)}function ih(e,t,n,r,a){var o=W.p;W.p=0!==o&&8>o?o:8;var i=G.T,l={};l.types=null!==i?i.types:null,G.T=l,iC(e,!1,t,n);try{var s=a(),u=G.S;if(null!==u&&u(l,s),null!==s&&"object"==typeof s&&"function"==typeof s.then){var c,d,f=(c=[],d={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},s.then(function(){d.status="fulfilled",d.value=r;for(var e=0;e<c.length;e++)(0,c[e])(r)},function(e){for(d.status="rejected",d.reason=e,e=0;e<c.length;e++)(0,c[e])(void 0)}),d);iA(e,t,f,uo(e))}else iA(e,t,r,uo(e))}catch(n){iA(e,t,{then:function(){},status:"rejected",reason:n},uo())}finally{W.p=o,null!==i&&null!==l.types&&(i.types=l.types),G.T=i}}function iy(){}function ib(e,t,n,r){if(5!==e.tag)throw Error(l(476));var a=iv(e).queue;ih(e,a,t,Y,null===n?iy:function(){return iw(e),n(r)})}function iv(e){var t=e.memoizedState;if(null!==t)return t;var n={};return(t={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:oM,lastRenderedState:Y},next:null}).next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:oM,lastRenderedState:n},next:null},e.memoizedState=t,null!==(e=e.alternate)&&(e.memoizedState=t),t}function iw(e){var t=iv(e);null===t.next&&(t=e.alternate.memoizedState),iA(e,t.next.queue,{},uo())}function iS(){return au(dM)}function ik(){return oI().memoizedState}function ix(){return oI().memoizedState}function iE(e){for(var t=e.return;null!==t;){switch(t.tag){case 24:case 3:var n=uo(),r=aZ(t,e=aQ(n),n);null!==r&&(us(r,t,n),aJ(r,t,n)),t={cache:ah()},e.payload=t;return}t=t.return}}function iT(e,t,n){var r=uo();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},iN(e)?iP(t,n):null!==(n=rv(e,t,n,r))&&(us(n,e,r),iO(n,t,r))}function i_(e,t,n){iA(e,t,n,uo())}function iA(e,t,n,r){var a={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(iN(e))iP(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,nV(l,i))return rb(e,t,a,0),null===sR&&ry(),!1}catch(e){}finally{}if(null!==(n=rv(e,t,a,r)))return us(n,e,r),iO(n,t,r),!0}return!1}function iC(e,t,n,r){if(r={lane:2,revertLane:u1(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},iN(e)){if(t)throw Error(l(479))}else null!==(t=rv(e,n,r,2))&&us(t,e,2)}function iN(e){var t=e.alternate;return e===op||null!==t&&t===op}function iP(e,t){oy=oh=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function iO(e,t,n){if(0!=(4194048&n)){var r=t.lanes;r&=e.pendingLanes,t.lanes=n|=r,eH(e,n)}}var iL={readContext:au,use:oD,useCallback:ox,useContext:ox,useEffect:ox,useImperativeHandle:ox,useLayoutEffect:ox,useInsertionEffect:ox,useMemo:ox,useReducer:ox,useRef:ox,useState:ox,useDebugValue:ox,useDeferredValue:ox,useTransition:ox,useSyncExternalStore:ox,useId:ox,useHostTransitionStatus:ox,useFormState:ox,useActionState:ox,useOptimistic:ox,useMemoCache:ox,useCacheRefresh:ox,useEffectEvent:ox},iI={readContext:au,use:oD,useCallback:function(e,t){return oL().memoizedState=[e,void 0===t?null:t],e},useContext:au,useEffect:ir,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,ie(4194308,4,is.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ie(4194308,4,e,t)},useInsertionEffect:function(e,t){ie(4,2,e,t)},useMemo:function(e,t){var n=oL();t=void 0===t?null:t;var r=e();if(ob){eN(!0);try{e()}finally{eN(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=oL();if(void 0!==n){var a=n(t);if(ob){eN(!0);try{n(t)}finally{eN(!1)}}}else a=t;return r.memoizedState=r.baseState=a,r.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},e=e.dispatch=iT.bind(null,op,e),[r.memoizedState,e]},useRef:function(e){return oL().memoizedState={current:e}},useState:function(e){var t=(e=oW(e)).queue,n=i_.bind(null,op,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ic,useDeferredValue:function(e,t){return im(oL(),e,t)},useTransition:function(){var e=oW(!1);return e=ih.bind(null,op,e.queue,!0,!1),oL().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=op,a=oL();if(rZ){if(void 0===n)throw Error(l(407));n=n()}else{if(n=t(),null===sR)throw Error(l(349));0!=(127&sD)||oq(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ir(oV.bind(null,r,o,e),[e]),r.flags|=2048,o9(9,{destroy:void 0},oH.bind(null,r,o,n,t),null),n},useId:function(){var e=oL(),t=sR.identifierPrefix;if(rZ){var n=rH,r=rq;t="_"+t+"R_"+(n=(r&~(1<<32-eP(r)-1)).toString(32)+n),0<(n=ov++)&&(t+="H"+n.toString(32)),t+="_"}else t="_"+t+"r_"+(n=ok++).toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:iS,useFormState:o4,useActionState:o4,useOptimistic:function(e){var t=oL();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=iC.bind(null,op,!0,n),n.dispatch=t,[e,t]},useMemoCache:oF,useCacheRefresh:function(){return oL().memoizedState=iE.bind(null,op)},useEffectEvent:function(e){var t=oL(),n={impl:e};return t.memoizedState=n,function(){if(0!=(2&sI))throw Error(l(440));return n.impl.apply(void 0,arguments)}}},iR={readContext:au,use:oD,useCallback:id,useContext:au,useEffect:ia,useImperativeHandle:iu,useInsertionEffect:ii,useLayoutEffect:il,useMemo:ip,useReducer:oz,useRef:o7,useState:function(){return oz(oM)},useDebugValue:ic,useDeferredValue:function(e,t){return ig(oI(),om.memoizedState,e,t)},useTransition:function(){var e=oz(oM)[0],t=oI().memoizedState;return["boolean"==typeof e?e:oj(e),t]},useSyncExternalStore:o$,useId:ik,useHostTransitionStatus:iS,useFormState:o3,useActionState:o3,useOptimistic:function(e,t){return oY(oI(),om,e,t)},useMemoCache:oF,useCacheRefresh:ix,useEffectEvent:io},ij={readContext:au,use:oD,useCallback:id,useContext:au,useEffect:ia,useImperativeHandle:iu,useInsertionEffect:ii,useLayoutEffect:il,useMemo:ip,useReducer:oU,useRef:o7,useState:function(){return oU(oM)},useDebugValue:ic,useDeferredValue:function(e,t){var n=oI();return null===om?im(n,e,t):ig(n,om.memoizedState,e,t)},useTransition:function(){var e=oU(oM)[0],t=oI().memoizedState;return["boolean"==typeof e?e:oj(e),t]},useSyncExternalStore:o$,useId:ik,useHostTransitionStatus:iS,useFormState:o5,useActionState:o5,useOptimistic:function(e,t){var n=oI();return null!==om?oY(n,om,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:oF,useCacheRefresh:ix,useEffectEvent:io};function iD(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:E({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var iF={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=uo(),a=aQ(r);a.payload=t,null!=n&&(a.callback=n),null!==(t=aZ(e,a,r))&&(us(t,e,r),aJ(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=uo(),a=aQ(r);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=aZ(e,a,r))&&(us(t,e,r),aJ(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=uo(),r=aQ(n);r.tag=2,null!=t&&(r.callback=t),null!==(t=aZ(e,r,n))&&(us(t,e,n),aJ(t,e,n))}};function iM(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||!nX(n,r)||!nX(a,o)}function iz(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&iF.enqueueReplaceState(t,t.state,null)}function iB(e,t){var n=t;if("ref"in t)for(var r in n={},t)"ref"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var a in n===t&&(n=E({},n)),e)void 0===n[a]&&(n[a]=e[a]);return n}function iU(e){rp(e)}function i$(e){console.error(e)}function iq(e){rp(e)}function iH(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function iV(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function iX(e,t,n){return(n=aQ(n)).tag=3,n.payload={element:null},n.callback=function(){iH(e,t)},n}function iG(e){return(e=aQ(e)).tag=3,e}function iW(e,t,n,r){var a=n.type.getDerivedStateFromError;if("function"==typeof a){var o=r.value;e.payload=function(){return a(o)},e.callback=function(){iV(t,n,r)}}var i=n.stateNode;null!==i&&"function"==typeof i.componentDidCatch&&(e.callback=function(){iV(t,n,r),"function"!=typeof a&&(null===s2?s2=new Set([this]):s2.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var iY=Error(l(461)),iK=!1;function iQ(e,t,n,r){t.child=null===e?aG(t,null,n,r):aX(t,e.child,n,r)}function iZ(e,t,n,r,a){n=n.render;var o=t.ref;if("ref"in r){var i={};for(var l in r)"ref"!==l&&(i[l]=r[l])}else i=r;return(as(t),r=oT(e,t,n,i,o,a),l=oN(),null===e||iK)?(rZ&&l&&rG(t),t.flags|=1,iQ(e,t,r,a),t.child):(oP(e,t,a),lm(e,t,a))}function iJ(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||r_(o)||void 0!==o.defaultProps||null!==n.compare?((e=rN(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,i0(e,t,o,r,a))}if(o=e.child,!lg(e,a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:nX)(i,r)&&e.ref===t.ref)return lm(e,t,a)}return t.flags|=1,(e=rA(o,r)).ref=t.ref,e.return=t,t.child=e}function i0(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(nX(o,r)&&e.ref===t.ref)if(iK=!1,t.pendingProps=r=o,!lg(e,a))return t.lanes=e.lanes,lm(e,t,a);else 0!=(131072&e.flags)&&(iK=!0)}return i5(e,t,n,r,a)}function i1(e,t,n,r){var a=r.children,o=null!==e?e.memoizedState:null;if(null===e&&null===t.stateNode&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),"hidden"===r.mode){if(0!=(128&t.flags)){if(o=null!==o?o.baseLanes|n:n,null!==e){for(a=0,r=t.child=e.child;null!==r;)a=a|r.lanes|r.childLanes,r=r.sibling;r=a&~o}else r=0,t.child=null;return i4(e,t,o,n,r)}if(0==(0x20000000&n))return r=t.lanes=0x20000000,i4(e,t,null!==o?o.baseLanes|n:n,n,r);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&aC(t,null!==o?o.cachePool:null),null!==o?a9(t,o):a7(),oo(t)}else null!==o?(aC(t,o.cachePool),a9(t,o),oi(),t.memoizedState=null):(null!==e&&aC(t,null),a7(),oi());return iQ(e,t,a,n),t.child}function i2(e,t){return null!==e&&22===e.tag||null!==t.stateNode||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function i4(e,t,n,r,a){var o=aA();return t.memoizedState={baseLanes:n,cachePool:o=null===o?null:{parent:ag._currentValue,pool:o}},null!==e&&aC(t,null),a7(),oo(t),null!==e&&ai(e,t,r,!0),t.childLanes=a,null}function i3(e,t){return(t=li({mode:t.mode,children:t.children},e.mode)).ref=e.ref,e.child=t,t.return=e,t}function i6(e,t,n){return aX(t,e.child,null,n),e=i3(t,t.pendingProps),e.flags|=2,ol(t),t.memoizedState=null,e}function i8(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if("function"!=typeof n&&"object"!=typeof n)throw Error(l(284));(null===e||e.ref!==n)&&(t.flags|=4194816)}}function i5(e,t,n,r,a){return(as(t),n=oT(e,t,n,r,void 0,a),r=oN(),null===e||iK)?(rZ&&r&&rG(t),t.flags|=1,iQ(e,t,n,a),t.child):(oP(e,t,a),lm(e,t,a))}function i9(e,t,n,r,a,o){return(as(t),t.updateQueue=null,n=oA(t,r,n,a),o_(e),r=oN(),null===e||iK)?(rZ&&r&&rG(t),t.flags|=1,iQ(e,t,n,o),t.child):(oP(e,t,o),lm(e,t,o))}function i7(e,t,n,r,a){if(as(t),null===t.stateNode){var o=rx,i=n.contextType;"object"==typeof i&&null!==i&&(o=au(i)),t.memoizedState=null!==(o=new n(r,o)).state&&void 0!==o.state?o.state:null,o.updater=iF,t.stateNode=o,o._reactInternals=t,(o=t.stateNode).props=r,o.state=t.memoizedState,o.refs={},aY(t),i=n.contextType,o.context="object"==typeof i&&null!==i?au(i):rx,o.state=t.memoizedState,"function"==typeof(i=n.getDerivedStateFromProps)&&(iD(t,n,i,r),o.state=t.memoizedState),"function"==typeof n.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(i=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),i!==o.state&&iF.enqueueReplaceState(o,o.state,null),a4(t,r,o,a),a2(),o.state=t.memoizedState),"function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){o=t.stateNode;var l=t.memoizedProps,s=iB(n,l);o.props=s;var u=o.context,c=n.contextType;i=rx,"object"==typeof c&&null!==c&&(i=au(c));var d=n.getDerivedStateFromProps;c="function"==typeof d||"function"==typeof o.getSnapshotBeforeUpdate,l=t.pendingProps!==l,c||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(l||u!==i)&&iz(t,o,r,i),aW=!1;var f=t.memoizedState;o.state=f,a4(t,r,o,a),a2(),u=t.memoizedState,l||f!==u||aW?("function"==typeof d&&(iD(t,n,d,r),u=t.memoizedState),(s=aW||iM(t,n,s,r,f,u,i))?(c||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.flags|=4194308)):("function"==typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),o.props=r,o.state=u,o.context=i,r=s):("function"==typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,aK(e,t),c=iB(n,i=t.memoizedProps),o.props=c,d=t.pendingProps,f=o.context,u=n.contextType,s=rx,"object"==typeof u&&null!==u&&(s=au(u)),(u="function"==typeof(l=n.getDerivedStateFromProps)||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(i!==d||f!==s)&&iz(t,o,r,s),aW=!1,f=t.memoizedState,o.state=f,a4(t,r,o,a),a2();var p=t.memoizedState;i!==d||f!==p||aW||null!==e&&null!==e.dependencies&&al(e.dependencies)?("function"==typeof l&&(iD(t,n,l,r),p=t.memoizedState),(c=aW||iM(t,n,c,r,f,p,s)||null!==e&&null!==e.dependencies&&al(e.dependencies))?(u||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,p,s),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,p,s)),"function"==typeof o.componentDidUpdate&&(t.flags|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),o.props=r,o.state=p,o.context=s,r=c):("function"!=typeof o.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof o.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return o=r,i8(e,t),r=0!=(128&t.flags),o||r?(o=t.stateNode,n=r&&"function"!=typeof n.getDerivedStateFromError?null:o.render(),t.flags|=1,null!==e&&r?(t.child=aX(t,e.child,null,a),t.child=aX(t,null,n,a)):iQ(e,t,n,a),t.memoizedState=o.state,e=t.child):e=lm(e,t,a),e}function le(e,t,n,r){return r8(),t.flags|=256,iQ(e,t,n,r),t.child}var lt={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ln(e){return{baseLanes:e,cachePool:aN()}}function lr(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=sG),e}function la(e,t,n){var r,a=t.pendingProps,o=!1,i=0!=(128&t.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!=(2&os.current)),r&&(o=!0,t.flags&=-129),r=0!=(32&t.flags),t.flags&=-33,null===e){if(rZ){if(o?or(t):oi(),(e=rQ)?null!==(e=null!==(e=c5(e,r0))&&"&"!==e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==r$?{id:rq,overflow:rH}:null,retryLane:0x20000000,hydrationErrors:null},(n=rL(e)).return=t,t.child=n,rK=t,rQ=null):e=null,null===e)throw r2(t);return c7(e)?t.lanes=32:t.lanes=0x20000000,null}return(i=a.children,a=a.fallback,o)?(oi(),i=li({mode:"hidden",children:i},o=t.mode),a=rP(a,o,n,null),i.return=t,a.return=t,i.sibling=a,t.child=i,(a=t.child).memoizedState=ln(n),a.childLanes=lr(e,r,n),t.memoizedState=lt,i2(null,a)):(or(t),lo(t,i))}var s=e.memoizedState;if(null!==s){var u=s.dehydrated;if(null!==u){var c=e,d=t,f=i,p=r,m=a,g=u,h=s,y=n;if(f)return 256&d.flags?(or(d),d.flags&=-257,ll(c,d,y)):null!==d.memoizedState?(oi(),d.child=c.child,d.flags|=128,null):(oi(),g=m.fallback,h=d.mode,m=li({mode:"visible",children:m.children},h),g=rP(g,h,y,null),g.flags|=2,m.return=d,g.return=d,m.sibling=g,d.child=m,aX(d,c.child,null,y),(m=d.child).memoizedState=ln(y),m.childLanes=lr(c,p,y),d.memoizedState=lt,i2(null,m));if(or(d),c7(g)){if(p=g.nextSibling&&g.nextSibling.dataset)var b=p.dgst;return""!==(p=b)&&((m=Error(l(419))).stack="",m.digest=p,r9({value:m,source:null,stack:null})),ll(c,d,y)}if(iK||ai(c,d,y,!1),p=0!=(y&c.childLanes),iK||p){if(null!==a8.current)return ll(c,d,y);if(null!==(p=sR)&&0!==(m=eV(p,y))&&m!==h.retryLane)throw h.retryLane=m,rw(c,m),us(p,c,m),iY;return c9(g)||uv(),ll(c,d,y)}return c9(g)?(d.flags|=192,d.child=c.child,null):(c=h.treeContext,rQ=de(g.nextSibling),rK=d,rZ=!0,rJ=null,r0=!1,null!==c&&rY(d,c),d=lo(d,m.children),d.flags|=0x8001000,d)}}return o?(oi(),o=a.fallback,i=t.mode,u=(s=e.child).sibling,(a=rA(s,{mode:"hidden",children:a.children})).subtreeFlags=0x47f00000&s.subtreeFlags,null!==u?o=rA(u,o):(o=rP(o,i,n,null),o.flags|=2),o.return=t,a.return=t,a.sibling=o,t.child=a,i2(null,a),a=t.child,null===(o=e.child.memoizedState)?o=ln(n):(null!==(i=o.cachePool)?(s=ag._currentValue,i=i.parent!==s?{parent:s,pool:s}:i):i=aN(),o={baseLanes:o.baseLanes|n,cachePool:i}),a.memoizedState=o,a.childLanes=lr(e,r,n),t.memoizedState=lt,i2(e.child,a)):(or(t),e=(n=e.child).sibling,(n=rA(n,{mode:"visible",children:a.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function lo(e,t){return(t=li({mode:"visible",children:t},e.mode)).return=e,e.child=t}function li(e,t){return(e=rT(22,e,null,t)).lanes=0,e}function ll(e,t,n){return aX(t,e.child,null,n),e=lo(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function ls(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),aa(e.return,t,n)}function lu(e){for(var t=null;null!==e;){var n=e.alternate;null!==n&&null===od(n)&&(t=e),e=e.sibling}return t}function lc(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,treeForkCount:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.treeForkCount=o)}function ld(e){var t=e.child;for(e.child=null;null!==t;){var n=t.sibling;t.sibling=e.child,e.child=t,t=n}}function lf(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;r=r.children;var i=os.current;if(128&t.flags)return ou(t,i),null;var l=0!=(2&i);if(l?(i=1&i|2,t.flags|=128):i&=1,ou(t,i),"backwards"===a&&null!==e?(ld(e),iQ(e,t,r,n),ld(e)):iQ(e,t,r,n),r=rZ?rz:0,!l&&null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ls(e,n,t);else if(19===e.tag)ls(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(a){case"backwards":null===(n=lu(t.child))?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null,ld(t)),lc(t,!0,a,null,o,r);break;case"unstable_legacy-backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===od(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}lc(t,!0,n,null,o,r);break;case"together":lc(t,!1,null,null,void 0,r);break;case"independent":t.memoizedState=null;break;default:null===(n=lu(t.child))?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),lc(t,!1,a,n,o,r)}return t.child}function lp(e,t,n){var r=t.pendingProps;return an(t,t.type,r.value),iQ(e,t,r.children,n),t.child}function lm(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),sH|=t.lanes,0==(n&t.childLanes)){if(null===e)return null;else if(ai(e,t,n,!1),0==(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(l(153));if(null!==t.child){for(n=rA(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=rA(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function lg(e,t){return 0!=(e.lanes&t)||!!(null!==(e=e.dependencies)&&al(e))}function lh(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)iK=!0;else{if(!lg(e,n)&&0==(128&t.flags))return iK=!1,function(e,t,n){switch(t.tag){case 3:eo(t,t.stateNode.containerInfo),an(t,ag,e.memoizedState.cache),r8();break;case 27:case 5:el(t);break;case 4:eo(t,t.stateNode.containerInfo);break;case 10:an(t,t.type,t.memoizedProps.value);break;case 31:if(null!==t.memoizedState)return t.flags|=128,oa(t),null;break;case 13:var r=t.memoizedState;if(null!==r){if(null!==r.dehydrated)return or(t),t.flags|=128,null;r=ai(e,t,n,!1);var a=t.child.childLanes;if(r||0!=(n&a))return la(e,t,n);return or(t),null!==(e=lm(e,t,n))?e.sibling:null}or(t);break;case 19:if(128&t.flags)return lf(e,t,n);if(a=0!=(128&e.flags),(r=0!=(n&t.childLanes))||(ai(e,t,n,!1),r=0!=(n&t.childLanes)),a){if(r)return lf(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ou(t,os.current),!r)return null;break;case 22:return t.lanes=0,i1(e,t,n,t.pendingProps);case 24:an(t,ag,e.memoizedState.cache)}return lm(e,t,n)}(e,t,n);iK=0!=(131072&e.flags)}else iK=!1,rZ&&0!=(1048576&t.flags)&&rX(t,rz,t.index);switch(t.lanes=0,t.tag){case 16:e:{var r=t.pendingProps;if(e=aD(t.elementType),t.type=e,"function"==typeof e)r_(e)?(r=iB(e,r),t.tag=1,t=i7(null,t,e,r,n)):(t.tag=0,t=i5(null,t,e,r,n));else{if(null!=e){var a=e.$$typeof;if(a===I){t.tag=11,t=iZ(null,t,e,r,n);break e}if(a===D){t.tag=14,t=iJ(null,t,e,r,n);break e}if(a===L){t.tag=10,t.type=e,t=lp(null,t,n);break e}}throw Error(l(306,t=function e(t){if(null==t)return null;if("function"==typeof t)return t.$$typeof===V?null:t.displayName||t.name||null;if("string"==typeof t)return t;switch(t){case C:return"Fragment";case P:return"Profiler";case N:return"StrictMode";case R:return"Suspense";case j:return"SuspenseList";case M:return"Activity";case U:return"ViewTransition"}if("object"==typeof t)switch(t.$$typeof){case A:return"Portal";case L:return t.displayName||"Context";case O:return(t._context.displayName||"Context")+".Consumer";case I:var n=t.render;return(t=t.displayName)||(t=""!==(t=n.displayName||n.name||"")?"ForwardRef("+t+")":"ForwardRef"),t;case D:return null!==(n=t.displayName||null)?n:e(t.type)||"Memo";case F:n=t._payload,t=t._init;try{return e(t(n))}catch(e){}}return null}(e)||e,""))}}return t;case 0:return i5(e,t,t.type,t.pendingProps,n);case 1:return a=iB(r=t.type,t.pendingProps),i7(e,t,r,a,n);case 3:e:{if(eo(t,t.stateNode.containerInfo),null===e)throw Error(l(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,aK(e,t),a4(t,r,null,n);var i=t.memoizedState;if(an(t,ag,r=i.cache),r!==o.cache&&ao(t,[ag],n,!0),a2(),r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=le(e,t,r,n);break e}else if(r!==a){r9(a=rj(Error(l(424)),t)),t=le(e,t,r,n);break e}else for(rQ=de((e=9===(e=t.stateNode.containerInfo).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e).firstChild),rK=t,rZ=!0,rJ=null,r0=!0,n=aG(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|0x8001000,n=n.sibling;else{if(r8(),r===a){t=lm(e,t,n);break e}iQ(e,t,r,n)}t=t.child}return t;case 26:return i8(e,t),null===e?(n=dm(t.type,null,t.pendingProps,null))?t.memoizedState=n:rZ||(t.stateNode=ck(t.type,t.pendingProps,er.current,t)):t.memoizedState=dm(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return el(t),null===e&&rZ&&(r=t.stateNode=da(t.type,t.pendingProps,er.current),rK=t,r0=!0,a=rQ,cO(t.type)?(dt=a,rQ=de(r.firstChild)):rQ=a),iQ(e,t,t.pendingProps.children,n),i8(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&rZ&&((a=r=rQ)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[e3])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(a=e.getAttribute("rel"))&&e.hasAttribute("data-precedence")||a!==n.rel||e.getAttribute("href")!==(null==n.href||""===n.href?null:n.href)||e.getAttribute("crossorigin")!==(null==n.crossOrigin?null:n.crossOrigin)||e.getAttribute("title")!==(null==n.title?null:n.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((a=e.getAttribute("src"))!==(null==n.src?null:n.src)||e.getAttribute("type")!==(null==n.type?null:n.type)||e.getAttribute("crossorigin")!==(null==n.crossOrigin?null:n.crossOrigin))&&a&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==t||"hidden"!==e.type)return e;var a=null==n.name?null:""+n.name;if("hidden"===n.type&&e.getAttribute("name")===a)return e}if(null===(e=de(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,r0))?(t.stateNode=r,rK=t,rQ=de(r.firstChild),r0=!1,a=!0):a=!1),a||r2(t)),el(t),a=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,r=o.children,cx(a,o)?r=null:null!==i&&cx(a,i)&&(t.flags|=32),null!==t.memoizedState&&(dM._currentValue=a=oT(e,t,oC,null,null,n)),i8(e,t),iQ(e,t,r,n),t.child;case 6:return null===e&&rZ&&((e=n=rQ)&&(null!==(n=function(e,t,n){if(""===t)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!n||null===(e=de(e.nextSibling)))return null;return e}(n,t.pendingProps,r0))?(t.stateNode=n,rK=t,rQ=null,e=!0):e=!1),e||r2(t)),null;case 13:return la(e,t,n);case 4:return eo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=aX(t,null,r,n):iQ(e,t,r,n),t.child;case 11:return iZ(e,t,t.type,t.pendingProps,n);case 7:return r=t.pendingProps,i8(e,t),iQ(e,t,r,n),t.child;case 8:case 12:return iQ(e,t,t.pendingProps.children,n),t.child;case 10:return lp(e,t,n);case 9:return a=t.type._context,r=t.pendingProps.children,as(t),r=r(a=au(a)),t.flags|=1,iQ(e,t,r,n),t.child;case 14:return iJ(e,t,t.type,t.pendingProps,n);case 15:return i0(e,t,t.type,t.pendingProps,n);case 19:return lf(e,t,n);case 31:var s=e,u=t,c=n,d=u.pendingProps,f=0!=(128&u.flags);if(u.flags&=-129,null===s){if(rZ){if("hidden"===d.mode)return s=i3(u,d),u.lanes=0x20000000,s.memoizedState={baseLanes:0,cachePool:null},i2(null,s);if(oa(u),(s=rQ)?null!==(s=null!==(s=c5(s,r0))&&"&"===s.data?s:null)&&(u.memoizedState={dehydrated:s,treeContext:null!==r$?{id:rq,overflow:rH}:null,retryLane:0x20000000,hydrationErrors:null},(c=rL(s)).return=u,u.child=c,rK=u,rQ=null):s=null,null===s)throw r2(u);return u.lanes=0x20000000,null}return i3(u,d)}var p=s.memoizedState;if(null!==p){var m=p.dehydrated;if(oa(u),f)if(256&u.flags)u.flags&=-257,u=i6(s,u,c);else if(null!==u.memoizedState)u.child=s.child,u.flags|=128,u=null;else throw Error(l(558));else if(iK||ai(s,u,c,!1),f=0!=(c&s.childLanes),iK||f){if(null===a8.current){if(null!==(d=sR)&&0!==(m=eV(d,c))&&m!==p.retryLane)throw p.retryLane=m,rw(s,m),us(d,s,m),iY;uv()}u=i6(s,u,c)}else s=p.treeContext,rQ=de(m.nextSibling),rK=u,rZ=!0,rJ=null,r0=!1,null!==s&&rY(u,s),u=i3(u,d),u.flags|=0x8001000;return u}return(s=rA(s.child,{mode:d.mode,children:d.children})).ref=u.ref,u.child=s,s.return=u,s;case 22:return i1(e,t,n,t.pendingProps);case 24:return as(t),r=au(ag),null===e?(null===(a=aA())&&(a=sR,o=ah(),a.pooledCache=o,o.refCount++,null!==o&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},aY(t),an(t,ag,a)):(0!=(e.lanes&n)&&(aK(e,t),a4(t,null,null,n),a2()),a=e.memoizedState,o=t.memoizedState,a.parent!==r?(a={parent:r,cache:r},t.memoizedState=a,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=a),an(t,ag,r)):(an(t,ag,r=o.cache),r!==a.cache&&ao(t,[ag],n,!0))),iQ(e,t,t.pendingProps.children,n),t.child;case 30:return null===t.stateNode&&(t.stateNode={autoName:null,paired:null,clones:null,ref:null}),null!=(r=t.pendingProps).name&&"auto"!==r.name?t.flags|=null===e?0x1202000:0x1200000:rZ&&rG(t),null!==e&&e.memoizedProps.name!==r.name?t.flags|=4194816:i8(e,t),iQ(e,t,r.children,n),t.child;case 29:throw t.pendingProps}throw Error(l(156,t.tag))}function ly(e){e.flags|=4}function lb(e,t,n,r,a){var o;if((o=0!=(32&e.mode))&&(o=null===n?dA(t,r):dA(t,r)&&(r.src!==n.src||r.srcSet!==n.srcSet)),o){if(e.flags|=0x1000000,(0x13ffff40&a)===a)if(e.stateNode.complete)e.flags|=8192;else if(uh())e.flags|=8192;else throw aF=aI,aO}else e.flags&=-0x1000001}function lv(e,t){if("stylesheet"!==t.type||0!=(4&t.state.loading))e.flags&=-0x1000001;else if(e.flags|=0x1000000,!dC(t))if(uh())e.flags|=8192;else throw aF=aI,aO}function lw(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?eB():0x20000000,e.lanes|=t,sW|=t)}function lS(e,t){if(!rZ)switch(e.tailMode){case"visible":break;case"collapsed":for(var n=e.tail,r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null;break;default:for(n=null,t=e.tail;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null}}function lk(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=0x47f00000&a.subtreeFlags,r|=0x47f00000&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function lx(e,t){switch(rW(t),t.tag){case 3:ar(ag),ei();break;case 26:case 27:case 5:es(t);break;case 4:ei();break;case 31:null!==t.memoizedState&&ol(t);break;case 13:ol(t);break;case 19:oc(t);break;case 10:ar(t.type);break;case 22:case 23:ol(t),oe(),null!==e&&J(a_);break;case 24:ar(ag)}}function lE(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var a=r.next;n=a;do{if((n.tag&e)===e){r=void 0;var o=n.create;n.inst.destroy=r=o()}n=n.next}while(n!==a)}}catch(e){uD(t,t.return,e)}}function lT(e,t,n){try{var r=t.updateQueue,a=null!==r?r.lastEffect:null;if(null!==a){var o=a.next;r=o;do{if((r.tag&e)===e){var i=r.inst,l=i.destroy;if(void 0!==l){i.destroy=void 0,a=t;try{l()}catch(e){uD(a,n,e)}}}r=r.next}while(r!==o)}}catch(e){uD(t,t.return,e)}}function l_(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{a6(t,n)}catch(t){uD(e,e.return,t)}}}function lA(e,t,n){n.props=iB(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){uD(e,t,n)}}function lC(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var a=e.stateNode,o=rc(e.memoizedProps,a);(null===a.ref||a.ref.name!==o)&&(a.ref=cU(o)),r=a.ref;break;case 7:if(null===e.stateNode){var i=new c$(e);p(e.child,!1,c4,i,void 0,void 0),e.stateNode=i}r=e.stateNode;break;default:r=e.stateNode}"function"==typeof n?e.refCleanup=n(r):n.current=r}}catch(n){uD(e,t,n)}}function lN(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"==typeof r)try{r()}catch(n){uD(e,t,n)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof n)try{n(null)}catch(n){uD(e,t,n)}else n.current=null}function lP(e,t){if((5===e.tag||27===e.tag||6===e.tag)&&null===e.alternate&&null!==t)for(var n=0;n<t.length;n++)c6(e.stateNode,t[n])}function lO(e){for(var t=e.return;null!==t&&(lR(t)&&c6(e.stateNode,t.stateNode),!lI(t));)t=t.return}function lL(e){for(var t=e.return;null!==t&&(lR(t)&&function(e,t){var n=t._eventListeners;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];e.removeEventListener(a.type,a.attachedListener,cV(a.optionsOrUseCapture))}3!==e.nodeType&&(null!==(n=t._observers)&&n.forEach(function(n){var r;"string"==typeof n.rootMargin?(cJ.push({fragmentInstance:t,observer:n,instance:e}),c0||(c0=!0,r=function(){c0=!1;var e=cJ;cJ=[];for(var t=0;t<e.length;t++){var n=e[t];n.observer.unobserve(n.instance)}},cC(function(){cC(function(e){return r(e)})}))):n.unobserve(e)}),null!=e.reactFragments&&e.reactFragments.delete(t))}(e.stateNode,t.stateNode),!lI(t));)t=t.return}function lI(e){return 5===e.tag||3===e.tag||27===e.tag}function lR(e){return e&&7===e.tag&&null!==e.stateNode}function lj(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){uD(e,e.return,t)}}function lD(e,t,n){try{var r=e.stateNode;(function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,o=null,i=null,s=null,u=null,c=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&null!=f)switch(m){case"checked":case"value":break;case"defaultValue":u=f;default:r.hasOwnProperty(m)||cf(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=m||null!=f))switch(p){case"type":m!==f&&(tc=!0),o=m;break;case"name":m!==f&&(tc=!0),a=m;break;case"checked":m!==f&&(tc=!0),c=m;break;case"defaultChecked":m!==f&&(tc=!0),d=m;break;case"value":m!==f&&(tc=!0),i=m;break;case"defaultValue":m!==f&&(tc=!0),s=m;break;case"children":case"dangerouslySetInnerHTML":if(null!=m)throw Error(l(137,t));break;default:m!==f&&cf(e,t,p,m,r,f)}}tS(e,i,s,u,c,d,o,a);return;case"select":for(o in m=i=s=p=null,n)if(u=n[o],n.hasOwnProperty(o)&&null!=u)switch(o){case"value":break;case"multiple":m=u;default:r.hasOwnProperty(o)||cf(e,t,o,null,r,u)}for(a in r)if(o=r[a],u=n[a],r.hasOwnProperty(a)&&(null!=o||null!=u))switch(a){case"value":o!==u&&(tc=!0),p=o;break;case"defaultValue":o!==u&&(tc=!0),s=o;break;case"multiple":o!==u&&(tc=!0),i=o;default:o!==u&&cf(e,t,a,o,r,u)}t=s,n=i,r=m,null!=p?tE(e,!!n,p,!1):!!r!=!!n&&(null!=t?tE(e,!!n,t,!0):tE(e,!!n,n?[]:"",!1));return;case"textarea":for(s in m=p=null,n)if(a=n[s],n.hasOwnProperty(s)&&null!=a&&!r.hasOwnProperty(s))switch(s){case"value":case"children":break;default:cf(e,t,s,null,r,a)}for(i in r)if(a=r[i],o=n[i],r.hasOwnProperty(i)&&(null!=a||null!=o))switch(i){case"value":a!==o&&(tc=!0),p=a;break;case"defaultValue":a!==o&&(tc=!0),m=a;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=a)throw Error(l(91));break;default:a!==o&&cf(e,t,i,a,r,o)}tT(e,p,m);return;case"option":for(var g in n)p=n[g],n.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&("selected"===g?e.selected=!1:cf(e,t,g,null,r,p));for(u in r)p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(null!=p||null!=m)&&("selected"===u?(p!==m&&(tc=!0),e.selected=p&&"function"!=typeof p&&"symbol"!=typeof p):cf(e,t,u,p,r,m));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var h in n)p=n[h],n.hasOwnProperty(h)&&null!=p&&!r.hasOwnProperty(h)&&cf(e,t,h,null,r,p);for(c in r)if(p=r[c],m=n[c],r.hasOwnProperty(c)&&p!==m&&(null!=p||null!=m))switch(c){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(l(137,t));break;default:cf(e,t,c,p,r,m)}return;default:if(tO(t)){for(var y in n)p=n[y],n.hasOwnProperty(y)&&void 0!==p&&!r.hasOwnProperty(y)&&cp(e,t,y,void 0,r,p);for(d in r)p=r[d],m=n[d],r.hasOwnProperty(d)&&p!==m&&(void 0!==p||void 0!==m)&&cp(e,t,d,p,r,m);return}}for(var b in n)p=n[b],n.hasOwnProperty(b)&&null!=p&&!r.hasOwnProperty(b)&&cf(e,t,b,null,r,p);for(f in r)p=r[f],m=n[f],r.hasOwnProperty(f)&&p!==m&&(null!=p||null!=m)&&cf(e,t,f,p,r,m)})(r,e.type,n,t),r[eZ]=t}catch(t){uD(e,e.return,t)}}function lF(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&cO(e.type)||4===e.tag}function lM(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||lF(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&cO(e.type)||2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function lz(e,t,n,r){var a=e.tag;if(5===a||6===a)a=e.stateNode,t?n.insertBefore(a,t):n.appendChild(a),lP(e,r),tc=!0;else if(4!==a&&(27===a&&(lP(e,r),r=null,cO(e.type)&&(n=e.stateNode)),null!==(e=e.child)))for(lz(e,t,n,r),e=e.sibling;null!==e;)lz(e,t,n,r),e=e.sibling}function lB(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);cm(t,r,n),t[eQ]=e,t[eZ]=n}catch(t){uD(e,e.return,t)}}var lU=!1,l$=null;function lq(e){(30===e.tag||0!=(0x2000000&e.subtreeFlags))&&(lU=!0)}var lH=null;function lV(){var e=lH;return lH=null,e}var lX=0;function lG(e,t,n,r,a){return lX=0,function e(t,n,r,a,o){for(var i=!1;null!==t;){if(5===t.tag){var l=t.stateNode;if(null!==a){var s=cF(l);a.push(s),s.view&&(i=!0)}else i||cF(l).view&&(i=!0);lU=!0,cR(l,0===lX?n:n+"_"+lX,r),lX++}else(22!==t.tag||null===t.memoizedState)&&(30===t.tag&&o||e(t.child,n,r,a,o)&&(i=!0));t=t.sibling}return i}(e.child,t,n,r,a)}function lW(e,t){for(;null!==e;)5===e.tag?cj(e.stateNode,e.memoizedProps):(22!==e.tag||null===e.memoizedState)&&(30===e.tag&&t||lW(e.child,t)),e=e.sibling}function lY(e){if(0!=(0x1200000&e.subtreeFlags))for(e=e.child;null!==e;){if((22!==e.tag||null===e.memoizedState)&&(lY(e),30===e.tag&&0!=(0x1200000&e.flags)&&e.stateNode.paired)){var t=e.memoizedProps;if(null==t.name||"auto"===t.name)throw Error(l(544));var n=t.name;"none"!==(t=rf(t.default,t.share))&&(lG(e,n,t,null,!1)||lW(e.child,!1))}e=e.sibling}}function lK(e,t){if(30===e.tag){var n=e.stateNode,r=e.memoizedProps,a=rc(r,n),o=rf(r.default,n.paired?r.share:r.enter);"none"!==o?lG(e,a,o,null,!1)?(lY(e),n.paired||t||ul(e,r.onEnter)):lW(e.child,!1):lY(e)}else if(0!=(0x2000000&e.subtreeFlags))for(e=e.child;null!==e;)lK(e,t),e=e.sibling;else lY(e)}function lQ(e){if(null!==l$&&0!==l$.size){var t=l$;if(0!=(0x1200000&e.subtreeFlags))for(e=e.child;null!==e;){if(22!==e.tag||null===e.memoizedState){if(30===e.tag&&0!=(0x1200000&e.flags)){var n=e.memoizedProps,r=n.name;if(null!=r&&"auto"!==r){var a=t.get(r);if(void 0!==a){var o=rf(n.default,n.share);if("none"!==o&&(lG(e,r,o,null,!1)?(a.paired=o=e.stateNode,o.paired=a,ul(e,n.onShare)):lW(e.child,!1)),t.delete(r),0===t.size)break}}}lQ(e)}e=e.sibling}}}function lZ(e){if(30===e.tag){var t=e.memoizedProps,n=rc(t,e.stateNode),r=null!==l$?l$.get(n):void 0,a=rf(t.default,void 0!==r?t.share:t.exit);"none"!==a&&(lG(e,n,a,null,!1)?void 0!==r?(r.paired=a=e.stateNode,a.paired=r,l$.delete(n),ul(e,t.onShare)):ul(e,t.onExit):lW(e.child,!1)),null!==l$&&lQ(e)}else if(0!=(0x2000000&e.subtreeFlags))for(e=e.child;null!==e;)lZ(e),e=e.sibling;else null!==l$&&lQ(e)}function lJ(e){if(0!=(0x1200000&e.subtreeFlags))for(e=e.child;null!==e;){if(22!==e.tag||null===e.memoizedState){if(30===e.tag&&0!=(0x1200000&e.flags)){var t=e.stateNode;null!==t.paired&&(t.paired=null,lW(e.child,!1))}lJ(e)}e=e.sibling}}function l0(e){if(30===e.tag)e.stateNode.paired=null,lW(e.child,!1),lJ(e);else if(0!=(0x2000000&e.subtreeFlags))for(e=e.child;null!==e;)l0(e),e=e.sibling;else lJ(e)}function l1(e,t,n,r,a,o,i){for(var l=!1;null!==t;){if(5===t.tag){var s=t.stateNode;if(null!==o&&lX<o.length){var u,c=o[lX],d=cF(s);if((c.view||d.view)&&(l=!0),u=0==(4&e.flags))if(d.clip)u=!0;else{u=c.rect;var f=d.rect;u=u.y!==f.y||u.x!==f.x||u.height!==f.height||u.width!==f.width}u&&(e.flags|=4),d.abs?d=!c.abs:(c=c.rect,d=d.rect,d=c.height!==d.height||c.width!==d.width),d&&(e.flags|=32)}else e.flags|=32;0!=(4&e.flags)&&cR(s,0===lX?n:n+"_"+lX,a),l&&0!=(4&e.flags)||(null===lH&&(lH=[]),lH.push(s,0===lX?r:r+"_"+lX,t.memoizedProps)),lX++}else(22!==t.tag||null===t.memoizedState)&&(30===t.tag&&i?e.flags|=32&t.flags:l1(e,t.child,n,r,a,o,i)&&(l=!0));t=t.sibling}return l}var l2=!1,l4=!1,l3=!1,l6=!1,l8="function"==typeof WeakSet?WeakSet:Set,l5=null,l9=!1,l7=!1,se=!1,st=!1;function sn(e){for(;null!==l5;){var t=l5,n=e,r=t.alternate,a=t.flags;switch(t.tag){case 0:case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(0!=(1024&a)&&null!==r){n=void 0,a=r.memoizedProps,r=r.memoizedState;var o=t.stateNode;try{var i=iB(t.type,a);n=o.getSnapshotBeforeUpdate(i,r),o.__reactInternalSnapshotBeforeUpdate=n}catch(e){uD(t,t.return,e)}}break;case 3:if(0!=(1024&a)){if(9===(n=(r=t.stateNode.containerInfo).nodeType))c8(r);else if(1===n)switch(r.nodeName){case"HEAD":case"HTML":case"BODY":c8(r);break;default:r.textContent=""}}break;case 30:n&&null!==r&&(n=rc(r.memoizedProps,r.stateNode),"none"!==(a=rf((a=t.memoizedProps).default,a.update))&&lG(r,n,a,r.memoizedState=[],!0));break;default:if(0!=(1024&a))throw Error(l(163))}if(null!==(r=t.sibling)){r.return=t.return,l5=r;break}l5=t.return}}function sr(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:sb(e,n),4&r&&lE(5,n);break;case 1:if(sb(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(e){uD(n,n.return,e)}else{var a=iB(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(a,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){uD(n,n.return,e)}}64&r&&l_(n),512&r&&lC(n,n.return);break;case 3:if(sb(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{a6(e,t)}catch(e){uD(n,n.return,e)}}break;case 27:null===t&&4&r&&lB(n);case 26:case 5:sb(e,n),null===t&&4&r&&lj(n),512&r&&lC(n,n.return);break;case 12:sb(e,n);break;case 31:sb(e,n),4&r&&su(e,n);break;case 13:sb(e,n),4&r&&sc(e,n),64&r&&null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=uB.bind(null,n));break;case 22:if(!(r=null!==n.memoizedState||l2)){var o=null!==t&&null!==t.memoizedState||l4;t=l2,a=l4,l2=r,(l4=o)&&!a?(r=2,0!=(8772&n.subtreeFlags)&&(r|=1),function e(t,n,r){for(r=0!=(8772&n.subtreeFlags)?r:-2&r,n=n.child;null!==n;){var a=n.alternate,o=t,i=n,l=i.flags,s=0!=(1&r);switch(i.tag){case 0:case 11:case 15:e(o,i,r),lE(4,i);break;case 1:if(e(o,i,r),"function"==typeof(o=(a=i).stateNode).componentDidMount)try{o.componentDidMount()}catch(e){uD(a,a.return,e)}if(null!==(o=(a=i).updateQueue)){var u=a.stateNode;try{var c=o.shared.hiddenCallbacks;if(null!==c)for(o.shared.hiddenCallbacks=null,o=0;o<c.length;o++)a3(c[o],u)}catch(e){uD(a,a.return,e)}}s&&64&l&&l_(i),lC(i,i.return);break;case 27:0!=(2&r)&&lB(i);case 5:5!==i.tag&&27!==i.tag||lO(i),e(o,i,r),s&&null===a&&4&l&&lj(i),lC(i,i.return);break;case 6:lO(i);break;case 26:u=i.stateNode,null!==i.memoizedState||null===u||l2||d_(dc(u.ownerDocument),i.type,u),e(o,i,r),s&&null===a&&4&l&&lj(i),lC(i,i.return);break;case 12:e(o,i,r);break;case 31:e(o,i,r),s&&4&l&&su(o,i);break;case 13:e(o,i,r),s&&4&l&&sc(o,i);break;case 22:null===i.memoizedState&&e(o,i,r),lC(i,i.return);break;case 30:e(o,i,r),lC(i,i.return);break;case 7:lC(i,i.return);default:e(o,i,r)}n=n.sibling}}(e,n,r)):sb(e,n),l2=t,l4=a}break;case 30:sb(e,n),512&r&&lC(n,n.return);break;case 7:512&r&&lC(n,n.return);default:sb(e,n)}}function sa(e,t){for(e=e.child;null!==e;)(function e(t,n){switch(t.tag){case 5:case 26:try{var r=t.stateNode;if(n){var a=r.style;"function"==typeof a.setProperty?a.setProperty("display","none","important"):a.display="none"}else{var o=t.stateNode,i=t.memoizedProps.style,l=null!=i&&i.hasOwnProperty("display")?i.display:null;o.style.display=null==l||"boolean"==typeof l?"":(""+l).trim()}}catch(e){uD(t,t.return,e)}!function t(n,r){if(0x4000000&n.subtreeFlags)for(n=n.child;null!==n;){e:{var a=n;switch(a.tag){case 4:e(a,r);break e;case 22:null===a.memoizedState&&t(a,r);break e;default:t(a,r)}}n=n.sibling}}(t,n);break;case 6:try{t.stateNode.nodeValue=n?"":t.memoizedProps,tc=!0}catch(e){uD(t,t.return,e)}break;case 18:try{var s=t.stateNode;n?cI(s,!0):cI(t.stateNode,!1)}catch(e){uD(t,t.return,e)}break;case 22:case 23:null===t.memoizedState&&sa(t,n);break;default:sa(t,n)}})(e,t),e=e.sibling}var so=null,si=!1;function sl(e,t,n){for(n=n.child;null!==n;)ss(e,t,n),n=n.sibling}function ss(e,t,n){if(eC&&"function"==typeof eC.onCommitFiberUnmount)try{eC.onCommitFiberUnmount(eA,n)}catch(e){}switch(n.tag){case 26:l4||lN(n,t),sl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&!l4&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:l4||lN(n,t),lL(n);var r=so,a=si;cO(n.type)&&(so=n.stateNode,si=!1),sl(e,t,n),di(n.stateNode,n.type,n.memoizedProps),so=r,si=a;break;case 5:l4||lN(n,t),lL(n);case 6:if(6===n.tag&&lL(n),r=so,a=si,so=null,sl(e,t,n),so=r,si=a,null!==so)if(si)try{(9===so.nodeType?so.body:"HTML"===so.nodeName?so.ownerDocument.body:so).removeChild(n.stateNode),tc=!0}catch(e){uD(n,t,e)}else try{so.removeChild(n.stateNode),tc=!0}catch(e){uD(n,t,e)}break;case 18:null!==so&&(si?(cL(9===(e=so).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),fl(e)):cL(so,n.stateNode));break;case 4:r=so,a=si,so=n.stateNode.containerInfo,si=!0,sl(e,t,n),so=r,si=a;break;case 0:case 11:case 14:case 15:lT(2,n,t),l4||lT(4,n,t),sl(e,t,n);break;case 1:l4||(lN(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount&&lA(n,t,r)),sl(e,t,n);break;case 21:default:sl(e,t,n);break;case 22:l4=(r=l4)||null!==n.memoizedState,sl(e,t,n),l4=r;break;case 30:lN(n,t),sl(e,t,n);break;case 7:l4||lN(n,t),sl(e,t,n)}}function su(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{fl(e)}catch(e){uD(t,t.return,e)}}}function sc(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{fl(e)}catch(e){uD(t,t.return,e)}}function sd(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new l8),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new l8),t;default:throw Error(l(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=uU.bind(null,e,t);t.then(r,r)}})}function sf(e,t,n){var r=t.deletions;if(null!==r)for(var a=0;a<r.length;a++){var o=r[a],i=e,s=t,u=s;e:for(;null!==u;){switch(u.tag){case 27:if(cO(u.type)){so=u.stateNode,si=!1;break e}break;case 5:so=u.stateNode,si=!1;break e;case 3:case 4:so=u.stateNode.containerInfo,si=!0;break e}u=u.return}if(null===so)throw Error(l(160));ss(i,s,o),so=null,si=!1,null!==(i=o.alternate)&&(i.return=null),o.return=null}if(13886&t.subtreeFlags)for(t=t.child;null!==t;)sm(t,e,n),t=t.sibling}var sp=null;function sm(e,t,n){var r=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(4&a&&null!==(r=null!==(r=e.updateQueue)?r.events:null))for(var o=0;o<r.length;o++){var i=r[o];i.ref.impl=i.nextImpl}sf(t,e,n),sg(e),4&a&&(lT(3,e,e.return),lE(3,e),lT(5,e,e.return));break;case 1:sf(t,e,n),sg(e),512&a&&(l4||null===r||lN(r,r.return)),64&a&&l2&&null!==(e=e.updateQueue)&&null!==(t=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?t:n.concat(t));break;case 26:if(o=sp,sf(t,e,n),sg(e),512&a&&(l4||null===r||lN(r,r.return)),4&a)if(a=null!==r?r.memoizedState:null,n=e.memoizedState,null===r)if(null===n)if(null===e.stateNode)if(l2)e.stateNode=ck(e.type,e.memoizedProps,t.containerInfo,e);else{e:{t=e.type,n=e.memoizedProps,a=o.ownerDocument||o;t:switch(t){case"title":(!(r=a.getElementsByTagName("title")[0])||r[e3]||r[eQ]||"http://www.w3.org/2000/svg"===r.namespaceURI||r.hasAttribute("itemprop"))&&(r=a.createElement(t),a.head.insertBefore(r,a.querySelector("head > title"))),cm(r,t,n),r[eQ]=e,tt(r),t=r;break e;case"link":if(o=dT("link","href",a).get(t+(n.href||""))){for(i=0;i<o.length;i++)if((r=o[i]).getAttribute("href")===(null==n.href||""===n.href?null:n.href)&&r.getAttribute("rel")===(null==n.rel?null:n.rel)&&r.getAttribute("title")===(null==n.title?null:n.title)&&r.getAttribute("crossorigin")===(null==n.crossOrigin?null:n.crossOrigin)){o.splice(i,1);break t}}cm(r=a.createElement(t),t,n),a.head.appendChild(r);break;case"meta":if(o=dT("meta","content",a).get(t+(n.content||""))){for(i=0;i<o.length;i++)if((r=o[i]).getAttribute("content")===(null==n.content?null:""+n.content)&&r.getAttribute("name")===(null==n.name?null:n.name)&&r.getAttribute("property")===(null==n.property?null:n.property)&&r.getAttribute("http-equiv")===(null==n.httpEquiv?null:n.httpEquiv)&&r.getAttribute("charset")===(null==n.charSet?null:n.charSet)){o.splice(i,1);break t}}cm(r=a.createElement(t),t,n),a.head.appendChild(r);break;default:throw Error(l(468,t))}r[eQ]=e,tt(r),t=r}e.stateNode=t}else l2||d_(o,e.type,e.stateNode);else e.stateNode=dw(o,n,e.memoizedProps);else a!==n?(null===a?null===(t=r.stateNode)||l4||t.parentNode.removeChild(t):a.count--,null===n?l2||d_(o,e.type,e.stateNode):dw(o,n,e.memoizedProps)):null===n&&null!==e.stateNode&&lD(e,e.memoizedProps,r.memoizedProps);break;case 27:sf(t,e,n),sg(e),512&a&&(l4||null===r||lN(r,r.return)),null!==r&&4&a&&lD(e,e.memoizedProps,r.memoizedProps);break;case 5:if(o=l3,l3=!1,sf(t,e,n),l3=o,sg(e),512&a&&(l4||null===r||lN(r,r.return)),32&e.flags){t=e.stateNode;try{tA(t,""),tc=!0}catch(t){uD(e,e.return,t)}}4&a&&null!=e.stateNode&&(t=e.memoizedProps,lD(e,t,null!==r?r.memoizedProps:t)),1024&a&&(l6=!0);break;case 6:if(sf(t,e,n),sg(e),4&a){if(null===e.stateNode)throw Error(l(162));t=e.memoizedProps,n=e.stateNode;try{n.nodeValue=t,tc=!0}catch(t){uD(e,e.return,t)}}break;case 3:if(tc=!1,dE=null,o=sp,sp=dc(t.containerInfo),sf(t,e,n),sp=o,sg(e),4&a&&null!==r&&r.memoizedState.isDehydrated)try{fl(t.containerInfo)}catch(t){uD(e,e.return,t)}l6&&(l6=!1,function e(t){if(1024&t.subtreeFlags)for(t=t.child;null!==t;){var n=t;e(n),5===n.tag&&1024&n.flags&&(n=n.stateNode,dX=!0,n.reset(),dX=!1),t=t.sibling}}(e)),tc=!1;break;case 4:a=l3,l3=l2,r=td(),o=sp,sp=dc(e.stateNode.containerInfo),sf(t,e,n),sg(e),sp=o,tc&&l7&&(se=!0),tc=r,l3=a;break;case 12:sf(t,e,n),sg(e);break;case 31:case 19:sf(t,e,n),sg(e),4&a&&null!==(t=e.updateQueue)&&(e.updateQueue=null,sd(e,t));break;case 13:sf(t,e,n),sg(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==r&&null!==r.memoizedState)&&(sZ=eb()),4&a&&null!==(t=e.updateQueue)&&(e.updateQueue=null,sd(e,t));break;case 22:o=null!==e.memoizedState,i=null!==r&&null!==r.memoizedState;var s=l2,u=l4,c=l3;l2=s||o,l3=c||o,l4=u||i,sf(t,e,n),l4=u,l3=c,l2=s,sg(e),8192&a&&((t=e.stateNode)._visibility=o?-2&t._visibility:1|t._visibility,!o||null===r||i||l2||l4||(t=i||l4,n=l2,r=l4,l2=o||l2,l4=t,function e(t,n){for(t=t.child;null!==t;){var r=t;switch(r.tag){case 0:case 11:case 14:case 15:lT(4,r,r.return),e(r,n);break;case 1:lN(r,r.return);var a=r.stateNode;"function"==typeof a.componentWillUnmount&&lA(r,r.return,a),e(r,n);break;case 27:0!=(2&n)&&di(r.stateNode,r.type,r.memoizedProps);case 5:lN(r,r.return),5!==r.tag&&27!==r.tag||lL(r),e(r,n);break;case 6:lL(r);break;case 26:lN(r,r.return),a=r.stateNode,null!==r.memoizedState||null===a||l4||a.parentNode.removeChild(a),e(r,n);break;case 22:null===r.memoizedState&&e(r,n);break;case 30:lN(r,r.return),e(r,n);break;case 7:lN(r,r.return);default:e(r,n)}t=t.sibling}}(e,2),l2=n,l4=r),!o&&l3||sa(e,o)),4&a&&null!==(t=e.updateQueue)&&null!==(n=t.retryQueue)&&(t.retryQueue=null,sd(e,n));break;case 30:512&a&&(l4||null===r||lN(r,r.return)),a=td(),o=l7,i=(0x13ffff00&n)===n,s=e.memoizedProps,l7=i&&"none"!==rf(s.default,s.update),sf(t,e,n),sg(e),i&&null!==r&&tc&&(e.flags|=4),l7=o,tc=a;break;case 21:break;case 7:512&a&&(l4||null===r||lN(r,r.return)),r&&null!==r.stateNode&&(r.stateNode._fragmentFiber=e);default:sf(t,e,n),sg(e)}}function sg(e){var t=e.flags;if(2&t){try{for(var n,r=e.return;null!==r;){if(lF(r)){n=r;break}r=r.return}r=null;for(var a=e.return;null!==a;){if(lR(a)){var o=a.stateNode;null===r?r=[o]:r.push(o)}if(lI(a))break;a=a.return}var i=r;if(null==n)throw Error(l(160));switch(n.tag){case 27:var s=n.stateNode,u=lM(e);lz(e,u,s,i);break;case 5:var c=n.stateNode;32&n.flags&&(tA(c,""),n.flags&=-33);var d=lM(e);lz(e,d,c,i);break;case 3:case 4:var f=n.stateNode.containerInfo,p=lM(e);!function e(t,n,r,a){var o=t.tag;if(5===o||6===o)o=t.stateNode,n?(9===r.nodeType?r.body:"HTML"===r.nodeName?r.ownerDocument.body:r).insertBefore(o,n):((n=9===r.nodeType?r.body:"HTML"===r.nodeName?r.ownerDocument.body:r).appendChild(o),null!=(r=r._reactRootContainer)||null!==n.onclick||(n.onclick=tj)),lP(t,a),tc=!0;else if(4!==o&&(27===o&&(lP(t,a),a=null,cO(t.type)&&(r=t.stateNode,n=null)),null!==(t=t.child)))for(e(t,n,r,a),t=t.sibling;null!==t;)e(t,n,r,a),t=t.sibling}(e,p,f,i);break;default:throw Error(l(161))}}catch(t){uD(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function sh(e,t){if(9270&t.subtreeFlags)for(t=t.child;null!==t;)sy(t,e),t=t.sibling;else!function e(t,n){for(t=t.child;null!==t;){if(30===t.tag){var r=t.memoizedProps,a=t.stateNode,o=rc(r,a),i=rf(r.default,r.update);if(n)var l=null===(a=a.clones)?null:a.map(cM);else l=t.memoizedState,t.memoizedState=null;a=t;var s=t.child;lX=0,o=l1(a,s,o,o,i,l,!1),0!=(4&t.flags)&&o&&(n||ul(t,r.onUpdate))}else 0!=(0x2000000&t.subtreeFlags)&&e(t,n);t=t.sibling}}(t,!1)}function sy(e,t){var n=e.alternate;if(null===n)lK(e,!1);else switch(e.tag){case 3:if(st=l9=!1,lV(),sh(t,e),!l9&&!se){if(null!==(e=lH))for(var r=0;r<e.length;r+=3){n=e[r];var a=e[r+1];cj(n,e[r+2]),null!==(n=n.ownerDocument.documentElement)&&n.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group("+a+")"})}null!==(e=9===(e=t.containerInfo).nodeType?e.documentElement:e.ownerDocument.documentElement)&&""===e.style.viewTransitionName&&(e.style.viewTransitionName="none",e.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group(root)"}),e.animate({width:[0,0],height:[0,0]},{duration:0,fill:"forwards",pseudoElement:"::view-transition"})),st=!0}lH=null;break;case 5:default:sh(t,e);break;case 4:r=l9,l9=!1,sh(t,e),l9&&(se=!0),l9=r;break;case 22:null===e.memoizedState&&(null!==n.memoizedState?lK(e,!1):sh(t,e));break;case 30:r=l9,a=lV(),l9=!1,sh(t,e),l9&&(e.flags|=4);var o=e.memoizedProps,i=e.stateNode;t=rc(o,i),i=rc(n.memoizedProps,i);var l=rf(o.default,o.update);"none"===l?t=!1:(o=n.memoizedState,n.memoizedState=null,n=e.child,lX=0,t=l1(e,n,t,i,l,o,!0),lX!==(null===o?0:o.length)&&(e.flags|=32)),0!=(4&e.flags)&&t?(ul(e,e.memoizedProps.onUpdate),lH=a):null!==a&&(a.push.apply(a,lH),lH=a),l9=0!=(32&e.flags)||r}}function sb(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)sr(e,t.alternate,t),t=t.sibling}function sv(e,t){var n=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),e=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(e=t.memoizedState.cachePool.pool),e!==n&&(null!=e&&e.refCount++,null!=n&&ay(n))}function sw(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&ay(e))}function sS(e,t,n,r){var a=(0x13ffff00&n)===n;if(t.subtreeFlags&(a?10262:10256))for(t=t.child;null!==t;)sk(e,t,n,r),t=t.sibling;else a&&function e(t){for(t=t.child;null!==t;)30===t.tag?lW(t.child,!1):0!=(0x2000000&t.subtreeFlags)&&e(t),t=t.sibling}(t)}function sk(e,t,n,r){var a=(0x13ffff00&n)===n;a&&null===t.alternate&&null!==t.return&&null!==t.return.alternate&&l0(t);var o=t.flags;switch(t.tag){case 0:case 11:case 15:sS(e,t,n,r),2048&o&&lE(9,t);break;case 1:case 31:case 13:default:sS(e,t,n,r);break;case 3:sS(e,t,n,r),a&&st&&("root"===(e=9===(e=e.containerInfo).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e).style.viewTransitionName&&(e.style.viewTransitionName=""),null!==(e=e.ownerDocument.documentElement)&&"none"===e.style.viewTransitionName&&(e.style.viewTransitionName="")),2048&o&&(o=null,null!==t.alternate&&(o=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==o&&(t.refCount++,null!=o&&ay(o)));break;case 12:if(2048&o){sS(e,t,n,r),o=t.stateNode;try{var i=t.memoizedProps,l=i.id,s=i.onPostCommit;"function"==typeof s&&s(l,null===t.alternate?"mount":"update",o.passiveEffectDuration,-0)}catch(e){uD(t,t.return,e)}}else sS(e,t,n,r);break;case 23:break;case 22:i=t.stateNode,l=t.alternate,null!==t.memoizedState?(a&&null!==l&&null===l.memoizedState&&l0(l),2&i._visibility?sS(e,t,n,r):sx(e,t)):(a&&null!==l&&null!==l.memoizedState&&l0(t),2&i._visibility?sS(e,t,n,r):(i._visibility|=2,function e(t,n,r,a,o){for(o=o&&0!=(10256&n.subtreeFlags),n=n.child;null!==n;){var i=n,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(t,i,r,a,o),lE(8,i);break;case 23:break;case 22:var s=i.stateNode;null!==i.memoizedState?2&s._visibility?e(t,i,r,a,o):sx(t,i):(s._visibility|=2,e(t,i,r,a,o)),o&&2048&l&&sv(i.alternate,i);break;case 24:e(t,i,r,a,o),o&&2048&l&&sw(i.alternate,i);break;default:e(t,i,r,a,o)}n=n.sibling}}(e,t,n,r,0!=(10256&t.subtreeFlags)))),2048&o&&sv(l,t);break;case 24:sS(e,t,n,r),2048&o&&sw(t.alternate,t);break;case 30:a&&null!==(o=t.alternate)&&(lW(o.child,!0),lW(t.child,!0)),sS(e,t,n,r)}}function sx(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=t,r=n.flags;switch(n.tag){case 22:sx(e,n),2048&r&&sv(n.alternate,n);break;case 24:sx(e,n),2048&r&&sw(n.alternate,n);break;default:sx(e,n)}t=t.sibling}}var sE=8192;function sT(e,t,n){if(e.subtreeFlags&sE)for(e=e.child;null!==e;)s_(e,t,n),e=e.sibling}function s_(e,t,n){switch(e.tag){case 26:sT(e,t,n),e.flags&sE&&(null!==e.memoizedState?function(e,t,n,r){if("stylesheet"===n.type&&("string"!=typeof r.media||!1!==matchMedia(r.media).matches)&&0==(4&n.state.loading)){if(null===n.instance){var a=dg(r.href),o=t.querySelector(dh(a));if(o){null!==(t=o._p)&&"object"==typeof t&&"function"==typeof t.then&&(e.count++,e=dI.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=o,tt(o);return}o=t.ownerDocument||t,r=dy(r),(a=ds.get(a))&&dk(r,a),tt(o=o.createElement("link"));var i=o;i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),cm(o,"link",r),n.instance=o}null===e.stylesheets&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&0==(3&n.state.loading)&&(e.count++,n=dI.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}(n,sp,e.memoizedState,e.memoizedProps):(e=e.stateNode,(0x13ffff40&t)===t&&dP(n,e)));break;case 5:sT(e,t,n),e.flags&sE&&(e=e.stateNode,(0x13ffff40&t)===t&&dP(n,e));break;case 3:case 4:var r=sp;sp=dc(e.stateNode.containerInfo),sT(e,t,n),sp=r;break;case 22:null===e.memoizedState&&(null!==(r=e.alternate)&&null!==r.memoizedState?(r=sE,sE=0x1000000,sT(e,t,n),sE=r):sT(e,t,n));break;case 30:if(0!=(e.flags&sE)&&null!=(r=e.memoizedProps.name)&&"auto"!==r){var a=e.stateNode;a.paired=null,null===l$&&(l$=new Map),l$.set(r,a)}sT(e,t,n);break;default:sT(e,t,n)}}function sA(e){var t=e.alternate;if(null!==t&&null!==(e=t.child)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(null!==e)}}function sC(e){var t=e.deletions;if(0!=(16&e.flags)){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];l5=r,sP(r,e)}sA(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)sN(e),e=e.sibling}function sN(e){switch(e.tag){case 0:case 11:case 15:sC(e),2048&e.flags&&lT(9,e,e.return);break;case 3:case 12:default:sC(e);break;case 22:var t=e.stateNode;null!==e.memoizedState&&2&t._visibility&&(null===e.return||13!==e.return.tag)?(t._visibility&=-3,function e(t){var n=t.deletions;if(0!=(16&t.flags)){if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];l5=a,sP(a,t)}sA(t)}for(t=t.child;null!==t;){switch((n=t).tag){case 0:case 11:case 15:lT(8,n,n.return),e(n);break;case 22:2&(r=n.stateNode)._visibility&&(r._visibility&=-3,e(n));break;default:e(n)}t=t.sibling}}(e)):sC(e)}}function sP(e,t){for(;null!==l5;){var n=l5;switch(n.tag){case 0:case 11:case 15:lT(8,n,t);break;case 23:case 22:if(null!==n.memoizedState&&null!==n.memoizedState.cachePool){var r=n.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:ay(n.memoizedState.cache)}if(null!==(r=n.child))r.return=n,l5=r;else for(n=e;null!==l5;){var a=(r=l5).sibling,o=r.return;if(!function e(t){var n=t.alternate;null!==n&&(t.alternate=null,e(n)),t.child=null,t.deletions=null,t.sibling=null,5===t.tag&&null!==(n=t.stateNode)&&e8(n),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}(r),r===n){l5=null;break}if(null!==a){a.return=o,l5=a;break}l5=o}}}var sO={getCacheForType:function(e){var t=au(ag),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return au(ag).controller.signal}},sL="function"==typeof WeakMap?WeakMap:Map,sI=0,sR=null,sj=null,sD=0,sF=0,sM=null,sz=!1,sB=!1,sU=!1,s$=0,sq=0,sH=0,sV=0,sX=0,sG=0,sW=0,sY=null,sK=null,sQ=!1,sZ=0,sJ=0,s0=1/0,s1=null,s2=null,s4=0,s3=null,s6=null,s8=0,s5=0,s9=null,s7=null,ue=null,ut=null,un=null,ur=0,ua=null;function uo(){return 0!=(2&sI)&&0!==sD?sD&-sD:null!==G.T?u1():eW()}function ui(){if(0===sG)if(0==(0x20000000&sD)||rZ){var e=eR;0==(3932160&(eR<<=1))&&(eR=262144),sG=e}else sG=0x20000000;return null!==(e=ot.current)&&(e.flags|=32),sG}function ul(e,t){if(null!=t){var n=e.stateNode,r=n.ref;null===r&&(r=n.ref=cU(rc(e.memoizedProps,n))),null===ut&&(ut=[]),ut.push(t.bind(null,r))}}function us(e,t,n){(e===sR&&(2===sF||9===sF)||null!==e.cancelPendingCommit)&&(um(e,0),ud(e,sD,sG,!1)),e$(e,n),(0==(2&sI)||e!==sR)&&(e===sR&&(0==(2&sI)&&(sV|=n),4===sq&&ud(e,sD,sG,!1)),uW(e))}function uu(e,t,n){if(0!=(6&sI))throw Error(l(327));for(var r=!n&&0==(127&t)&&0==(t&e.expiredLanes)||eM(e,t),a=r?function(e,t){var n=sI;sI|=2;var r=uy(),a=ub();sR!==e||sD!==t?(s1=null,s0=eb()+500,um(e,t)):sB=eM(e,t);e:for(;;)try{if(0!==sF&&null!==sj){t=sj;var o=sM;t:switch(sF){case 1:sF=0,sM=null,ux(e,t,o,1);break;case 2:case 9:if(aR(o)){sF=0,sM=null,uk(t);break}t=function(){2!==sF&&9!==sF||sR!==e||(sF=7),uW(e)},o.then(t,t);break e;case 3:sF=7;break e;case 4:sF=5;break e;case 7:aR(o)?(sF=0,sM=null,uk(t)):(sF=0,sM=null,ux(e,t,o,7));break;case 5:var i=null;switch(sj.tag){case 26:i=sj.memoizedState;case 5:case 27:var s=sj;if(i?dC(i):s.stateNode.complete){sF=0,sM=null;var u=s.sibling;if(null!==u)sj=u;else{var c=s.return;null!==c?(sj=c,uE(c)):sj=null}break t}}sF=0,sM=null,ux(e,t,o,5);break;case 6:sF=0,sM=null,ux(e,t,o,6);break;case 8:up(),sq=6;break e;default:throw Error(l(462))}}for(;null!==sj&&!eh();)uS(sj);break}catch(t){ug(e,t)}return(at=ae=null,G.H=r,G.A=a,sI=n,null!==sj)?0:(sR=null,sD=0,ry(),sq)}(e,t):uw(e,t,!0),o=r;;){if(0===a)sB&&!r&&ud(e,t,0,!1);else{if(n=e.current.alternate,o&&!function(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&null!==(n=t.updateQueue)&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!nV(o(),a))return!1}catch(e){return!1}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(n)){a=uw(e,t,!1),o=!1;continue}if(2===a){if(o=t,e.errorRecoveryDisabledLanes&o)var i=0;else i=0!=(i=-0x20000001&e.pendingLanes)?i:0x20000000&i?0x20000000:0;if(0!==i){t=i;e:{a=sY;var s=e.current.memoizedState.isDehydrated;if(s&&(um(e,i).flags|=256),2!==(i=uw(e,i,!1))&&6!==i){if(sU&&!s){e.errorRecoveryDisabledLanes|=o,sV|=o,a=4;break e}o=sK,sK=a,null!==o&&(null===sK?sK=o:sK.push.apply(sK,o))}a=i}if(o=!1,2!==a)continue}}if(1===a){um(e,0),ud(e,t,0,!0);break}e:{switch(r=e,o=a){case 0:case 1:throw Error(l(345));case 4:if((4194048&t)!==t&&(0x3c00000&t)!==t)break;case 6:ud(r,t,sG,!sz);break e;case 2:sK=null;break;case 3:case 5:break;default:throw Error(l(329))}if((0x3c00000&t)===t&&10<(a=sZ+300-eb())){if(ud(r,t,sG,!sz),0!==eF(r,0,!0))break e;s8=t,r.timeoutHandle=cT(uc.bind(null,r,n,sK,s1,sQ,t,sG,sV,sW,sz,o,"Throttled",-0,0),a);break e}uc(r,n,sK,s1,sQ,t,sG,sV,sW,sz,o,null,-0,0)}}break}uW(e)}function uc(e,t,n,r,a,o,i,l,s,u,c,d,f,p){e.timeoutHandle=-1;var m,g,h=t.subtreeFlags,y=(0x13ffff00&o)===o;if(d=null,(y||8192&h||0x1002000==(0x1002000&h))&&(l$=null,s_(t,o,d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:tj}),y&&(h=d,null!=(y=(9===(y=e.containerInfo).nodeType?y:y.ownerDocument).__reactViewTransition)&&(h.count++,h.waitingForViewTransition=!0,h=dI.bind(h),y.finished.then(h,h))),null!==(m=d,g=h=(0x3c00000&o)===o?sZ-eb():(4194048&o)===o?sJ-eb():0,m.stylesheets&&0===m.count&&dD(m,m.stylesheets),h=0<m.count||0<m.imgCount?function(e){var t=setTimeout(function(){if(m.stylesheets&&dD(m,m.stylesheets),m.unsuspend){var e=m.unsuspend;m.unsuspend=null,e()}},6e4+g);0<m.imgBytes&&0===dO&&(dO=62500*function(){if("function"==typeof performance.getEntriesByType){for(var e=0,t=0,n=performance.getEntriesByType("resource"),r=0;r<n.length;r++){var a=n[r],o=a.transferSize,i=a.initiatorType,l=a.duration;if(o&&l&&ch(i)){for(i=0,l=a.responseEnd,r+=1;r<n.length;r++){var s=n[r],u=s.startTime;if(u>l)break;var c=s.transferSize,d=s.initiatorType;c&&ch(d)&&(i+=c*((s=s.responseEnd)<l?1:(l-u)/(s-u)))}if(--r,t+=8*(o+i)/(a.duration/1e3),10<++e)break}}if(0<e)return t/e/1e6}return navigator.connection&&"number"==typeof(e=navigator.connection.downlink)?e:5}());var n=setTimeout(function(){if(m.waitingForImages=!1,0===m.count&&(m.stylesheets&&dD(m,m.stylesheets),m.unsuspend)){var e=m.unsuspend;m.unsuspend=null,e()}},(m.imgBytes>dO?50:800)+g);return m.unsuspend=e,function(){m.unsuspend=null,clearTimeout(t),clearTimeout(n)}}:null))){s8=o,e.cancelPendingCommit=h(u_.bind(null,e,t,o,n,r,a,i,l,s,u,c,d,null,f,p)),ud(e,o,i,!u);return}u_(e,t,o,n,r,a,i,l,s,u,c,d)}function ud(e,t,n,r){t=ez(e,t)&~sX&~sV,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var a=t;0<a;){var o=31-eP(a),i=1<<o;r[o]=-1,a&=~i}0!==n&&eq(e,n,t)}function uf(){return 0!=(6&sI)||(uY(0,!1),!1)}function up(){if(null!==sj){if(0===sF)var e=sj.return;else e=sj,at=ae=null,oO(e),aB=null,aU=0,e=sj;for(;null!==e;)lx(e.alternate,e),e=e.return;sj=null}}function um(e,t){var n=e.timeoutHandle;return -1!==n&&(e.timeoutHandle=-1,c_(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),s8=0,up(),sR=e,sj=n=rA(e.current,null),sD=t,sF=0,sM=null,sz=!1,sB=eM(e,t),sU=!1,sW=sG=sX=sV=sH=sq=0,sK=sY=null,sQ=!1,s$=ez(e,t),ry(),n}function ug(e,t){op=null,G.H=iL,t===aP||t===aL?(t=aM(),sF=3):t===aO?(t=aM(),sF=4):sF=t===iY?8:null!==t&&"object"==typeof t&&"function"==typeof t.then?6:1,sM=t,null===sj&&(sq=1,iH(e,rj(t,e.current)))}function uh(){var e=ot.current;return null===e||((4194048&sD)===sD?null===on:((0x3c00000&sD)===sD||0!=(0x20000000&sD))&&e===on)}function uy(){var e=G.H;return G.H=iL,null===e?iL:e}function ub(){var e=G.A;return G.A=sO,e}function uv(){sq=4,sz||(4194048&sD)!==sD&&null!==ot.current||(sB=!0),0==(0x7ffffff&sH)&&0==(0x7ffffff&sV)||null===sR||ud(sR,sD,sG,!1)}function uw(e,t,n){var r=sI;sI|=2;var a=uy(),o=ub();(sR!==e||sD!==t)&&(s1=null,um(e,t)),t=!1;var i=sq;e:for(;;)try{if(0!==sF&&null!==sj){var l=sj,s=sM;switch(sF){case 8:up(),i=6;break e;case 3:case 2:case 9:case 6:null===ot.current&&(t=!0);var u=sF;if(sF=0,sM=null,ux(e,l,s,u),n&&sB){i=0;break e}break;default:u=sF,sF=0,sM=null,ux(e,l,s,u)}}(function(){for(;null!==sj;)uS(sj)})(),i=sq;break}catch(t){ug(e,t)}return t&&e.shellSuspendCounter++,at=ae=null,sI=r,G.H=a,G.A=o,null===sj&&(sR=null,sD=0,ry()),i}function uS(e){var t=lh(e.alternate,e,s$);e.memoizedProps=e.pendingProps,null===t?uE(e):sj=t}function uk(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=i9(n,t,t.pendingProps,t.type,void 0,sD);break;case 11:t=i9(n,t,t.pendingProps,t.type.render,t.ref,sD);break;case 5:oO(t);var r=t;r===rK&&(rZ?(r3(r),5===r.tag&&null!=r.stateNode&&(rQ=r.stateNode)):(r3(r),rZ=!0));default:lx(n,t),t=lh(n,t=sj=rC(t,s$),s$)}e.memoizedProps=e.pendingProps,null===t?uE(e):sj=t}function ux(e,t,n,r){at=ae=null,oO(t),aB=null,aU=0;var a=t.return;try{if(function(e,t,n,r,a){if(n.flags|=32768,null!==r&&"object"==typeof r&&"function"==typeof r.then){if(null!==(t=n.alternate)&&ai(t,n,a,!0),null!==(n=ot.current)){switch(n.tag){case 31:case 13:case 19:return null===on?uv():null===n.alternate&&0===sq&&(sq=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===aI?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=new Set([r]):t.add(r),uF(e,r,a)),!1;case 22:return n.flags|=65536,r===aI?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=new Set([r]):n.add(r),uF(e,r,a)),!1}throw Error(l(435,n.tag))}return uF(e,r,a),uv(),!1}if(rZ)return null!==(t=ot.current)?(0==(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==r1&&r9(rj(e=Error(l(422),{cause:r}),n))):(r!==r1&&r9(rj(t=Error(l(423),{cause:r}),n)),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=rj(r,n),a=iX(e.stateNode,r,a),a0(e,a),4!==sq&&(sq=2)),!1;var o=Error(l(520),{cause:r});if(o=rj(o,n),null===sY?sY=[o]:sY.push(o),4!==sq&&(sq=2),null===t)return!0;r=rj(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=iX(n.stateNode,r,e),a0(n,e),!1;case 1:if(t=n.type,o=n.stateNode,0==(128&n.flags)&&("function"==typeof t.getDerivedStateFromError||null!==o&&"function"==typeof o.componentDidCatch&&(null===s2||!s2.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,iW(a=iG(a),e,n,r),a0(n,a),!1;break;case 22:if(null!==n.memoizedState)return n.flags|=65536,!1}n=n.return}while(null!==n)return!1}(e,a,t,n,sD)){sq=1,iH(e,rj(n,e.current)),sj=null;return}}catch(t){if(null!==a)throw sj=a,t;sq=1,iH(e,rj(n,e.current)),sj=null;return}32768&t.flags?(rZ||1===r?e=!0:sB||0!=(0x20000000&sD)?e=!1:(sz=e=!0,(2===r||9===r||3===r||6===r)&&null!==(r=ot.current)&&13===r.tag&&(r.flags|=16384)),uT(t,e)):uE(t)}function uE(e){var t=e;do{if(0!=(32768&t.flags))return void uT(t,sz);e=t.return;var n=function(e,t,n){var r=t.pendingProps;switch(rW(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return lk(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),ar(ag),ei(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(null===e||null===e.child)&&(r6(t)?ly(t):null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,r5())),lk(t),null;case 26:var a=t.type,o=t.memoizedState;return null===e?(ly(t),null!==o?(lk(t),lv(t,o)):(lk(t),lb(t,a,null,r,n))):o?o!==e.memoizedState?(ly(t),lk(t),lv(t,o)):(lk(t),t.flags&=-0x1000001):((e=e.memoizedProps)!==r&&ly(t),lk(t),lb(t,a,e,r,n)),null;case 27:if(es(t),n=er.current,a=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&ly(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return lk(t),t.subtreeFlags&=-0x2000001,null}e=et.current,r6(t)?r4(t,e):(t.stateNode=e=da(a,r,n),ly(t))}return lk(t),t.subtreeFlags&=-0x2000001,null;case 5:if(es(t),a=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&ly(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return lk(t),t.subtreeFlags&=-0x2000001,null}if(o=et.current,r6(t))r4(t,o);else{var i=cv(er.current);switch(o){case 1:o=i.createElementNS("http://www.w3.org/2000/svg",a);break;case 2:o=i.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;default:switch(a){case"svg":o=i.createElementNS("http://www.w3.org/2000/svg",a);break;case"math":o=i.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;case"script":(o=i.createElement("div")).innerHTML="<script><\/script>",o=o.removeChild(o.firstChild);break;case"select":o="string"==typeof r.is?i.createElement("select",{is:r.is}):i.createElement("select"),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o="string"==typeof r.is?i.createElement(a,{is:r.is}):i.createElement(a)}}o[eQ]=t,o[eZ]=r;e:for(i=t.child;null!==i;){if(5===i.tag||6===i.tag)o.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(t.stateNode=o,cm(o,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&ly(t)}}return lk(t),t.subtreeFlags&=-0x2000001,lb(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ly(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(l(166));if(e=er.current,r6(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=rK))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[eQ]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cd(e.nodeValue,n)))||r2(t,!0)}else(e=cv(e).createTextNode(r))[eQ]=t,t.stateNode=e}return lk(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=r6(t),null!==n){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(l(557));e[eQ]=t}else r8(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;lk(t),e=!1}else n=r5(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return ol(t),t;return ol(t),null}if(0!=(128&t.flags))throw Error(l(558))}return lk(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=r6(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(l(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(l(317));a[eQ]=t}else r8(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;lk(t),a=!1}else a=r5(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a){if(256&t.flags)return ol(t),t;return ol(t),null}}if(ol(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,a=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),o=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),lw(t,t.updateQueue),lk(t),null;case 4:return ei(),null===e&&ct(t.stateNode.containerInfo),t.flags|=0x4000000,lk(t),null;case 10:return ar(t.type),lk(t),null;case 19:if(oc(t),null===(r=t.memoizedState))return lk(t),null;if(a=0!=(128&t.flags),null===(o=r.rendering))if(a)lS(r,!1);else{if(0!==sq||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(o=od(e))){for(t.flags|=128,lS(r,!1),t.updateQueue=e=o.updateQueue,lw(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rC(n,e),n=n.sibling;return ou(t,1&os.current|2),rZ&&rV(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&eb()>s0&&(t.flags|=128,a=!0,lS(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=od(o))){if(t.flags|=128,a=!0,t.updateQueue=e=e.updateQueue,lw(t,e),lS(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!o.alternate&&!rZ)return lk(t),null}else 2*eb()-r.renderingStartTime>s0&&0x20000000!==n&&(t.flags|=128,a=!0,lS(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=r.last)?e.sibling=o:t.child=o,r.last=o)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=eb(),e.sibling=null,o=os.current,o=a?1&o|2:1&o,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rZ?ou(t,o):(n=o,ee(ot,t),ee(os,n),null===on&&(on=t)),rZ&&rV(t,r.treeForkCount),e}return lk(t),null;case 22:case 23:return ol(t),oe(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(lk(t),6&t.subtreeFlags&&(t.flags|=8192)):lk(t),null!==(n=t.updateQueue)&&lw(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&J(a_),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ar(ag),lk(t),null;case 25:return null;case 30:return t.flags|=0x2000000,lk(t),null}throw Error(l(156,t.tag))}(t.alternate,t,s$);if(null!==n){sj=n;return}if(null!==(t=t.sibling)){sj=t;return}sj=t=e}while(null!==t)0===sq&&(sq=5)}function uT(e,t){do{var n=function(e,t){switch(rW(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ar(ag),ei(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return es(t),null;case 31:if(null!==t.memoizedState){if(ol(t),null===t.alternate)throw Error(l(340));r8()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(ol(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(l(340));r8()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return oc(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ei(),null;case 10:return ar(t.type),null;case 22:case 23:return ol(t),oe(),null!==e&&J(a_),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return ar(ag),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,sj=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){sj=e;return}sj=e=n}while(null!==e)sq=6,sj=null}function u_(e,t,n,r,a,o,i,s,u,c,d,f){e.cancelPendingCommit=null;do uI();while(0!==s4)if(0!=(6&sI))throw Error(l(327));if(null!==t){if(t===e.current)throw Error(l(177));e===sR&&(sj=sR=null,sD=0),s6=t,s3=e,s8=n,s9=a,s7=r,function(e,t,n,r,a,o,i){var l,s=t.lanes|t.childLanes;if(s5=s,!function(e,t,n,r,a,o){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,u=e.hiddenUpdates;for(n=i&~n;0<n;){var c=31-eP(n),d=1<<c;l[c]=0,s[c]=-1;var f=u[c];if(null!==f)for(u[c]=null,c=0;c<f.length;c++){var p=f[c];null!==p&&(p.lane&=-0x20000001)}n&=~d}0!==r&&eq(e,r,0),0!==o&&0===a&&0!==e.tag&&(e.suspendedLanes|=o&~(i&~t))}(e,n,s|=rh,r,a,o),ut=null,(0x13ffff00&n)===n?(l=e.transitionTypes,e.transitionTypes=null,un=l,r=10262):(un=null,r=10256),0!=(t.subtreeFlags&r)||0!=(t.flags&r)?(e.callbackNode=null,e.callbackPriority=0,em(ek,function(){return uR(),null})):(e.callbackNode=null,e.callbackPriority=0),lU=!1,r=0!=(13878&t.flags),0!=(13878&t.subtreeFlags)||r){r=G.T,G.T=null,a=W.p,W.p=2,o=sI,sI|=4;try{!function(e,t,n){if(e=e.containerInfo,cy=dX,nQ(e=nK(e))){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{var a=(r=(r=e.ownerDocument)&&r.defaultView||window).getSelection&&r.getSelection();if(a&&0!==a.rangeCount){r=a.anchorNode;var o,i=a.anchorOffset,l=a.focusNode;a=a.focusOffset;try{r.nodeType,l.nodeType}catch(e){r=null;break e}var s=0,u=-1,c=-1,d=0,f=0,p=e,m=null;t:for(;;){for(;p!==r||0!==i&&3!==p.nodeType||(u=s+i),p!==l||0!==a&&3!==p.nodeType||(c=s+a),3===p.nodeType&&(s+=p.nodeValue.length),null!==(o=p.firstChild);)m=p,p=o;for(;;){if(p===e)break t;if(m===r&&++d===i&&(u=s),m===l&&++f===a&&(c=s),null!==(o=p.nextSibling))break;m=(p=m).parentNode}p=o}r=-1===u||-1===c?null:{start:u,end:c}}else r=null}r=r||{start:0,end:0}}else r=null;for(cb={focusedElem:e,selectionRange:r},dX=!1,n=(0x13ffff00&n)===n,l5=t,t=n?9270:1024;null!==l5;){if(e=l5,n&&null!==(r=e.deletions))for(i=0;i<r.length;i++)n&&lZ(r[i]);if(null===e.alternate&&0!=(2&e.flags))n&&lq(e),sn(n);else{if(22===e.tag){if(r=e.alternate,null!==e.memoizedState){null!==r&&null===r.memoizedState&&n&&lZ(r),sn(n);continue}else if(null!==r&&null!==r.memoizedState){n&&lq(e),sn(n);continue}}r=e.child,0!=(e.subtreeFlags&t)&&null!==r?(r.return=e,l5=r):(n&&function e(t){for(t=t.child;null!==t;){if(30===t.tag){var n=t.memoizedProps,r=rc(n,t.stateNode);n=rf(n.default,n.update),t.flags&=-5,"none"!==n&&lG(t,r,n,t.memoizedState=[],!1)}else 0!=(0x2000000&t.subtreeFlags)&&e(t);t=t.sibling}}(e),sn(n))}}l$=null}(e,t,n)}finally{sI=o,W.p=a,G.T=r}}s4=1,lU?ue=function(e,t,n,r,a,o,i,l,s){var u=9===t.nodeType?t:t.ownerDocument;try{var c=u.startViewTransition({update:function(){var t=u.defaultView,n=t.navigation&&t.navigation.transition,i=u.fonts.status;r();var l=[];if("loaded"===i&&(u.documentElement.clientHeight,"loading"===u.fonts.status&&l.push(u.fonts.ready)),i=l.length,null!==e)for(var s=e.suspenseyImages,c=0,d=0;d<s.length;d++){var f=s[d];if(!f.complete){var p=f.getBoundingClientRect();if(0<p.bottom&&0<p.right&&p.top<t.innerHeight&&p.left<t.innerWidth){if((c+=dN(f))>dO){l.length=i;break}f=new Promise(cz.bind(f)),l.push(f)}}}return 0<l.length?(t=Promise.race([Promise.all(l),new Promise(function(e){return setTimeout(e,500)})]).then(a,a),(n?Promise.allSettled([n.finished,t]):t).then(o,o)):(a(),n)?n.finished.then(o,o):void o()},types:n});u.__reactViewTransition=c;var d=[];return c.ready.then(function(){for(var e=u.documentElement.getAnimations({subtree:!0}),t=0;t<e.length;t++){var n=e[t],r=n.effect,a=r.pseudoElement;if(null!=a&&a.startsWith("::view-transition")){d.push(n),n=r.getKeyframes();for(var o=a=void 0,l=!0,s=0;s<n.length;s++){var c=n[s],f=c.width;if(void 0===a)a=f;else if(a!==f){l=!1;break}if(f=c.height,void 0===o)o=f;else if(o!==f){l=!1;break}delete c.width,delete c.height,"none"===c.transform&&delete c.transform}l&&void 0!==a&&void 0!==o&&(r.setKeyframes(n),(l=getComputedStyle(r.target,r.pseudoElement)).width!==a||l.height!==o)&&((l=n[0]).width=a,l.height=o,(l=n[n.length-1]).width=a,l.height=o,r.setKeyframes(n))}}i()},function(e){u.__reactViewTransition===c&&(u.__reactViewTransition=null);try{"object"==typeof e&&null!==e&&"InvalidStateError"===e.name&&("View transition was skipped because document visibility state is hidden."===e.message||"Skipping view transition because document visibility state has become hidden."===e.message||"Skipping view transition because viewport size changed."===e.message||"Transition was aborted because of invalid state"===e.message)&&(e=null),null!==e&&s(e)}finally{r(),a(),i()}}),c.finished.finally(function(){for(var e=0;e<d.length;e++)d[e].cancel();u.__reactViewTransition===c&&(u.__reactViewTransition=null),l()}),c}catch(e){return r(),a(),i(),null}}(i,e.containerInfo,un,uN,uP,uC,uO,uR,uA):(uN(),uP(),uO())}(e,t,n,i,s,u,f)}}function uA(e){0!==s4&&(0,s3.onRecoverableError)(e,{componentStack:null})}function uC(){3===s4&&(s4=0,sy(s6,s3),s4=4)}function uN(){if(1===s4){s4=0;var e=s3,t=s6,n=s8,r=0!=(13878&t.flags);if(0!=(13878&t.subtreeFlags)||r){r=G.T,G.T=null;var a=W.p;W.p=2;var o=sI;sI|=4;try{l7=se=!1,sm(t,e,n),n=cb;var i=nK(e.containerInfo),l=n.focusedElem,s=n.selectionRange;if(i!==l&&l&&l.ownerDocument&&function e(t,n){return!!t&&!!n&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(l.ownerDocument.documentElement,l)){if(null!==s&&nQ(l)){var u=s.start,c=s.end;if(void 0===c&&(c=u),"selectionStart"in l)l.selectionStart=u,l.selectionEnd=Math.min(c,l.value.length);else{var d=l.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=l.textContent.length,g=Math.min(s.start,m),h=void 0===s.end?g:Math.min(s.end,m);!p.extend&&g>h&&(i=h,h=g,g=i);var y=nY(l,g),b=nY(l,h);if(y&&b&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==b.node||p.focusOffset!==b.offset)){var v=d.createRange();v.setStart(y.node,y.offset),p.removeAllRanges(),g>h?(p.addRange(v),p.extend(b.node,b.offset)):(v.setEnd(b.node,b.offset),p.addRange(v))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof l.focus&&l.focus(),l=0;l<d.length;l++){var w=d[l];w.element.scrollLeft=w.left,w.element.scrollTop=w.top}}dX=!!cy,cb=cy=null}finally{sI=o,W.p=a,G.T=r}}e.current=t,s4=2}}function uP(){if(2===s4){s4=0;var e=s3,t=s6,n=0!=(8772&t.flags);if(0!=(8772&t.subtreeFlags)||n){n=G.T,G.T=null;var r=W.p;W.p=2;var a=sI;sI|=4;try{sr(e,t.alternate,t)}finally{sI=a,W.p=r,G.T=n}}s4=3}}function uO(){if(4===s4||3===s4){s4=0;var e=ue;ue=null,ey();var t=s3,n=s6,r=s8,a=s7,o=(0x13ffff00&r)===r?10262:10256;if(0!=(n.subtreeFlags&o)||0!=(n.flags&o)?s4=5:(s4=0,s6=s3=null,uL(t,t.pendingLanes)),0===(o=t.pendingLanes)&&(s2=null),eG(r),n=n.stateNode,eC&&"function"==typeof eC.onCommitFiberRoot)try{eC.onCommitFiberRoot(eA,n,void 0,128==(128&n.current.flags))}catch(e){}if(null!==a){n=G.T,o=W.p,W.p=2,G.T=null;try{for(var i=t.onRecoverableError,l=0;l<a.length;l++){var s=a[l];i(s.value,{componentStack:s.stack})}}finally{G.T=n,W.p=o}}if(a=ut,i=un,un=null,null!==a&&(ut=null,null===i&&(i=[]),null!==e))for(s=0;s<a.length;s++)void 0!==(n=(0,a[s])(i))&&e.finished.finally(n);0!=(3&s8)&&uI(),uW(t),o=t.pendingLanes,0!=(261930&r)&&0!=(42&o)?t===ua?ur++:(ur=0,ua=t):(ur=0,ua=null),uY(0,!1)}}function uL(e,t){0==(e.pooledCacheLanes&=t)&&null!=(t=e.pooledCache)&&(e.pooledCache=null,ay(t))}function uI(){return null!==ue&&(ue.skipTransition(),ue=null),uN(),uP(),uO(),uR()}function uR(){if(5!==s4)return!1;var e=s3,t=s5;s5=0;var n=eG(s8),r=G.T,a=W.p;try{W.p=32>n?32:n,G.T=null,n=s9,s9=null;var o=s3,i=s8;if(s4=0,s6=s3=null,s8=0,0!=(6&sI))throw Error(l(331));var s=sI;if(sI|=4,sN(o.current),sk(o,o.current,i,n),sI=s,uY(0,!1),eC&&"function"==typeof eC.onPostCommitFiberRoot)try{eC.onPostCommitFiberRoot(eA,o)}catch(e){}return!0}finally{W.p=a,G.T=r,uL(e,t)}}function uj(e,t,n){t=rj(n,t),t=iX(e.stateNode,t,2),null!==(e=aZ(e,t,2))&&(e$(e,2),uW(e))}function uD(e,t,n){if(3===e.tag)uj(e,e,n);else for(;null!==t;){if(3===t.tag){uj(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===s2||!s2.has(r))){e=rj(n,e),null!==(r=aZ(t,n=iG(2),2))&&(iW(n,r,t,e),e$(r,2),uW(r));break}}t=t.return}}function uF(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new sL;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(sU=!0,a.add(n),e=uM.bind(null,e,t,n),t.then(e,e))}function uM(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,sR===e&&(sD&n)===n&&((4===sq||3===sq&&(0x3c00000&sD)===sD&&300>eb()-sZ)&&0==(2&sI)?um(e,0):sX|=n,sW===sD&&(sW=0)),uW(e)}function uz(e,t){0===t&&(t=eB()),null!==(e=rw(e,t))&&(e$(e,t),uW(e))}function uB(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),uz(e,n)}function uU(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(t),uz(e,n)}var u$=null,uq=null,uH=!1,uV=!1,uX=!1,uG=0;function uW(e){e!==uq&&null===e.next&&(null===uq?u$=uq=e:uq=uq.next=e),uV=!0,uH||(uH=!0,cN(function(){0!=(6&sI)?em(ew,uK):uQ()}))}function uY(e,t){if(!uX&&uV){uX=!0;do for(var n=!1,r=u$;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var o=0;else{var i=r.suspendedLanes,l=r.pingedLanes;o=0xc000095&(o=(1<<31-eP(42|e)+1)-1&(a&~(i&~l)))?0xc000095&o|1:o?2|o:0}0!==o&&(n=!0,u0(r,o))}else o=sD,0==(3&(o=eF(r,r===sR?o:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eM(r,o)||(n=!0,u0(r,o));r=r.next}while(n)uX=!1}}function uK(){uQ()}function uQ(){uV=uH=!1;var e,t=0;0===uG||((e=window.event)&&"popstate"===e.type?e===cE||(cE=e,0):(cE=null,1))||(t=uG);for(var n=eb(),r=null,a=u$;null!==a;){var o=a.next,i=uZ(a,n);0===i?(a.next=null,null===r?u$=o:r.next=o,null===o&&(uq=r)):(r=a,(0!==t||0!=(3&i))&&(uV=!0)),a=o}0!==s4&&5!==s4||uY(t,!1),0!==uG&&(uG=0)}function uZ(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=-0x3c00001&e.pendingLanes;0<o;){var i=31-eP(o),l=1<<i,s=a[i];-1===s?(0==(l&n)||0!=(l&r))&&(a[i]=function(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return -1}}(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}if(t=sR,n=sD,n=eF(e,e===t?n:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===n||e===t&&(2===sF||9===sF)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&eg(r),e.callbackNode=null,e.callbackPriority=0;if(0==(3&n)||eM(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==r&&eg(r),eG(n)){case 2:case 8:n=eS;break;case 32:default:n=ek;break;case 0x10000000:n=eE}return n=em(n,r=uJ.bind(null,e)),e.callbackPriority=t,e.callbackNode=n,t}return null!==r&&null!==r&&eg(r),e.callbackPriority=2,e.callbackNode=null,2}function uJ(e,t){if(0!==s4&&5!==s4)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(uI()&&e.callbackNode!==n)return null;var r=sD;return 0===(r=eF(e,e===sR?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(uu(e,r,t),uZ(e,eb()),null!=e.callbackNode&&e.callbackNode===n?uJ.bind(null,e):null)}function u0(e,t){if(uI())return null;uu(e,t,!0)}function u1(){if(0===uG){var e=ak;0===e&&(e=eI,0==(261888&(eI<<=1))&&(eI=256)),uG=e}return uG}function u2(e){return null==e||"symbol"==typeof e||"boolean"==typeof e?null:"function"==typeof e?e:tR(e)}for(var u4=0;u4<rl.length;u4++){var u3=rl[u4];rs(u3.toLowerCase(),"on"+(u3[0].toUpperCase()+u3.slice(1)))}rs(n7,"onAnimationEnd"),rs(re,"onAnimationIteration"),rs(rt,"onAnimationStart"),rs("dblclick","onDoubleClick"),rs("focusin","onFocus"),rs("focusout","onBlur"),rs(rn,"onTransitionRun"),rs(rr,"onTransitionStart"),rs(ra,"onTransitionCancel"),rs(ro,"onTransitionEnd"),ti("onMouseEnter",["mouseout","mouseover"]),ti("onMouseLeave",["mouseout","mouseover"]),ti("onPointerEnter",["pointerout","pointerover"]),ti("onPointerLeave",["pointerout","pointerover"]),to("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),to("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),to("onBeforeInput",["compositionend","keypress","textInput","paste"]),to("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),to("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),to("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var u6="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),u8=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(u6));function u5(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=u;try{o(a)}catch(e){rp(e)}a.currentTarget=null,o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;o=l,a.currentTarget=u;try{o(a)}catch(e){rp(e)}a.currentTarget=null,o=s}}}}function u9(e,t){var n=t[e0];void 0===n&&(n=t[e0]=new Set);var r=e+"__bubble";n.has(r)||(cn(t,e,2,!1),n.add(r))}function u7(e,t,n){var r=0;t&&(r|=4),cn(n,e,r,t)}var ce="_reactListening"+Math.random().toString(36).slice(2);function ct(e){if(!e[ce]){e[ce]=!0,tr.forEach(function(t){"selectionchange"!==t&&(u8.has(t)||u7(t,!1,e),u7(t,!0,e))});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[ce]||(t[ce]=!0,u7("selectionchange",!1,t))}}function cn(e,t,n,r){switch(dJ(t)){case 2:var a=dG;break;case 8:a=dW;break;default:a=dY}n=a.bind(null,t,n,e),a=void 0,tV&&("touchstart"===t||"touchmove"===t||"wheel"===t)&&(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function cr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&i.stateNode.containerInfo===a)return;i=i.return}for(;null!==l;){if(null===(i=e5(l)))return;if(5===(s=i.tag)||6===s||26===s||27===s){r=o=i;continue e}l=l.parentNode}}r=r.return}t$(function(){var r=o,a=tF(n),i=[];e:{var l=ri.get(e);if(void 0!==l){var s=t5,c=e;switch(e){case"keypress":if(0===tQ(n))break e;case"keydown":case"keyup":s=nf;break;case"focusin":c="focus",s=nr;break;case"focusout":c="blur",s=nr;break;case"beforeblur":case"afterblur":s=nr;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=nt;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=nn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=ng;break;case n7:case re:case rt:s=na;break;case ro:s=nh;break;case"scroll":case"scrollend":s=t7;break;case"wheel":s=ny;break;case"copy":case"cut":case"paste":s=no;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=np;break;case"submit":s=nm;break;case"toggle":case"beforetoggle":s=nb}var d=0!=(4&t),f=!d&&("scroll"===e||"scrollend"===e),p=d?null!==l?l+"Capture":null:l;d=[];for(var m,g=r;null!==g;){var h=g;if(m=h.stateNode,5!==(h=h.tag)&&26!==h&&27!==h||null===m||null===p||null!=(h=tq(g,p))&&d.push(ca(g,h,m)),f)break;g=g.return}0<d.length&&(l=new s(l,c,null,n,a),i.push({event:l,listeners:d}))}}if(0==(7&t)){s="mouseover"===e||"pointerover"===e,l="mouseout"===e||"pointerout"===e,!(s&&n!==tD&&(c=n.relatedTarget||n.fromElement)&&(e5(c)||c[eJ]))&&(l||s)&&(c=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(s=n.relatedTarget||n.toElement,l=r,null!==(s=s?e5(s):null)&&(f=u(s),d=s.tag,s!==f||5!==d&&27!==d&&6!==d)&&(s=null)):(l=null,s=r),l!==s&&(d=nt,h="onMouseLeave",p="onMouseEnter",g="mouse",("pointerout"===e||"pointerover"===e)&&(d=np,h="onPointerLeave",p="onPointerEnter",g="pointer"),f=null==l?c:e7(l),m=null==s?c:e7(s),(c=new d(h,g+"leave",l,n,a)).target=f,c.relatedTarget=m,h=null,e5(a)===r&&((d=new d(p,g+"enter",s,n,a)).target=m,d.relatedTarget=f,h=d),f=h,d=l&&s?x(l,s,ci):null,null!==l&&cl(i,c,l,d,!1),null!==s&&null!==f&&cl(i,f,s,d,!0)));e:{if("select"===(s=(l=r?e7(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var y,b=nj;else if(nN(l))if(nD)b=nH;else{b=n$;var v=nU}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)?b=nq:r&&tO(r.elementType)&&(b=nj);if(b&&(b=b(e,r))){nP(i,b,n,a);break e}v&&v(e,l,r)}switch(v=r?e7(r):window,e){case"focusin":(nN(v)||"true"===v.contentEditable)&&(nJ=v,n0=r,n1=null);break;case"focusout":n1=n0=nJ=null;break;case"mousedown":n2=!0;break;case"contextmenu":case"mouseup":case"dragend":n2=!1,n4(i,n,a);break;case"selectionchange":if(nZ)break;case"keydown":case"keyup":n4(i,n,a)}if(nw)t:{switch(e){case"compositionstart":var w="onCompositionStart";break t;case"compositionend":w="onCompositionEnd";break t;case"compositionupdate":w="onCompositionUpdate";break t}w=void 0}else nA?nT(e,n)&&(w="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(w="onCompositionStart");w&&(nx&&"ko"!==n.locale&&(nA||"onCompositionStart"!==w?"onCompositionEnd"===w&&nA&&(y=tK()):(tW="value"in(tG=a)?tG.value:tG.textContent,nA=!0)),0<(v=co(r,w)).length&&(w=new ni(w,e,null,n,a),i.push({event:w,listeners:v}),y?w.data=y:null!==(y=n_(n))&&(w.data=y))),(y=nk?function(e,t){switch(e){case"compositionend":return n_(t);case"keypress":if(32!==t.which)return null;return nE=!0," ";case"textInput":return" "===(e=t.data)&&nE?null:e;default:return null}}(e,n):function(e,t){if(nA)return"compositionend"===e||!nw&&nT(e,t)?(e=tK(),tY=tW=tG=null,nA=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return nx&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(w=co(r,"onBeforeInput")).length&&(v=new ni("onBeforeInput","beforeinput",null,n,a),i.push({event:v,listeners:w}),v.data=y);var S=e;if("submit"===S&&r&&r.stateNode===a){var k=u2((a[eZ]||null).action),E=n.submitter;E&&null!==(S=(S=E[eZ]||null)?u2(S.formAction):E.getAttribute("formAction"))&&(k=S,E=null);var T=new t5("action","action",null,n,a);i.push({event:T,listeners:[{instance:null,listener:function(){if(n.defaultPrevented){if(0!==uG){var e=new FormData(a,E);ib(r,{pending:!0,data:e,method:a.method,action:k},null,e)}}else"function"==typeof k&&(T.preventDefault(),ib(r,{pending:!0,data:e=new FormData(a,E),method:a.method,action:k},k,e))},currentTarget:a}]})}}u5(i,t)})}function ca(e,t,n){return{instance:e,listener:t,currentTarget:n}}function co(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;if(5!==(a=a.tag)&&26!==a&&27!==a||null===o||(null!=(a=tq(e,n))&&r.unshift(ca(e,a,o)),null!=(a=tq(e,t))&&r.push(ca(e,a,o))),3===e.tag)return r;e=e.return}return[]}function ci(e){if(null===e)return null;do e=e.return;while(e&&5!==e.tag&&27!==e.tag)return e||null}function cl(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(l=l.tag,null!==s&&s===r)break;5!==l&&26!==l&&27!==l||null===u||(s=u,a?null!=(u=tq(n,o))&&i.unshift(ca(n,u,s)):a||null!=(u=tq(n,o))&&i.push(ca(n,u,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var cs=/\r\n?/g,cu=/\u0000|\uFFFD/g;function cc(e){return("string"==typeof e?e:""+e).replace(cs,"\n").replace(cu,"")}function cd(e,t){return t=cc(t),cc(e)===t}function cf(e,t,n,r,a,o){switch(n){case"children":if("string"==typeof r)"body"===t||"textarea"===t&&""===r||tA(e,r);else{if("number"!=typeof r&&"bigint"!=typeof r)return;"body"!==t&&tA(e,""+r)}break;case"className":tp(e,"class",r);break;case"tabIndex":tp(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":tp(e,n,r);break;case"style":tP(e,r,o);return;case"data":if("object"!==t){tp(e,"data",r);break}case"src":case"href":if(""===r&&("a"!==t||"href"!==n)||null==r||"function"==typeof r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=tR(r),e.setAttribute(n,r);break;case"action":case"formAction":if("function"==typeof r){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}if("function"==typeof o&&("formAction"===n?("input"!==t&&cf(e,t,"name",a.name,a,null),cf(e,t,"formEncType",a.formEncType,a,null),cf(e,t,"formMethod",a.formMethod,a,null),cf(e,t,"formTarget",a.formTarget,a,null)):(cf(e,t,"encType",a.encType,a,null),cf(e,t,"method",a.method,a,null),cf(e,t,"target",a.target,a,null))),null==r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=tR(r),e.setAttribute(n,r);break;case"onClick":null!=r&&(e.onclick=tj);return;case"onScroll":null!=r&&u9("scroll",e);return;case"onScrollEnd":null!=r&&u9("scrollend",e);return;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(l(60));(null!=o?o.__html:void 0)!==n&&(e.innerHTML=n)}}break;case"multiple":e.multiple=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"muted":e.muted=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":case"autoFocus":break;case"xlinkHref":if(null==r||"function"==typeof r||"boolean"==typeof r||"symbol"==typeof r){e.removeAttribute("xlink:href");break}n=tR(r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":!0===r?e.setAttribute(n,""):!1!==r&&null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":null!=r&&"function"!=typeof r&&"symbol"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case"rowSpan":case"start":null==r||"function"==typeof r||"symbol"==typeof r||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case"popover":u9("beforetoggle",e),u9("toggle",e),tf(e,"popover",r);break;case"xlinkActuate":tm(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":tm(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":tm(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":tm(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":tm(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":tm(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":tm(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":tm(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":tm(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":tf(e,"is",r);break;case"innerText":case"textContent":return;default:if(2<n.length&&("o"===n[0]||"O"===n[0])&&("n"===n[1]||"N"===n[1]))return;tf(e,n=tL.get(n)||n,r)}tc=!0}function cp(e,t,n,r,a,o){switch(n){case"style":tP(e,r,o);return;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(l(60));(null!=o?o.__html:void 0)!==n&&(e.innerHTML=n)}}break;case"children":if("string"==typeof r)tA(e,r);else{if("number"!=typeof r&&"bigint"!=typeof r)return;tA(e,""+r)}break;case"onScroll":null!=r&&u9("scroll",e);return;case"onScrollEnd":null!=r&&u9("scrollend",e);return;case"onClick":null!=r&&(e.onclick=tj);return;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":case"innerText":case"textContent":return;default:if(!ta.hasOwnProperty(n))e:{if("o"===n[0]&&"n"===n[1]&&(a=n.endsWith("Capture"),o=n.slice(2,a?n.length-7:void 0),"function"==typeof(t=null!=(t=e[eZ]||null)?t[n]:null)&&e.removeEventListener(o,t,a),"function"==typeof r)){"function"!=typeof t&&null!==t&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(o,r,a);break e}tc=!0,n in e?e[n]=r:!0===r?e.setAttribute(n,""):tf(e,n,r)}return}tc=!0}function cm(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":u9("error",e),u9("load",e);var r,a=!1,o=!1;for(r in n)if(n.hasOwnProperty(r)){var i=n[r];if(null!=i)switch(r){case"src":a=!0;break;case"srcSet":o=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(l(137,t));default:cf(e,t,r,i,n,null)}}o&&cf(e,t,"srcSet",n.srcSet,n,null),a&&cf(e,t,"src",n.src,n,null);return;case"input":u9("invalid",e);var s=r=i=o=null,u=null,c=null;for(a in n)if(n.hasOwnProperty(a)){var d=n[a];if(null!=d)switch(a){case"name":o=d;break;case"type":i=d;break;case"checked":u=d;break;case"defaultChecked":c=d;break;case"value":r=d;break;case"defaultValue":s=d;break;case"children":case"dangerouslySetInnerHTML":if(null!=d)throw Error(l(137,t));break;default:cf(e,t,a,d,n,null)}}tk(e,r,s,u,c,i,o,!1);return;case"select":for(o in u9("invalid",e),a=i=r=null,n)if(n.hasOwnProperty(o)&&null!=(s=n[o]))switch(o){case"value":r=s;break;case"defaultValue":i=s;break;case"multiple":a=s;default:cf(e,t,o,s,n,null)}t=r,n=i,e.multiple=!!a,null!=t?tE(e,!!a,t,!1):null!=n&&tE(e,!!a,n,!0);return;case"textarea":for(i in u9("invalid",e),r=o=a=null,n)if(n.hasOwnProperty(i)&&null!=(s=n[i]))switch(i){case"value":a=s;break;case"defaultValue":o=s;break;case"children":r=s;break;case"dangerouslySetInnerHTML":if(null!=s)throw Error(l(91));break;default:cf(e,t,i,s,n,null)}t_(e,a,o,r);return;case"option":for(u in n)n.hasOwnProperty(u)&&null!=(a=n[u])&&("selected"===u?e.selected=a&&"function"!=typeof a&&"symbol"!=typeof a:cf(e,t,u,a,n,null));return;case"dialog":u9("beforetoggle",e),u9("toggle",e),u9("cancel",e),u9("close",e);break;case"iframe":case"object":u9("load",e);break;case"video":case"audio":for(a=0;a<u6.length;a++)u9(u6[a],e);break;case"image":u9("error",e),u9("load",e);break;case"details":u9("toggle",e);break;case"embed":case"source":case"link":u9("error",e),u9("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(c in n)if(n.hasOwnProperty(c)&&null!=(a=n[c]))switch(c){case"children":case"dangerouslySetInnerHTML":throw Error(l(137,t));default:cf(e,t,c,a,n,null)}return;default:if(tO(t)){for(d in n)n.hasOwnProperty(d)&&void 0!==(a=n[d])&&cp(e,t,d,a,n,void 0);return}}for(s in n)n.hasOwnProperty(s)&&null!=(a=n[s])&&cf(e,t,s,a,n,null)}var cg={};function ch(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}var cy=null,cb=null;function cv(e){return 9===e.nodeType?e:e.ownerDocument}function cw(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function cS(e,t){if(0===e)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return 1===e&&"foreignObject"===t?0:e}function ck(e,t,n,r){return(n=cv(n).createElement(e))[eQ]=r,n[eZ]=t,cm(n,e,t),tt(n),n}function cx(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"bigint"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var cE=null,cT="function"==typeof setTimeout?setTimeout:void 0,c_="function"==typeof clearTimeout?clearTimeout:void 0,cA="function"==typeof Promise?Promise:void 0,cC="function"==typeof requestAnimationFrame?requestAnimationFrame:cT,cN="function"==typeof queueMicrotask?queueMicrotask:void 0!==cA?function(e){return cA.resolve(null).then(e).catch(cP)}:cT;function cP(e){setTimeout(function(){throw e})}function cO(e){return"head"===e}function cL(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)||"/&"===n){if(0===r){e.removeChild(a),fl(t);return}r--}else if("$"===n||"$?"===n||"$~"===n||"$!"===n||"&"===n)r++;else if("html"===n)dl(e.ownerDocument.documentElement);else if("head"===n){dl(n=e.ownerDocument.head);for(var o=n.firstChild;o;){var i=o.nextSibling,l=o.nodeName;o[e3]||"SCRIPT"===l||"STYLE"===l||"LINK"===l&&"stylesheet"===o.rel.toLowerCase()||n.removeChild(o),o=i}}else"body"===n&&dl(e.ownerDocument.body);n=a}while(n)fl(t)}function cI(e,t){var n=e;e=0;do{var r=n.nextSibling;if(1===n.nodeType?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",""===n.getAttribute("style")&&n.removeAttribute("style")):3===n.nodeType&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),r&&8===r.nodeType)if("/$"===(n=r.data))if(0===e)break;else e--;else"$"!==n&&"$?"!==n&&"$~"!==n&&"$!"!==n||e++;n=r}while(n)}function cR(e,t,n){if(t=CSS.escape(t)!==t?"r-"+btoa(t).replace(/=/g,""):t,e.style.viewTransitionName=t,null!=n&&(e.style.viewTransitionClass=n),"inline"===(n=getComputedStyle(e)).display){if(1===(t=e.getClientRects()).length)var r=1;else for(var a=r=0;a<t.length;a++){var o=t[a];0<o.width&&0<o.height&&r++}1===r&&((e=e.style).display=1===t.length?"inline-block":"block",e.marginTop="-"+n.paddingTop,e.marginBottom="-"+n.paddingBottom)}}function cj(e,t){e=e.style;var n=null!=(t=t.style)?t.hasOwnProperty("viewTransitionName")?t.viewTransitionName:t.hasOwnProperty("view-transition-name")?t["view-transition-name"]:null:null;e.viewTransitionName=null==n||"boolean"==typeof n?"":(""+n).trim(),n=null!=t?t.hasOwnProperty("viewTransitionClass")?t.viewTransitionClass:t.hasOwnProperty("view-transition-class")?t["view-transition-class"]:null:null,e.viewTransitionClass=null==n||"boolean"==typeof n?"":(""+n).trim(),"inline-block"===e.display&&(null==t?e.display=e.margin="":(n=t.display,e.display=null==n||"boolean"==typeof n?"":n,null!=(n=t.margin)?e.margin=n:(n=t.hasOwnProperty("marginTop")?t.marginTop:t["margin-top"],e.marginTop=null==n||"boolean"==typeof n?"":n,t=t.hasOwnProperty("marginBottom")?t.marginBottom:t["margin-bottom"],e.marginBottom=null==t||"boolean"==typeof t?"":t)))}function cD(e,t,n){return n=n.ownerDocument.defaultView,{rect:e,abs:"absolute"===t.position||"fixed"===t.position,clip:"none"!==t.clipPath||"visible"!==t.overflow||"none"!==t.filter||"none"!==t.mask||"none"!==t.mask||"0px"!==t.borderRadius,view:0<=e.bottom&&0<=e.right&&e.top<=n.innerHeight&&e.left<=n.innerWidth}}function cF(e){return cD(e.getBoundingClientRect(),getComputedStyle(e),e)}function cM(e){var t=e.getBoundingClientRect();return cD(t=new DOMRect(t.x+2e4,t.y+2e4,t.width,t.height),getComputedStyle(e),e)}function cz(e){this.addEventListener("load",e),this.addEventListener("error",e)}function cB(e,t){this._scope=document.documentElement,this._selector="::view-transition-"+e+"("+t+")"}function cU(e){return{name:e,group:new cB("group",e),imagePair:new cB("image-pair",e),old:new cB("old",e),new:new cB("new",e)}}function c$(e){this._fragmentFiber=e,this._observers=this._eventListeners=null}function cq(e,t,n,r){return y(e).addEventListener(t,n,r),!1}function cH(e,t,n,r){return y(e).removeEventListener(t,n,r),!1}function cV(e){return null!=e&&"boolean"!=typeof e&&(!0===e.once||e.signal instanceof AbortSignal)?{capture:e.capture,passive:e.passive}:e}function cX(e){return null==e?"c=0":"boolean"==typeof e?"c="+(e?"1":"0"):"c="+(e.capture?"1":"0")}function cG(e,t,n,r){if(0===e.length)return -1;r=cX(r);for(var a=0;a<e.length;a++){var o=e[a];if(o.type===t&&o.listener===n&&cX(o.optionsOrUseCapture)===r)return a}return -1}function cW(e,t){return 6!==e.tag&&function(e,t){function n(){r=!0}if(e.ownerDocument.activeElement===e)return!0;var r=!1;try{e.ownerDocument.addEventListener("focus",n,!0),(e.focus||HTMLElement.prototype.focus).call(e,t)}finally{e.ownerDocument.removeEventListener("focus",n,!0)}return r}(e=y(e),t)}function cY(e,t){return t.push(e),!1}function cK(e,t){return 6!==e.tag&&!!((e=y(e))===t||e.contains(t))&&(t.blur(),!0)}function cQ(e,t){return 6!==e.tag&&(e=y(e),t.observe(e),!1)}function cZ(e,t){return 6!==e.tag&&(e=y(e),t.unobserve(e),!1)}cB.prototype.animate=function(e,t){return(t="number"==typeof t?{duration:t}:E({},t)).pseudoElement=this._selector,this._scope.animate(e,t)},cB.prototype.getAnimations=function(){for(var e=this._scope,t=this._selector,n=e.getAnimations({subtree:!0}),r=[],a=0;a<n.length;a++){var o=n[a].effect;null!==o&&o.target===e&&o.pseudoElement===t&&r.push(n[a])}return r},cB.prototype.getComputedStyle=function(){return getComputedStyle(this._scope,this._selector)},c$.prototype.addEventListener=function(e,t,n){var r=null,a=null;if(null==n||"boolean"==typeof n||null===(r=n.signal||null)||!r.aborted){null===this._eventListeners&&(this._eventListeners=[]);var o=this._eventListeners;if(-1===cG(o,e,t,n)){var i=this,l=t;null!=n&&"boolean"!=typeof n&&!0===n.once&&(l=function(r){i.removeEventListener(e,t,n),"function"==typeof t?t.call(this,r):t.handleEvent(r)}),null!==r&&(a=i.removeEventListener.bind(i,e,t,n),r.addEventListener("abort",a,{once:!0}),a=r.removeEventListener.bind(r,"abort",a)),r=cV(n),o.push({type:e,listener:t,optionsOrUseCapture:n,attachedListener:l,cleanup:a}),p(this._fragmentFiber.child,!1,cq,e,l,r)}this._eventListeners=o}},c$.prototype.removeEventListener=function(e,t,n){var r=this._eventListeners;if(null!==r&&-1!==(t=cG(r,e,t,n))){var a=r[t];n=a.attachedListener;var o=a.cleanup;a=cV(a.optionsOrUseCapture),p(this._fragmentFiber.child,!1,cH,e,n,a),r.splice(t,1),null!==o&&o()}},c$.prototype.dispatchEvent=function(e){var t=m(this._fragmentFiber);if(null===t)return!0;t=y(t);var n=this._eventListeners;if(null!==n&&0<n.length||!e.bubbles){var r=9===t.nodeType?t.createComment(""):document.createTextNode("");if(n)for(var a=0;a<n.length;a++){var o=n[a];r.addEventListener(o.type,o.attachedListener,cV(o.optionsOrUseCapture))}if(t.appendChild(r),e=r.dispatchEvent(e),n)for(a=0;a<n.length;a++)o=n[a],r.removeEventListener(o.type,o.attachedListener,cV(o.optionsOrUseCapture));return t.removeChild(r),e}return t.dispatchEvent(e)},c$.prototype.focus=function(e){p(this._fragmentFiber.child,!0,cW,e,void 0,void 0)},c$.prototype.focusLast=function(e){var t=[];p(this._fragmentFiber.child,!0,cY,t,void 0,void 0);for(var n=t.length-1;0<=n&&!cW(t[n],e);n--);},c$.prototype.blur=function(){var e=m(this._fragmentFiber);null!==e&&null!==(e=cv(e=y(e)).activeElement)&&p(this._fragmentFiber.child,!1,cK,e,void 0,void 0)},c$.prototype.observeUsing=function(e){null===this._observers&&(this._observers=new Set),this._observers.add(e),p(this._fragmentFiber.child,!1,cQ,e,void 0,void 0)},c$.prototype.unobserveUsing=function(e){var t=this._observers;if(null!==t&&t.has(e)){t.delete(e),p(this._fragmentFiber.child,!1,cZ,e,void 0,void 0);for(var n=t=0;n<cJ.length;n++){var r=cJ[n];r.fragmentInstance===this&&r.observer===e?e.unobserve(r.instance):cJ[t++]=r}cJ.length=t}};var cJ=[],c0=!1;function c1(e,t){if(6===e.tag){var n=(e=e.stateNode).ownerDocument.createRange();n.selectNodeContents(e),t.push.apply(t,n.getClientRects())}else e=y(e),t.push.apply(t,e.getClientRects());return!1}function c2(e,t){var n=e.ownerDocument.createRange();n.selectNodeContents(e),e=n.getBoundingClientRect(),window.scrollTo(window.scrollX+e.left,t?window.scrollY+e.top:window.scrollY+e.bottom-window.innerHeight)}function c4(e,t){return c3(e=y(e),t),!1}function c3(e,t){null==e.reactFragments&&(e.reactFragments=new Set),e.reactFragments.add(t)}function c6(e,t){var n=t._eventListeners;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];e.addEventListener(a.type,a.attachedListener,cV(a.optionsOrUseCapture))}3!==e.nodeType&&(null!==(n=t._observers)&&n.forEach(function(n){for(var r=0,a=0;a<cJ.length;a++){var o=cJ[a];(o.fragmentInstance!==t||o.observer!==n||o.instance!==e)&&(cJ[r++]=o)}cJ.length=r,n.observe(e)}),c3(e,t))}function c8(e){var t=e.firstChild;for(t&&10===t.nodeType&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":c8(n),e8(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===n.rel.toLowerCase())continue}e.removeChild(n)}}function c5(e,t){for(;8!==e.nodeType;)if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!t||null===(e=de(e.nextSibling)))return null;return e}function c9(e){return"$?"===e.data||"$~"===e.data}function c7(e){return"$!"===e.data||"$?"===e.data&&"loading"!==e.ownerDocument.readyState}function de(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t||"$~"===t||"&"===t||"F!"===t||"F"===t)break;if("/$"===t||"/&"===t)return null}}return e}c$.prototype.getClientRects=function(){var e=[];return p(this._fragmentFiber.child,!1,c1,e,void 0,void 0),e},c$.prototype.getRootNode=function(e){var t=m(this._fragmentFiber);return null===t?this:y(t).getRootNode(e)},c$.prototype.compareDocumentPosition=function(e){var t=m(this._fragmentFiber);if(null===t)return Node.DOCUMENT_POSITION_DISCONNECTED;var n=[];p(this._fragmentFiber.child,!1,cY,n,void 0,void 0);var r=y(t);if(0===n.length){if(n=r,g(this._fragmentFiber)){e:{for(t=this._fragmentFiber.return;null!==t;){if(4===t.tag){t=t.stateNode.containerInfo;break e}if(3===t.tag||5===t.tag||27===t.tag)break;t=t.return}t=null}null!=t&&(n=t)}t=this._fragmentFiber;var a=r=n.compareDocumentPosition(e);return n===e?a=Node.DOCUMENT_POSITION_CONTAINS:r&Node.DOCUMENT_POSITION_CONTAINED_BY&&(a=null===(n=h(t)[1])?Node.DOCUMENT_POSITION_PRECEDING:0===(e=y(n).compareDocumentPosition(e))||e&Node.DOCUMENT_POSITION_FOLLOWING?Node.DOCUMENT_POSITION_FOLLOWING:Node.DOCUMENT_POSITION_PRECEDING),a|Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC}t=y(n[0]),a=y(n[n.length-1]);var o=g(this._fragmentFiber)?t.parentElement:r;if(null==o)return Node.DOCUMENT_POSITION_DISCONNECTED;r=o.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY,o=o.compareDocumentPosition(a)&Node.DOCUMENT_POSITION_CONTAINED_BY;var i=t.compareDocumentPosition(e),l=a.compareDocumentPosition(e),s=i&Node.DOCUMENT_POSITION_CONTAINED_BY||l&Node.DOCUMENT_POSITION_CONTAINED_BY;return l=r&&o&&i&Node.DOCUMENT_POSITION_FOLLOWING&&l&Node.DOCUMENT_POSITION_PRECEDING,(t=r&&t===e||o&&a===e||s||l?Node.DOCUMENT_POSITION_CONTAINED_BY:(r||t!==e)&&(o||a!==e)?i:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC)&Node.DOCUMENT_POSITION_DISCONNECTED||t&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC||function(e,t,n,r,a){var o=e5(a);if(e&Node.DOCUMENT_POSITION_CONTAINED_BY){if(n=!!o)e:{for(;null!==o;){if(7===o.tag&&(o===t||o.alternate===t)){n=!0;break e}o=o.return}n=!1}return n}if(e&Node.DOCUMENT_POSITION_CONTAINS){if(null===o)return o=a.ownerDocument,a===o||a===o.documentElement||a===o.body;e:{for(o=t,t=m(t);null!==o;){if((5===o.tag||3===o.tag||27===o.tag)&&(o===t||o.alternate===t)){o=!0;break e}o=o.return}o=!1}return o}return e&Node.DOCUMENT_POSITION_PRECEDING?((t=!!o)&&!(t=o===n)&&(null===(t=x(n,o,k))?t=!1:(p(t,!0,w,o,n),o=b,b=null,t=null!==o)),t):!!(e&Node.DOCUMENT_POSITION_FOLLOWING)&&((t=!!o)&&!(t=o===r)&&(null===(t=x(r,o,k))?t=!1:(p(t,!0,S,o,r),o=b,v=b=null,t=null!==o)),t)}(t,this._fragmentFiber,n[0],n[n.length-1],e)?t:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC},c$.prototype.scrollIntoView=function(e){if("object"==typeof e)throw Error(l(566));var t=[];p(this._fragmentFiber.child,!1,cY,t,void 0,void 0);var n=!1!==e;if(0===t.length){var r=h(this._fragmentFiber);if(null===(r=n?r[1]||r[0]||m(this._fragmentFiber):r[0]||r[1]))return;if(6===r.tag)return void c2(e=y(r),n);if(9!==(r=y(r)).nodeType){if(11===r.nodeType){null!==(n="host"in r?r.host:null)&&n.scrollIntoView(e);return}r.scrollIntoView(e)}}for(r=n?t.length-1:0;r!==(n?-1:t.length);){var a=t[r];6===a.tag?c2(a=y(a),n):y(a).scrollIntoView(e),r+=n?-1:1}};var dt=null;function dn(e){e=e.nextSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n||"/&"===n){if(0===t)return de(e.nextSibling);t--}else"$"!==n&&"$!"!==n&&"$?"!==n&&"$~"!==n&&"&"!==n||t++}e=e.nextSibling}return null}function dr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n||"$~"===n||"&"===n){if(0===t)return e;t--}else"/$"!==n&&"/&"!==n||t++}e=e.previousSibling}return null}function da(e,t,n){switch(t=cv(n),e){case"html":if(!(e=t.documentElement))throw Error(l(452));return e;case"head":if(!(e=t.head))throw Error(l(453));return e;case"body":if(!(e=t.body))throw Error(l(454));return e;default:throw Error(l(451))}}function di(e,t,n){for(var r in n){var a=n[r];n.hasOwnProperty(r)&&null!=a&&cf(e,t,r,null,cg,a)}null!=n.dangerouslySetInnerHTML&&(e.textContent=""),e.onclick===tj&&(e.onclick=null),e8(e)}function dl(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);e8(e)}var ds=new Map,du=new Set;function dc(e){if("function"==typeof e.getRootNode){var t=e.getRootNode();if(9===t.nodeType||11===t.nodeType)return t}return 9===e.nodeType?e:e.ownerDocument}var dd=W.d;W.d={f:function(){var e=dd.f(),t=uf();return e||t},r:function(e){var t=e9(e);null!==t&&5===t.tag&&"form"===t.type?iw(t):dd.r(e)},D:function(e){dd.D(e),dp("dns-prefetch",e,null)},C:function(e,t){dd.C(e,t),dp("preconnect",e,t)},L:function(e,t,n){if(dd.L(e,t,n),df&&e&&t){var r='link[rel="preload"][as="'+tw(t)+'"]';"image"===t&&n&&n.imageSrcSet?(r+='[imagesrcset="'+tw(n.imageSrcSet)+'"]',"string"==typeof n.imageSizes&&(r+='[imagesizes="'+tw(n.imageSizes)+'"]')):r+='[href="'+tw(e)+'"]';var a=r;switch(t){case"style":a=dg(e);break;case"script":a=db(e)}if(!(ds.has(a)||(e=E({rel:"preload",href:"image"===t&&n&&n.imageSrcSet?void 0:e,as:t},n),ds.set(a,e),null!==df.querySelector(r)||"style"===t&&df.querySelector(dh(a))||"script"===t&&df.querySelector(dv(a))))){var o=df.createElement("link");cm(o,"link",e),"style"===t&&(o[e6]=!0,o.onload=o.onerror=function(){tn(o)}),tt(o),df.head.appendChild(o)}}},m:function(e,t){if(dd.m(e,t),df&&e){var n=t&&"string"==typeof t.as?t.as:"script",r='link[rel="modulepreload"][as="'+tw(n)+'"][href="'+tw(e)+'"]',a=r;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=db(e)}if(!ds.has(a)&&(e=E({rel:"modulepreload",href:e},t),ds.set(a,e),null===df.querySelector(r))){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(df.querySelector(dv(a)))return}cm(n=df.createElement("link"),"link",e),tt(n),df.head.appendChild(n)}}},X:function(e,t){if(dd.X(e,t),df&&e){var n=te(df).hoistableScripts,r=db(e),a=n.get(r);a||((a=df.querySelector(dv(r)))||(e=E({src:e,async:!0},t),(t=ds.get(r))&&dx(e,t),tt(a=df.createElement("script")),cm(a,"link",e),df.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(r,a))}},S:function(e,t,n){if(dd.S(e,t,n),df&&e){var r=te(df).hoistableStyles,a=dg(e);t=t||"default";var o=r.get(a);if(!o){var i={loading:0,preload:null};if(o=df.querySelector(dh(a)))i.loading=5;else{e=E({rel:"stylesheet",href:e,"data-precedence":t},n),(n=ds.get(a))&&dk(e,n);var l=o=df.createElement("link");tt(l),cm(l,"link",e),l._p=new Promise(function(e,t){l.onload=e,l.onerror=t}),l.addEventListener("load",function(){i.loading|=1}),l.addEventListener("error",function(){i.loading|=2}),i.loading|=4,dS(o,t,df)}o={type:"stylesheet",instance:o,count:1,state:i},r.set(a,o)}}},M:function(e,t){if(dd.M(e,t),df&&e){var n=te(df).hoistableScripts,r=db(e),a=n.get(r);a||((a=df.querySelector(dv(r)))||(e=E({src:e,async:!0,type:"module"},t),(t=ds.get(r))&&dx(e,t),tt(a=df.createElement("script")),cm(a,"link",e),df.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},n.set(r,a))}}};var df="u"<typeof document?null:document;function dp(e,t,n){if(df&&"string"==typeof t&&t){var r=tw(t);r='link[rel="'+e+'"][href="'+r+'"]',"string"==typeof n&&(r+='[crossorigin="'+n+'"]'),du.has(r)||(du.add(r),e={rel:e,crossOrigin:n,href:t},null===df.querySelector(r)&&(cm(t=df.createElement("link"),"link",e),tt(t),df.head.appendChild(t)))}}function dm(e,t,n,r){var a=(a=er.current)?dc(a):null;if(!a)throw Error(l(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof n.precedence&&"string"==typeof n.href?(n=dg(n.href),(r=(t=te(a).hoistableStyles).get(n))||(r={type:"style",instance:null,count:0,state:null},t.set(n,r)),r):{type:"void",instance:null,count:0,state:null};case"link":if("stylesheet"===n.rel&&"string"==typeof n.href&&"string"==typeof n.precedence){e=dg(n.href);var o=te(a).hoistableStyles,i=o.get(e);if(i||(a=a.ownerDocument||a,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(e,i),(o=a.querySelector(dh(e)))?o._p||(i.instance=o,i.state.loading=5):((o=ds.get(e))||(o={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},ds.set(e,o)),function(e,t,n,r){if(t=e.querySelector('link[rel="preload"][as="style"]['+t+"]")){if(!0!==t[e6]){r.loading=1;return}}else(t=e.createElement("link"))[e6]=!0,t.onload=t.onerror=tn.bind(null,t),cm(t,"link",n),tt(t),e.head.appendChild(t);r.preload=t,t.addEventListener("load",function(){return r.loading|=1}),t.addEventListener("error",function(){return r.loading|=2})}(a,e,o,i.state))),t&&null===r)throw Error(l(528,""));return i}if(t&&null!==r)throw Error(l(529,""));return null;case"script":return t=n.async,"string"==typeof(n=n.src)&&t&&"function"!=typeof t&&"symbol"!=typeof t?(n=db(n),(r=(t=te(a).hoistableScripts).get(n))||(r={type:"script",instance:null,count:0,state:null},t.set(n,r)),r):{type:"void",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function dg(e){return'href="'+tw(e)+'"'}function dh(e){return'link[rel="stylesheet"]['+e+"]"}function dy(e){return E({},e,{"data-precedence":e.precedence,precedence:null})}function db(e){return'[src="'+tw(e)+'"]'}function dv(e){return"script[async]"+e}function dw(e,t,n){if(t.count++,null===t.instance)switch(t.type){case"style":var r=e.querySelector('style[data-href~="'+tw(n.href)+'"]');if(r)return t.instance=r,tt(r),r;var a=E({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return tt(r=(e.ownerDocument||e).createElement("style")),cm(r,"style",a),dS(r,n.precedence,e),t.instance=r;case"stylesheet":a=dg(n.href);var o=e.querySelector(dh(a));if(o)return t.state.loading|=4,t.instance=o,tt(o),o;r=dy(n),(a=ds.get(a))&&dk(r,a),tt(o=(e.ownerDocument||e).createElement("link"));var i=o;return i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),cm(o,"link",r),t.state.loading|=4,dS(o,n.precedence,e),t.instance=o;case"script":if(o=db(n.src),a=e.querySelector(dv(o)))return t.instance=a,tt(a),a;return r=n,(a=ds.get(o))&&dx(r=E({},n),a),tt(a=(e=e.ownerDocument||e).createElement("script")),cm(a,"link",r),e.head.appendChild(a),t.instance=a;case"void":return null;default:throw Error(l(443,t.type))}return"stylesheet"===t.type&&0==(4&t.state.loading)&&(r=t.instance,t.state.loading|=4,dS(r,n.precedence,e)),t.instance}function dS(e,t,n){for(var r=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),a=r.length?r[r.length-1]:null,o=a,i=0;i<r.length;i++){var l=r[i];if(l.dataset.precedence===t)o=l;else if(o!==a)break}o?o.parentNode.insertBefore(e,o.nextSibling):(t=9===n.nodeType?n.head:n).insertBefore(e,t.firstChild)}function dk(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.title&&(e.title=t.title)}function dx(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.integrity&&(e.integrity=t.integrity)}var dE=null;function dT(e,t,n){if(null===dE){var r=new Map,a=dE=new Map;a.set(n,r)}else(r=(a=dE).get(n))||(r=new Map,a.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),a=0;a<n.length;a++){var o=n[a];if(!(o[e3]||o[eQ]||"link"===e&&"stylesheet"===o.getAttribute("rel"))&&"http://www.w3.org/2000/svg"!==o.namespaceURI){var i=o.getAttribute(t)||"";i=e+i;var l=r.get(i);l?l.push(o):r.set(i,[o])}}return r}function d_(e,t,n){(e=e.ownerDocument||e).head.insertBefore(n,"title"===t?e.querySelector("head > title"):null)}function dA(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function dC(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function dN(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function dP(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=dN(t),e.suspenseyImages.push(t)),e=dR.bind(e),t.decode().then(e,e))}var dO=0;function dL(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)dD(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function dI(){this.count--,dL(this)}function dR(){this.imgCount--,dL(this)}var dj=null;function dD(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,dj=new Map,t.forEach(dF,e),dj=null,dI.call(e))}function dF(e,t){if(!(4&t.state.loading)){var n=dj.get(e);if(n)var r=n.get(null);else{n=new Map,dj.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o<a.length;o++){var i=a[o];("LINK"===i.nodeName||"not all"!==i.getAttribute("media"))&&(n.set(i.dataset.precedence,i),r=i)}r&&n.set(null,r)}i=(a=t.instance).getAttribute("data-precedence"),(o=n.get(i)||r)===r&&n.set(null,a),n.set(i,a),this.count++,r=dI.bind(this),a.addEventListener("load",r),a.addEventListener("error",r),o?o.parentNode.insertBefore(a,o.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(a,e.firstChild),t.state.loading|=4}}var dM={$$typeof:L,Provider:null,Consumer:null,_currentValue:Y,_currentValue2:Y,_threadCount:0};function dz(e,t,n,r,a,o,i,l,s){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=eU(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=eU(0),this.hiddenUpdates=eU(null),this.identifierPrefix=r,this.onUncaughtError=a,this.onCaughtError=o,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=s,this.transitionTypes=null,this.incompleteTransitions=new Map}function dB(e,t,n,r,a,o,i,l,s,u,c,d){return e=new dz(e,t,n,i,s,u,c,d,l),t=1,!0===o&&(t|=24),o=rT(3,null,null,t),e.current=o,o.stateNode=e,t=ah(),t.refCount++,e.pooledCache=t,t.refCount++,o.memoizedState={element:r,isDehydrated:n,cache:t},aY(o),e}function dU(e,t,n,r,a,o){a=a?rx:rx,null===r.context?r.context=a:r.pendingContext=a,(r=aQ(t)).payload={element:n},null!==(o=void 0===o?null:o)&&(r.callback=o),null!==(n=aZ(e,r,t))&&(us(n,e,t),aJ(n,e,t))}function d$(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function dq(e,t){d$(e,t),(e=e.alternate)&&d$(e,t)}function dH(e){if(13===e.tag||31===e.tag){var t=rw(e,0x4000000);null!==t&&us(t,e,0x4000000),dq(e,0x4000000)}}function dV(e){if(13===e.tag||31===e.tag){var t=uo(),n=rw(e,t=eX(t));null!==n&&us(n,e,t),dq(e,t)}}var dX=!0;function dG(e,t,n,r){var a=G.T;G.T=null;var o=W.p;try{W.p=2,dY(e,t,n,r)}finally{W.p=o,G.T=a}}function dW(e,t,n,r){var a=G.T;G.T=null;var o=W.p;try{W.p=8,dY(e,t,n,r)}finally{W.p=o,G.T=a}}function dY(e,t,n,r){if(dX){var a=dK(r);if(null===a)cr(e,t,r,dQ,n),d9(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return d1=d7(d1,e,t,n,r,a),!0;case"dragenter":return d2=d7(d2,e,t,n,r,a),!0;case"mouseover":return d4=d7(d4,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return d3.set(o,d7(d3.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,d6.set(o,d7(d6.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(d9(e,r),4&t&&-1<d5.indexOf(e)){for(;null!==a;){var o=e9(a);if(null!==o)switch(o.tag){case 3:if((o=o.stateNode).current.memoizedState.isDehydrated){var i=eD(o.pendingLanes);if(0!==i){var l=o;for(l.pendingLanes|=2,l.entangledLanes|=2;i;){var s=1<<31-eP(i);l.entanglements[1]|=s,i&=~s}uW(o),0==(6&sI)&&(s0=eb()+500,uY(0,!1))}}break;case 31:case 13:null!==(l=rw(o,2))&&us(l,o,2),uf(),dq(o,2)}if(null===(o=dK(r))&&cr(e,t,r,dQ,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else cr(e,t,r,null,n)}}function dK(e){return dZ(e=tF(e))}var dQ=null;function dZ(e){if(dQ=null,null!==(e=e5(e))){var t=u(e);if(null===t)e=null;else{var n=t.tag;if(13===n){if(null!==(e=c(t)))return e;e=null}else if(31===n){if(null!==(e=d(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return dQ=e,null}function dJ(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"fullscreenerror":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"resize":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(ev()){case ew:return 2;case eS:return 8;case ek:case ex:return 32;case eE:return 0x10000000;default:return 32}default:return 32}}var d0=!1,d1=null,d2=null,d4=null,d3=new Map,d6=new Map,d8=[],d5="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function d9(e,t){switch(e){case"focusin":case"focusout":d1=null;break;case"dragenter":case"dragleave":d2=null;break;case"mouseover":case"mouseout":d4=null;break;case"pointerover":case"pointerout":d3.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":d6.delete(t.pointerId)}}function d7(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&null!==(t=e9(t))&&dH(t)):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a)),e}function fe(e){var t=e5(e.target);if(null!==t){var n=u(t);if(null!==n){if(13===(t=n.tag)){if(null!==(t=c(n))){e.blockedOn=t,eY(e.priority,function(){dV(n)});return}}else if(31===t){if(null!==(t=d(n))){e.blockedOn=t,eY(e.priority,function(){dV(n)});return}}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=3===n.tag?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=dK(e.nativeEvent);if(null!==n)return null!==(t=e9(n))&&dH(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);tD=r,n.target.dispatchEvent(r),tD=null,t.shift()}return!0}function fn(e,t,n){ft(e)&&n.delete(t)}function fr(){d0=!1,null!==d1&&ft(d1)&&(d1=null),null!==d2&&ft(d2)&&(d2=null),null!==d4&&ft(d4)&&(d4=null),d3.forEach(fn),d6.forEach(fn)}function fa(e,t){e.blockedOn===t&&(e.blockedOn=null,d0||(d0=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,fr)))}var fo=null;function fi(e){fo!==e&&(fo=e,a.unstable_scheduleCallback(a.unstable_NormalPriority,function(){fo===e&&(fo=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],a=e[t+2];if("function"!=typeof r)if(null===dZ(r||n))continue;else break;var o=e9(n);null!==o&&(e.splice(t,3),t-=3,ib(o,{pending:!0,data:a,method:n.method,action:r},r,a))}}))}function fl(e){function t(t){return fa(t,e)}null!==d1&&fa(d1,e),null!==d2&&fa(d2,e),null!==d4&&fa(d4,e),d3.forEach(t),d6.forEach(t);for(var n=0;n<d8.length;n++){var r=d8[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<d8.length&&null===(n=d8[0]).blockedOn;)fe(n),null===n.blockedOn&&d8.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<n.length;r+=3){var a=n[r],o=n[r+1],i=a[eZ]||null;if("function"==typeof o)i||fi(n);else if(i){var l=null;if(o&&o.hasAttribute("formAction")){if(a=o,i=o[eZ]||null)l=i.formAction;else if(null!==dZ(a))continue}else l=i.action;"function"==typeof l?n[r+1]=l:(n.splice(r,3),r-=3),fi(n)}}}function fs(){function e(e){e.canIntercept&&"react-transition"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return a=e})},focusReset:"manual",scroll:"manual"})}function t(){null!==a&&(a(),a=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:"react-transition",history:"replace"})}}if("object"==typeof navigation){var r=!1,a=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),null!==a&&(a(),a=null)}}}function fu(e){this._internalRoot=e}function fc(e){this._internalRoot=e}fc.prototype.render=fu.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(l(409));dU(t.current,uo(),e,t,null,null)},fc.prototype.unmount=fu.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dU(e.current,2,null,e,null,null),uf(),t[eJ]=null}},fc.prototype.unstable_scheduleHydration=function(e){if(e){var t=eW();e={blockedOn:null,target:e,priority:t};for(var n=0;n<d8.length&&0!==t&&t<d8[n].priority;n++);d8.splice(n,0,e),0===n&&fe(e)}};var fd=o.version;if("19.3.0"!==fd)throw Error(l(527,fd,"19.3.0"));if(W.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(l(188));throw Error(l(268,e=Object.keys(e).join(",")))}return null===(e=null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=u(e)))throw Error(l(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return f(a),e;if(o===r)return f(a),t;o=o.sibling}throw Error(l(188))}if(n.return!==r.return)n=a,r=o;else{for(var i=!1,s=a.child;s;){if(s===n){i=!0,n=a,r=o;break}if(s===r){i=!0,r=a,n=o;break}s=s.sibling}if(!i){for(s=o.child;s;){if(s===n){i=!0,n=o,r=a;break}if(s===r){i=!0,r=o,n=a;break}s=s.sibling}if(!i)throw Error(l(189))}}if(n.alternate!==r)throw Error(l(190))}if(3!==n.tag)throw Error(l(188));return n.stateNode.current===n?e:t}(t))?function e(t){var n=t.tag;if(5===n||26===n||27===n||6===n)return t;for(t=t.child;null!==t;){if(null!==(n=e(t)))return n;t=t.sibling}return null}(e):null)?null:e.stateNode},"u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ff=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ff.isDisabled&&ff.supportsFiber)try{eA=ff.inject({bundleType:0,version:"19.3.0",rendererPackageName:"react-dom",currentDispatcherRef:G,reconcilerVersion:"19.3.0"}),eC=ff}catch(e){}}t.createRoot=function(e,t){if(!s(e))throw Error(l(299));var n=!1,r="",a=iU,o=i$,i=iq;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(a=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(i=t.onRecoverableError)),t=dB(e,1,!1,null,null,n,r,null,a,o,i,fs),e[eJ]=t.current,ct(e),new fu(t)},t.hydrateRoot=function(e,t,n){if(!s(e))throw Error(l(299));var r=!1,a="",o=iU,i=i$,u=iq,c=null;return null!=n&&(!0===n.unstable_strictMode&&(r=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(i=n.onCaughtError),void 0!==n.onRecoverableError&&(u=n.onRecoverableError),void 0!==n.formState&&(c=n.formState)),(t=dB(e,1,!0,t,null!=n?n:null,r,a,c,o,i,u,fs)).context=rx,n=t.current,(a=aQ(r=eX(r=uo()))).callback=null,aZ(n,a,r),n=r,t.current.lanes=n,e$(t,n),uW(t),e[eJ]=t.current,ct(e),new fc(t)},t.version="19.3.0"},6221(e,t,n){"use strict";var r=n(6540);function a(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(){}var i={d:{f:o,r:function(){throw Error(a(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},l=Symbol.for("react.portal"),s=Symbol.for("react.recoverable"),u=Symbol.for("react.optimistic_key"),c=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,t.browser=function(e){return{$$typeof:s,_reason:e}},t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(a(299));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:l,key:null==r?null:r===u?u:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.flushSync=function(e){var t=c.T,n=i.p;try{if(c.T=null,i.p=2,e)return e()}finally{c.T=t,i.p=n,i.d.f()}},t.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,i.d.C(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&i.d.D(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var n=t.as,r=d(n,t.crossOrigin),a="string"==typeof t.integrity?t.integrity:void 0,o="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===n?i.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):"script"===n&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var n=d(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0})}}else null==t&&i.d.M(e)},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var n=t.as,r=d(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e)if(t){var n=d(t.as,t.crossOrigin);i.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0})}else i.d.m(e)},t.requestFormReset=function(e){i.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,n){return c.H.useFormState(e,t,n)},t.useFormStatus=function(){return c.H.useHostTransitionStatus()},t.version="19.3.0"},5338(e,t,n){"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(1247)},961(e,t,n){"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(6221)},115(e){var t="u">typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;e.exports=function(e,o){try{return function e(o,i){if(o===i)return!0;if(o&&i&&"object"==typeof o&&"object"==typeof i){var l,s,u,c;if(o.constructor!==i.constructor)return!1;if(Array.isArray(o)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(!e(o[s],i[s]))return!1;return!0}if(n&&o instanceof Map&&i instanceof Map){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=o.entries();!(s=c.next()).done;)if(!e(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&o instanceof Set&&i instanceof Set){if(o.size!==i.size)return!1;for(c=o.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(o)&&ArrayBuffer.isView(i)){if((l=o.length)!=i.length)return!1;for(s=l;0!=s--;)if(o[s]!==i[s])return!1;return!0}if(o.constructor===RegExp)return o.source===i.source&&o.flags===i.flags;if(o.valueOf!==Object.prototype.valueOf&&"function"==typeof o.valueOf&&"function"==typeof i.valueOf)return o.valueOf()===i.valueOf();if(o.toString!==Object.prototype.toString&&"function"==typeof o.toString&&"function"==typeof i.toString)return o.toString()===i.toString();if((l=(u=Object.keys(o)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&o instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!o.$$typeof)&&!e(o[u[s]],i[u[s]]))return!1;return!0}return o!=o&&i!=i}(e,o)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}},545(e,t,n){"use strict";n.d(t,{mg:()=>Q,vd:()=>q});var r=n(6540),a=n(5556),o=n.n(a),i=n(115),l=n.n(i),s=n(311),u=n.n(s),c=n(2833),d=n.n(c);function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},y={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(h).map(function(e){return h[e]}),S={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k=Object.keys(S).reduce(function(e,t){return e[S[t]]=t,e},{}),x=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=x(e,h.TITLE),n=x(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,function(){return t});var r=x(e,"defaultTitle");return t||r||void 0},T=function(e,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return f({},e,t)},{})},_=function(e,t,n){var r={};return n.filter(function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)}).map(function(t){return t[e]}).reverse().reduce(function(e,n){var a={};n.filter(function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)}).reverse().forEach(function(t){return e.push(t)});for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e},[]).reverse()},A=function(e,t){if(Array.isArray(e)&&e.length){for(var n=0;n<e.length;n+=1)if(e[n][t])return!0}return!1},C=function(e){return Array.isArray(e)?e.join(""):e},N=function(e,t){return Array.isArray(e)?e.reduce(function(e,n){return!function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.default.push(n):e.priority.push(n),e},{priority:[],default:[]}):{default:e}},P=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[h.NOSCRIPT,h.SCRIPT,h.STYLE],L=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce(function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r},"")},R=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce(function(t,n){return t[S[n]||n]=e[n],t},t)},j=function(e,t){return t.map(function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach(function(e){var n=S[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]}),r.createElement(e,o)})},D=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){var e,n,a,o;return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=R(n,a),[r.createElement(h.TITLE,o,e)]},toString:function(){var r,a,o,i;return r=t.title,a=t.titleAttributes,o=I(a),i=C(r),o?"<"+e+' data-rh="true" '+o+">"+L(i,n)+"</"+e+">":"<"+e+' data-rh="true">'+L(i,n)+"</"+e+">"}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return R(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return j(e,t)},toString:function(){return t.reduce(function(t,r){var a=Object.keys(r).filter(function(e){return"innerHTML"!==e&&"cssText"!==e}).reduce(function(e,t){var a=void 0===r[t]?t:t+'="'+L(r[t],n)+'"';return e?e+" "+a:a},""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")},"")}}}},F=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=e.titleAttributes,u=e.linkTags,c=e.metaTags,d=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var p,m,g,w,S,k,x=(p=e.linkTags,m=e.scriptTags,g=e.encode,w=N(e.metaTags,v),S=N(p,y),k=N(m,b),{priorityMethods:{toComponent:function(){return[].concat(j(h.META,w.priority),j(h.LINK,S.priority),j(h.SCRIPT,k.priority))},toString:function(){return D(h.META,w.priority,g)+" "+D(h.LINK,S.priority,g)+" "+D(h.SCRIPT,k.priority,g)}},metaTags:w.default,linkTags:S.default,scriptTags:k.default});f=x.priorityMethods,u=x.linkTags,c=x.metaTags,d=x.scriptTags}return{priority:f,base:D(h.BASE,t,r),bodyAttributes:D("bodyAttributes",n,r),htmlAttributes:D("htmlAttributes",a,r),link:D(h.LINK,u,r),meta:D(h.META,c,r),noscript:D(h.NOSCRIPT,o,r),script:D(h.SCRIPT,d,r),style:D(h.STYLE,i,r),title:D(h.TITLE,{title:void 0===l?"":l,titleAttributes:s},r)}},M=[],z=function(e,t){var n=this;void 0===t&&(t="u">typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?M:n.instances},add:function(e){(n.canUseDOM?M:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?M:n.instances).indexOf(e);(n.canUseDOM?M:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=F({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},B=r.createContext({}),U=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),$="u">typeof document,q=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new z(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(B.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);q.canUseDOM=$,q.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},q.defaultProps={context:{}},q.displayName="HelmetProvider";var H=function(e,t){var n,r=document.head||document.querySelector(h.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach(function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some(function(e,t){return n=t,r.isEqualNode(e)})?o.splice(n,1):i.push(r)}),o.forEach(function(e){return e.parentNode.removeChild(e)}),i.forEach(function(e){return r.appendChild(e)}),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},X=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(h.BODY,e.bodyAttributes),V(h.HTML,r),void 0!==c&&document.title!==c&&(document.title=C(c)),V(h.TITLE,d);var f={baseTag:H(h.BASE,n),linkTags:H(h.LINK,a),metaTags:H(h.META,o),noscriptTags:H(h.NOSCRIPT,i),scriptTags:H(h.SCRIPT,s),styleTags:H(h.STYLE,u)},p={},m={};Object.keys(f).forEach(function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)}),t&&t(),l(e,p,m)},G=null,W=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o={baseTag:(e=["href"],(t=n.helmetInstances.get().map(function(e){var t=f({},e.props);return delete t.context,t})).filter(function(e){return void 0!==e[h.BASE]}).map(function(e){return e[h.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t},[])),bodyAttributes:T("bodyAttributes",t),defer:x(t,"defer"),encode:x(t,"encodeSpecialCharacters"),htmlAttributes:T("htmlAttributes",t),linkTags:_(h.LINK,["rel","href"],t),metaTags:_(h.META,["name","charset","http-equiv","property","itemprop"],t),noscriptTags:_(h.NOSCRIPT,["innerHTML"],t),onChangeClientState:x(t,"onChangeClientState")||function(){},scriptTags:_(h.SCRIPT,["src","innerHTML"],t),styleTags:_(h.STYLE,["cssText"],t),title:E(t),titleAttributes:T("titleAttributes",t),prioritizeSeoTags:A(t,"prioritizeSeoTags")};q.canUseDOM?(G&&cancelAnimationFrame(G),o.defer?G=requestAnimationFrame(function(){X(o,function(){G=null})}):(X(o),G=null)):F&&(a=F(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);W.propTypes={context:U.isRequired},W.displayName="HelmetDispatcher";var Y=["children"],K=["children"],Q=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(P(this.props,"helmetData"),P(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case h.SCRIPT:case h.NOSCRIPT:return{innerHTML:t};case h.STYLE:return{cssText:t};default:throw Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case h.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case h.BODY:return f({},a,{bodyAttributes:f({},o)});case h.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach(function(t){var r;n=f({},n,((r={})[t]=e[t],r))}),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some(function(t){return e.type===t}),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some(function(e){return"string"!=typeof e}),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,function(e){if(e&&e.props){var r=e.props,o=r.children,i=g(r,Y),l=Object.keys(i).reduce(function(e,t){return e[k[t]||t]=i[t],e},{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case h.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}}),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=g(e,K),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof z||(o=new z(o.context,o.instances)),o?r.createElement(W,f({},a,{context:o.value,helmetData:void 0})):r.createElement(B.Consumer,null,function(e){return r.createElement(W,f({},a,{context:e}))})},t}(r.Component);Q.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},Q.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Q.displayName="Helmet"},2799(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function S(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case h:case g:case s:return e;default:return t}}case a:return t}}}function k(e){return S(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=h,t.Memo=g,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return k(e)||S(e)===c},t.isConcurrentMode=k,t.isContextConsumer=function(e){return S(e)===u},t.isContextProvider=function(e){return S(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return S(e)===f},t.isFragment=function(e){return S(e)===o},t.isLazy=function(e){return S(e)===h},t.isMemo=function(e){return S(e)===g},t.isPortal=function(e){return S(e)===a},t.isProfiler=function(e){return S(e)===l},t.isStrictMode=function(e){return S(e)===i},t.isSuspense=function(e){return S(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===g||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===v||e.$$typeof===w||e.$$typeof===y)},t.typeOf=S},4363(e,t,n){"use strict";e.exports=n(2799)},3259(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var l=n(6540),s=[],u=[],c=l.createContext(null);function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then(function(e){return n.loading=!1,n.loaded=e,e}).catch(function(e){throw n.loading=!1,n.error=e,e}),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach(function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then(function(e){t.loaded[r]=e}).catch(function(e){t.error=e})})}catch(e){t.error=e}return t.promise=Promise.all(n).then(function(e){return t.loading=!1,e}).catch(function(e){throw t.loading=!1,e}),t}function p(e,t){return l.createElement(e&&e.__esModule?e.default:e,t)}function m(e,t){if(!t.loading)throw Error("react-loadable requires a `loading` component");var d,f,m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),g=null;function h(){return g||(g=e(m.loader)),g.promise}return s.push(h),"function"==typeof m.webpack&&u.push(function(){if((0,m.webpack)().every(function(e){return void 0!==e&&void 0!==n.m[e]}))return h()}),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",function(){r.setState({error:null,loading:!0,timedOut:!1}),g=e(m.loader),r._loadModule()}),h(),r.state={error:g.error,pastDelay:!1,timedOut:!1,loading:g.loading,loaded:g.loaded},r}r(n,t),n.preload=function(){return h()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context&&Array.isArray(m.modules)&&m.modules.forEach(function(t){e.context.report(t)}),g.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout(function(){t({pastDelay:!0})},m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout(function(){t({timedOut:!0})},m.timeout));var n=function(){t({error:g.error,loaded:g.loaded,loading:g.loading}),e._clearTimeouts()};g.promise.then(function(){return n(),null}).catch(function(e){return n(),null})}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextType",c),f}function g(e){return m(d,e)}function h(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then(function(){if(e.length)return h(e)})}g.Map=function(e){if("function"!=typeof e.render)throw Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)},g.Capture=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return l.createElement(c.Provider,{value:{report:this.props.report}},l.Children.only(this.props.children))},t}(l.Component),g.preloadAll=function(){return new Promise(function(e,t){h(s).then(e,t)})},g.preloadReady=function(){return new Promise(function(e,t){h(u).then(e,e)})},e.exports=g},2831(e,t,n){"use strict";n.d(t,{u:()=>function e(t,n,a){return void 0===a&&(a=[]),t.some(function(t){var o=t.path?(0,r.B6)(n,t):a.length?a[a.length-1].match:r.Ix.computeRootMatch(n);return o&&(a.push({route:t,match:o}),t.routes&&e(t.routes,n,a)),o}),a},v:()=>i});var r=n(6347),a=n(8168),o=n(6540);function i(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map(function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})})):null}},4625(e,t,n){"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>y,k2:()=>w});var r=n(6347),a=n(594),o=n(6540),i=n(3328),l=n(8168),s=n(8587),u=n(1561),c=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component),d=function(e){function t(){for(var t,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.TM)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component),f=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},m=function(e){return e},g=o.forwardRef;void 0===g&&(g=m);var h=g(function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),r())}});return m!==g?c.ref=t||n:c.ref=n,o.createElement("a",c)}),y=g(function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,d=e.to,y=e.innerRef,b=(0,s.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,function(e){e||(0,u.A)(!1);var n=e.history,r=p(f(d,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.A)({},b,{href:s,navigate:function(){var t=f(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(c||r?n.replace:n.push)(t)}});return m!==g?h.ref=t||y:h.innerRef=y,o.createElement(a,h)})}),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var w=v(function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,d=e.activeStyle,m=e.className,g=e.exact,h=e.isActive,w=e.location,S=e.sensitive,k=e.strict,x=e.style,E=e.to,T=e.innerRef,_=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,function(e){e||(0,u.A)(!1);var n=w||e.location,i=p(f(E,n),n),s=i.pathname,A=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),C=A?(0,r.B6)(n.pathname,{path:A,exact:g,sensitive:S,strict:k}):null,N=!!(h?h(C,n):C),P="function"==typeof m?m(N):m,O="function"==typeof x?x(N):x;N&&(P=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter(function(e){return e}).join(" ")}(P,c),O=(0,l.A)({},O,d));var L=(0,l.A)({"aria-current":N&&a||null,className:P,style:O,to:i},_);return b!==v?L.ref=t||T:L.innerRef=T,o.createElement(y,L)})})},6347(e,t,n){"use strict";n.d(t,{B6:()=>v,Ix:()=>h,W6:()=>x,XZ:()=>g,dO:()=>S,qh:()=>w,zy:()=>E});var r=n(594),a=n(6540),o=n(5556),i=n.n(o),l=(n(3328),n(1561)),s=n(8168),u=n(5302),c=n.n(u);n(4363),n(8587),n(4146);var d="u">typeof globalThis?globalThis:"u">typeof window?window:void 0!==n.g?n.g:{},f=a.createContext||function(e,t){var n,o,l="__create-react-context-"+(d.__global_unique_id__=(d.__global_unique_id__||0)+1)+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=Array(a),i=0;i<a;i++)o[i]=arguments[i];return n=(t=e.call.apply(e,[this].concat(o))||this).props.value,r=[],t.emitter={on:function(e){r.push(e)},off:function(e){r=r.filter(function(t){return t!==e})},get:function(){return n},set:function(e,t){n=e,r.forEach(function(e){return e(n,t)})}},t}(0,r.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;(r===a?0!==r||1/r==1/a:r!=r&&a!=a)?n=0:0!=(n=("function"==typeof t?t(r,a):0x3fffffff)|0)&&this.emitter.set(e.value,n)}},a.render=function(){return this.props.children},n}(a.Component);(n={})[l]=i().object.isRequired,s.childContextTypes=n;var u=function(t){function n(){for(var e,n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){(e.observedBits&n)!=0&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?0x3fffffff:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?0x3fffffff:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){var e;return(Array.isArray(e=this.props.children)?e[0]:e)(this.state.value)},n}(a.Component);return(o={})[l]=i().object,u.contextTypes=o,{Provider:s,Consumer:u}},p=function(e){var t=f();return t.displayName=e,t},m=p("Router-History"),g=p("Router"),h=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen(function(e){n._pendingLocation=e})),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen(function(t){e._isMounted&&e.setState({location:t})})),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(g.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(m.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component,a.Component;var y={},b=0;function v(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce(function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=y[n]||(y[n]={});if(r[e])return r[e];var a=[],o={regexp:c()(e,a,t),keys:a};return b<1e4&&(r[e]=o,b++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var d=s[0],f=s.slice(1),p=e===d;return o&&!p?null:{path:n,url:"/"===n&&""===d?"/":d,isExact:p,params:i.reduce(function(e,t,n){return e[t.name]=f[n],e},{})}},null)}var w=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(g.Consumer,null,function(t){t||(0,l.A)(!1);var n,r=e.props.location||t.location,o=e.props.computedMatch?e.props.computedMatch:e.props.path?v(r.pathname,e.props):t.match,i=(0,s.A)({},t,{location:r,match:o}),u=e.props,c=u.children,d=u.component,f=u.render;return Array.isArray(c)&&(n=c,0===a.Children.count(n))&&(c=null),a.createElement(g.Provider,{value:i},i.match?c?"function"==typeof c?c(i):c:d?a.createElement(d,i):f?f(i):null:"function"==typeof c?c(i):null)})},t}(a.Component);a.Component;var S=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(g.Consumer,null,function(t){t||(0,l.A)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?v(o.pathname,(0,s.A)({},e.props,{path:i})):t.match}}),r?a.cloneElement(n,{location:o,computedMatch:r}):null})},t}(a.Component),k=a.useContext;function x(){return k(m)}function E(){return k(g).location}},9698(e,t){"use strict";var n=Symbol.for("react.transitional.element");function r(e,t,r){var a=null;if(void 0!==r&&(a=""+r),void 0!==t.key&&(a=""+t.key),"key"in t)for(var o in r={},t)"key"!==o&&(r[o]=t[o]);else r=t;return{$$typeof:n,type:e,key:a,ref:void 0!==(t=r.ref)?t:null,props:r}}t.Fragment=Symbol.for("react.fragment"),t.jsx=r,t.jsxs=r},9869(e,t){"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),m=Symbol.for("react.view_transition"),g=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,b={};function v(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||h}function w(){}function S(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},w.prototype=v.prototype;var k=S.prototype=new w;k.constructor=S,y(k,v.prototype),k.isPureReactComponent=!0;var x=Array.isArray;function E(){}var T={H:null,A:null,T:null,S:null},_=Object.prototype.hasOwnProperty;function A(e,t,r){var a=r.ref;return{$$typeof:n,type:e,key:t,ref:void 0!==a?a:null,props:r}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var N=/\/+/g;function P(e,t){var n,r;return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36)}function O(e,t,a){if(null==e)return e;var o=[],i=0;return!function e(t,a,o,i,l){var s,u,c,d=typeof t;("undefined"===d||"boolean"===d)&&(t=null);var p=!1;if(null===t)p=!0;else switch(d){case"bigint":case"string":case"number":p=!0;break;case"object":switch(t.$$typeof){case n:case r:p=!0;break;case f:return e((p=t._init)(t._payload),a,o,i,l)}}if(p)return l=l(t),p=""===i?"."+P(t,0):i,x(l)?(o="",null!=p&&(o=p.replace(N,"$&/")+"/"),e(l,a,o,"",function(e){return e})):null!=l&&(C(l)&&(s=l,u=o+(null==l.key||t&&t.key===l.key?"":(""+l.key).replace(N,"$&/")+"/")+p,l=A(s.type,u,s.props)),a.push(l)),1;p=0;var m=""===i?".":i+":";if(x(t))for(var h=0;h<t.length;h++)d=m+P(i=t[h],h),p+=e(i,a,o,d,l);else if("function"==typeof(h=null===(c=t)||"object"!=typeof c?null:"function"==typeof(c=g&&c[g]||c["@@iterator"])?c:null))for(t=h.call(t),h=0;!(i=t.next()).done;)d=m+P(i=i.value,h++),p+=e(i,a,o,d,l);else if("object"===d){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(E,E):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),a,o,i,l);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(a=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":a)+"). If you meant to render a collection of children, use an array instead.")}return p}(e,o,"","",function(e){return t.call(a,e,i++)}),o}function L(e){if(-1===e._status){var t=(0,e._result)();t.then(function(n){(0===e._status||-1===e._status)&&(e._status=1,e._result=n,void 0===t.status&&(t.status="fulfilled",t.value=n))},function(n){(0===e._status||-1===e._status)&&(e._status=2,e._result=n,void 0===t.status&&(t.status="rejected",t.reason=n))}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var I="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function R(e){var t=T.T,n={};n.types=null!==t?t.types:null,T.T=n;try{var r=e(),a=T.S;null!==a&&a(n,r),"object"==typeof r&&null!==r&&"function"==typeof r.then&&r.then(E,I)}catch(e){I(e)}finally{null!==t&&null!==n.types&&(t.types=n.types),T.T=t}}function j(e){var t=T.T;if(null!==t){var n=t.types;null===n?t.types=[e]:-1===n.indexOf(e)&&n.push(e)}else R(j.bind(null,e))}t.Activity=p,t.Children={map:O,forEach:function(e,t,n){O(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return O(e,function(){t++}),t},toArray:function(e){return O(e,function(e){return e})||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=v,t.Fragment=a,t.Profiler=i,t.PureComponent=S,t.StrictMode=o,t.Suspense=c,t.ViewTransition=m,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},t.addTransitionType=j,t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cacheSignal=function(){return null},t.cloneElement=function(e,t,n){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var r=y({},e.props),a=e.key;if(null!=t)for(o in void 0!==t.key&&(a=""+t.key),t)_.call(t,o)&&"key"!==o&&"__self"!==o&&"__source"!==o&&("ref"!==o||void 0!==t.ref)&&(r[o]=t[o]);var o=arguments.length-2;if(1===o)r.children=n;else if(1<o){for(var i=Array(o),l=0;l<o;l++)i[l]=arguments[l+2];r.children=i}return A(e.type,a,r)},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},t.createElement=function(e,t,n){var r,a={},o=null;if(null!=t)for(r in void 0!==t.key&&(o=""+t.key),t)_.call(t,r)&&"key"!==r&&"__self"!==r&&"__source"!==r&&(a[r]=t[r]);var i=arguments.length-2;if(1===i)a.children=n;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];a.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===a[r]&&(a[r]=i[r]);return A(e,o,a)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=R,t.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},t.use=function(e){return T.H.use(e)},t.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},t.useCallback=function(e,t){return T.H.useCallback(e,t)},t.useContext=function(e){return T.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},t.useEffect=function(e,t){return T.H.useEffect(e,t)},t.useEffectEvent=function(e){return T.H.useEffectEvent(e)},t.useId=function(){return T.H.useId()},t.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return T.H.useMemo(e,t)},t.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},t.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},t.useRef=function(e){return T.H.useRef(e)},t.useState=function(e){return T.H.useState(e)},t.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},t.useTransition=function(){return T.H.useTransition()},t.version="19.3.0"},6540(e,t,n){"use strict";e.exports=n(9869)},4848(e,t,n){"use strict";e.exports=n(9698)},4477(e,t){"use strict";function n(e,t){var n=e.length;for(e.push(t);0<n;){var r=n-1>>>1,a=e[r];if(0<o(a,t))e[r]=t,e[n]=a,n=r;else break}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else if(u<a&&0>o(c,n))e[r]=c,e[u]=n,r=u;else break}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var i,l=performance;t.unstable_now=function(){return l.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}var c=[],d=[],f=1,p=null,m=3,g=!1,h=!1,y=!1,b=!1,v="function"==typeof setTimeout?setTimeout:null,w="function"==typeof clearTimeout?clearTimeout:null,S="u">typeof setImmediate?setImmediate:null;function k(e){for(var t=r(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,n(c,t);else break;t=r(d)}}function x(e){if(y=!1,k(e),!h)if(null!==r(c))h=!0,E||(E=!0,i());else{var t=r(d);null!==t&&L(x,t.startTime-e)}}var E=!1,T=-1,_=5,A=-1;function C(){return!!b||!(t.unstable_now()-A<_)}function N(){if(b=!1,E){var e=t.unstable_now();A=e;var n=!0;try{e:{h=!1,y&&(y=!1,w(T),T=-1),g=!0;var o=m;try{t:{for(k(e),p=r(c);null!==p&&!(p.expirationTime>e&&C());){var l=p.callback;if("function"==typeof l){p.callback=null,m=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){p.callback=s,k(e),n=!0;break t}p===r(c)&&a(c),k(e)}else a(c);p=r(c)}if(null!==p)n=!0;else{var u=r(d);null!==u&&L(x,u.startTime-e),n=!1}}break e}finally{p=null,m=o,g=!1}}}finally{n?i():E=!1}}}if("function"==typeof S)i=function(){S(N)};else if("u">typeof MessageChannel){var P=new MessageChannel,O=P.port2;P.port1.onmessage=N,i=function(){O.postMessage(null)}}else i=function(){v(N,0)};function L(e,n){T=v(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_next=function(e){switch(m){case 1:case 2:case 3:var t=3;break;default:t=m}var n=m;m=t;try{return e()}finally{m=n}},t.unstable_requestPaint=function(){b=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=m;m=e;try{return t()}finally{m=n}},t.unstable_scheduleCallback=function(e,a,o){var l=t.unstable_now();switch(o="object"==typeof o&&null!==o&&"number"==typeof(o=o.delay)&&0<o?l+o:l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=o+s,e={id:f++,callback:a,priorityLevel:e,startTime:o,expirationTime:s,sortIndex:-1},o>l?(e.sortIndex=o,n(d,e),null===r(c)&&e===r(d)&&(y?(w(T),T=-1):y=!0,L(x,o-l))):(e.sortIndex=s,n(c,e),h||g||(h=!0,E||(E=!0,i()))),e},t.unstable_shouldYield=C,t.unstable_wrapCallback=function(e){var t=m;return function(){var n=m;m=t;try{return e.apply(this,arguments)}finally{m=n}}}},9982(e,t,n){"use strict";e.exports=n(4477)},2833(e){e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},8460(e,t,n){"use strict";n.d(t,{A:()=>f}),n(6540);var r=n(4848),a=n(3259),o=n.n(a),i=n(4054);let l={"01a85c17":[()=>Promise.all([n.e("4014"),n.e("9786")]).then(n.bind(n,3456)),"@theme/BlogTagsListPage",3456],"02854a60":[()=>n.e("8384").then(n.bind(n,7455)),"@site/i18n/en/docusaurus-plugin-content-docs/current/quickstart/setup.md",7455],"1078a278":[()=>n.e("3674").then(n.bind(n,3445)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-lineage.md",3445],"136d9fb6":[()=>n.e("9901").then(n.t.bind(n,9216,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-tags-origin-bee.json",9216],0x11113f9:[()=>Promise.all([n.e("4014"),n.e("1016"),n.e("106")]).then(n.bind(n,280)),"@theme/DocItem",280],"1a0052a3":[()=>n.e("1389").then(n.bind(n,6185)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/parameter-compile.md",6185],"1f5cb825":[()=>n.e("4684").then(n.bind(n,8607)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/sql-type.md",8607],"22e0017f":[()=>n.e("1591").then(n.t.bind(n,3558,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-tags-d52.json",3558],"2cb18a50":[()=>n.e("9548").then(n.bind(n,1564)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/architecture.md",1564],"33fc5bb8":[()=>Promise.all([n.e("4014"),n.e("1016"),n.e("6726"),n.e("48")]).then(n.bind(n,2242)),"@theme/Blog/Pages/BlogAuthorsPostsPage",2242],"36994c47":[()=>n.e("191").then(n.t.bind(n,5516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",5516],"4a65a190":[()=>n.e("2705").then(n.bind(n,670)),"@site/blog/2026-09-28-origin-of-sqlparserx.md",670],"4b0ae1c1":[()=>n.e("9375").then(n.bind(n,8786)),"@site/blog/2026-09-28-origin-of-sqlparserx.md?truncated=true",8786],"533336a0":[()=>n.e("8102").then(n.bind(n,1082)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-lineage.md",1082],"5abf25f6":[()=>n.e("3179").then(n.t.bind(n,779,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-authors-changlu-bc5.json",779],"5b44acae":[()=>n.e("8637").then(n.bind(n,2424)),"@site/i18n/en/docusaurus-plugin-content-docs/current/intro.md",2424],"5e95c892":[()=>n.e("1668").then(n.bind(n,6569)),"@theme/DocsRoot",6569],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"621db11d":[()=>Promise.all([n.e("4014"),n.e("6726"),n.e("1221")]).then(n.bind(n,6433)),"@theme/Blog/Pages/BlogAuthorsListPage",6433],"672ba3d6":[()=>Promise.all([n.e("4014"),n.e("8893")]).then(n.bind(n,7062)),"@site/src/pages/community.js",7062],"6875c492":[()=>Promise.all([n.e("4014"),n.e("1016"),n.e("6726"),n.e("766")]).then(n.bind(n,149)),"@theme/BlogTagsPostsPage",149],"773100d1":[()=>n.e("4413").then(n.bind(n,4282)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/quickstart/setup.md",4282],"7ba64a19":[()=>n.e("947").then(n.bind(n,6296)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/field-lineage.md",6296],"814f3328":[()=>n.e("1833").then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"92d5f697":[()=>n.e("4128").then(n.bind(n,1110)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/function-parse.md",1110],"9aae347e":[()=>n.e("1759").then(n.bind(n,1421)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-parse.md",1421],"9c37e8a9":[()=>n.e("1033").then(n.bind(n,6845)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/introduction.md",6845],"9e4087bc":[()=>n.e("9660").then(n.bind(n,7243)),"@theme/BlogArchivePage",7243],a02bd756:[()=>n.e("5415").then(n.t.bind(n,8354,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-edf.json",8354],a16ef744:[()=>n.e("9984").then(n.bind(n,3349)),"@site/i18n/en/docusaurus-plugin-content-docs/current/contributing.md",3349],a6aa9e1f:[()=>Promise.all([n.e("4014"),n.e("1016"),n.e("6726"),n.e("7496")]).then(n.bind(n,2152)),"@theme/BlogListPage",2152],a7456010:[()=>n.e("3056").then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e("5575").then(n.bind(n,8146)),"@theme/DocVersionRoot",8146],a84fc31f:[()=>n.e("9414").then(n.bind(n,3893)),"@site/i18n/en/docusaurus-plugin-content-docs/current/about/introduction.md",3893],a94703ab:[()=>Promise.all([n.e("4014"),n.e("6785")]).then(n.bind(n,1399)),"@theme/DocRoot",1399],aa9e3246:[()=>n.e("2687").then(n.t.bind(n,6321,19)),"@generated/docusaurus-plugin-content-docs/default/p/sql-parser-x-en-docs-next-d4b.json",6321],aba21aa0:[()=>n.e("3747").then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],ac311984:[()=>n.e("9590").then(n.bind(n,7821)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-parse.md",7821],ac4ff279:[()=>n.e("8222").then(n.bind(n,6462)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/contributing.md",6462],acecf23e:[()=>n.e("3220").then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],bd32d0d5:[()=>n.e("5940").then(n.t.bind(n,4241,19)),"@generated/docusaurus-plugin-content-docs/default/p/sql-parser-x-en-docs-7be.json",4241],c4f5d8e4:[()=>Promise.all([n.e("4014"),n.e("4823")]).then(n.bind(n,7641)),"@site/src/pages/index.js",7641],c61d1296:[()=>n.e("3224").then(n.bind(n,9246)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/intro.md",9246],ccc49370:[()=>Promise.all([n.e("4014"),n.e("1016"),n.e("6726"),n.e("6074")]).then(n.bind(n,2063)),"@theme/BlogPostPage",2063],d611a6ba:[()=>n.e("9794").then(n.bind(n,3354)),"@site/i18n/en/docusaurus-plugin-content-docs/current/about/architecture.md",3354],dae5e6b9:[()=>n.e("1811").then(n.bind(n,9721)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/parameter-compile.md",9721],db80618e:[()=>n.e("6056").then(n.t.bind(n,9707,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-authors-2a6.json",9707],e539d78b:[()=>n.e("5301").then(n.bind(n,8432)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/field-lineage.md",8432],e65be245:[()=>n.e("3080").then(n.bind(n,1090)),"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/sql-type.md",1090],e9caf4bd:[()=>n.e("2030").then(n.t.bind(n,7846,19)),"@generated/docusaurus-plugin-content-blog/default/p/sql-parser-x-en-blog-archive-987.json",7846],f798a39c:[()=>n.e("7266").then(n.bind(n,264)),"@site/i18n/en/docusaurus-plugin-content-docs/current/core/function-parse.md",264]};function s({error:e,retry:t,pastDelay:n}){return e?(0,r.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,r.jsx)("p",{children:String(e)}),(0,r.jsx)("div",{children:(0,r.jsx)("button",{type:"button",onClick:t,children:"Retry"})})]}):n?(0,r.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,r.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,r.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,r.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,r.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,r.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,r.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(7665),c=n(7574);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e("5062").then(n.bind(n,629)),modules:["@theme/NotFound"],webpack:()=>[629],render(e,t){let n=e.default;return(0,r.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,r.jsx)(n,{...t})})}});let a=i[`${e}-${t}`],d={},f=[],p=[];return Object.entries((0,u.A)(a)).forEach(([e,t])=>{let n=l[t];n&&(d[e]=n[0],f.push(n[1]),p.push(n[2]))}),o().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){let o=JSON.parse(JSON.stringify(a));Object.entries(t).forEach(([t,n])=>{let r=n.default;if(!r)throw Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);("object"==typeof r||"function"==typeof r)&&Object.keys(n).filter(e=>"default"!==e).forEach(e=>{r[e]=n[e]});let a=o,i=t.split(".");i.slice(0,-1).forEach(e=>{a=a[e]}),a[i[i.length-1]]=r});let i=o.__comp;delete o.__comp;let l=o.__context;delete o.__context;let s=o.__props;return delete o.__props,(0,r.jsx)(c.W,{value:l,children:(0,r.jsx)(i,{...o,...s,...n})})}})}let f=[{path:"/SqlParserX/en/blog",component:d("/SqlParserX/en/blog","c47"),exact:!0},{path:"/SqlParserX/en/blog/archive",component:d("/SqlParserX/en/blog/archive","bf0"),exact:!0},{path:"/SqlParserX/en/blog/authors",component:d("/SqlParserX/en/blog/authors","ac8"),exact:!0},{path:"/SqlParserX/en/blog/authors/changlu",component:d("/SqlParserX/en/blog/authors/changlu","a8d"),exact:!0},{path:"/SqlParserX/en/blog/origin-of-sqlparserx",component:d("/SqlParserX/en/blog/origin-of-sqlparserx","a52"),exact:!0},{path:"/SqlParserX/en/blog/tags",component:d("/SqlParserX/en/blog/tags","2aa"),exact:!0},{path:"/SqlParserX/en/blog/tags/origin",component:d("/SqlParserX/en/blog/tags/origin","121"),exact:!0},{path:"/SqlParserX/en/community",component:d("/SqlParserX/en/community","2bf"),exact:!0},{path:"/SqlParserX/en/docs",component:d("/SqlParserX/en/docs","5b1"),routes:[{path:"/SqlParserX/en/docs/next",component:d("/SqlParserX/en/docs/next","a22"),routes:[{path:"/SqlParserX/en/docs/next",component:d("/SqlParserX/en/docs/next","12e"),routes:[{path:"/SqlParserX/en/docs/next/about/architecture",component:d("/SqlParserX/en/docs/next/about/architecture","7df"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/about/introduction",component:d("/SqlParserX/en/docs/next/about/introduction","9f1"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/contributing",component:d("/SqlParserX/en/docs/next/contributing","083"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/field-lineage",component:d("/SqlParserX/en/docs/next/core/field-lineage","d01"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/function-parse",component:d("/SqlParserX/en/docs/next/core/function-parse","2b2"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/parameter-compile",component:d("/SqlParserX/en/docs/next/core/parameter-compile","7b3"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/sql-type",component:d("/SqlParserX/en/docs/next/core/sql-type","d46"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/table-lineage",component:d("/SqlParserX/en/docs/next/core/table-lineage","a0c"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/core/table-parse",component:d("/SqlParserX/en/docs/next/core/table-parse","69c"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/intro",component:d("/SqlParserX/en/docs/next/intro","684"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/next/quickstart/setup",component:d("/SqlParserX/en/docs/next/quickstart/setup","65f"),exact:!0,sidebar:"docs"}]}]},{path:"/SqlParserX/en/docs",component:d("/SqlParserX/en/docs","193"),routes:[{path:"/SqlParserX/en/docs",component:d("/SqlParserX/en/docs","634"),routes:[{path:"/SqlParserX/en/docs/about/architecture",component:d("/SqlParserX/en/docs/about/architecture","d26"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/about/introduction",component:d("/SqlParserX/en/docs/about/introduction","046"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/contributing",component:d("/SqlParserX/en/docs/contributing","d4c"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/field-lineage",component:d("/SqlParserX/en/docs/core/field-lineage","4f9"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/function-parse",component:d("/SqlParserX/en/docs/core/function-parse","906"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/parameter-compile",component:d("/SqlParserX/en/docs/core/parameter-compile","818"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/sql-type",component:d("/SqlParserX/en/docs/core/sql-type","89c"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/table-lineage",component:d("/SqlParserX/en/docs/core/table-lineage","2f2"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/core/table-parse",component:d("/SqlParserX/en/docs/core/table-parse","a91"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/intro",component:d("/SqlParserX/en/docs/intro","9c5"),exact:!0,sidebar:"docs"},{path:"/SqlParserX/en/docs/quickstart/setup",component:d("/SqlParserX/en/docs/quickstart/setup","646"),exact:!0,sidebar:"docs"}]}]}]},{path:"/SqlParserX/en/",component:d("/SqlParserX/en/","624"),exact:!0},{path:"*",component:d("*")}]},1173(e,t,n){"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(4848),a=n(6540);let o=a.createContext(!1);function i({children:e}){let[t,n]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{n(!0)},[]),(0,r.jsx)(o.Provider,{value:t,children:e})}},354(e,t,n){"use strict";var r=n(4848),a=n(6540),o=n(5338),i=n(545),l=n(4625),s=n(4784),u=n(1289);let c=[n(7612),n(6464),n(2489),n(3678),n(6448)];var d=n(8460),f=n(6347),p=n(2831);function m({children:e}){return(0,r.jsx)(r.Fragment,{children:e})}var g=n(3899);let h=e=>e.defaultFormatter(e);function y({children:e}){return(0,r.jsx)(g.AL,{formatter:h,children:e})}function b({children:e}){return(0,r.jsx)(y,{children:e})}var v=n(3572),w=n(898),S=n(6497),k=n(1022),x=n(4308),E=n(5243),T=n(5248),_=n(4175);function A(){let{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),a=(0,E.o)(),o=n[e].htmlLang;return(0,r.jsxs)(v.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,r.jsx)("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,r.jsx)("meta",{property:"og:locale",content:o.replace("-","_")}),Object.values(n).filter(e=>o!==e.htmlLang).map(e=>(0,r.jsx)("meta",{property:"og:locale:alternate",content:e.htmlLang.replace("-","_")},`meta-og-${e.htmlLang}`))]})}function C({permalink:e}){let{siteConfig:{url:t}}=(0,w.A)(),n=function(){let{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,f.zy)();return e+(0,T.applyTrailingSlash)((0,S.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=e?`${t}${e}`:n;return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{property:"og:url",content:a}),(0,r.jsx)("link",{rel:"canonical",href:a})]})}function N(){let{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,k.p)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(v.A,{children:[(0,r.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,r.jsx)("body",{})]}),n&&(0,r.jsx)(x.be,{image:n}),(0,r.jsx)(C,{}),(0,r.jsx)(A,{}),(0,r.jsx)(_.A,{tag:"default",locale:e}),(0,r.jsx)(v.A,{children:t.map((e,t)=>(0,r.jsx)("meta",{...e},t))})]})}let P=new Map;var O=n(1173),L=n(3587),I=n(9989);function R(e,...t){let n=c.map(n=>{let r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}let j=function({children:e,location:t,previousLocation:n}){return(0,I.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;let n=e.pathname===t.pathname,r=e.hash===t.hash,a=e.search===t.search;if(n&&r&&!a)return;let{hash:o}=e;if(o){let e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),R("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function D(e){return Promise.all(Array.from(new Set([e,decodeURI(e)])).map(e=>(0,p.u)(d.A,e)).flat().map(e=>e.route.component.preload?.()))}class F extends a.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=u.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;let n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),D(n.pathname).then(()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})}).catch(e=>{console.warn(e),window.location.reload()}),!1}render(){let{children:e,location:t}=this.props;return(0,r.jsx)(j,{previousLocation:this.previousLocation,location:t,children:(0,r.jsx)(f.qh,{location:t,render:()=>e})})}}let M="__docusaurus-base-url-issue-banner-suggestion-container";function z(){let{siteConfig:{baseUrl:e}}=(0,w.A)();return(0,r.jsx)(r.Fragment,{children:!u.A.canUseDOM&&(0,r.jsx)(v.A,{children:(0,r.jsx)("script",{children:` document.addEventListener('DOMContentLoaded', function maybeInsertBanner() { var shouldInsert = typeof window['docusaurus'] === 'undefined'; shouldInsert && insertBanner(); @@ -24,15 +24,15 @@ function insertBanner() { : actualHomePagePath + '/'; suggestionContainer.textContent = suggestedBaseUrl; } -`})})})}function B(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(z,{}):null}function U(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,S.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var $=n(1701),q=n(9863);function H(){let e=(0,q.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let V=(0,p.v)(d.A);function X(){let e=function(e){if(N.has(e.pathname))return{...e,pathname:N.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return N.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return N.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:V})}var G=n(4054);let W=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"<typeof document)return void n();let r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var Y=n(7665);let K=new Set,Q=new Set,Z=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(Z()||Q.has(e)||K.has(e))&&(K.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,Y.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?W(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(Z()||Q.has(e))&&(Q.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)($.A,{children:(0,r.jsx)(L.l,{children:(0,r.jsxs)(O.x,{children:[(0,r.jsx)(g,{children:(0,r.jsxs)(b,{children:[(0,r.jsx)(U,{}),(0,r.jsx)(P,{}),(0,r.jsx)(B,{}),(0,r.jsx)(X,{})]})}),(0,r.jsx)(H,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3587(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(4848),a=n(6540),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/SqlParserX/en/docs","versions":[{"name":"current","label":"Next \u{1F6A7}","isLast":false,"path":"/SqlParserX/en/docs/next","mainDocId":"intro","docs":[{"id":"about/architecture","path":"/SqlParserX/en/docs/next/about/architecture","sidebar":"docs"},{"id":"about/introduction","path":"/SqlParserX/en/docs/next/about/introduction","sidebar":"docs"},{"id":"contributing","path":"/SqlParserX/en/docs/next/contributing","sidebar":"docs"},{"id":"core/field-lineage","path":"/SqlParserX/en/docs/next/core/field-lineage","sidebar":"docs"},{"id":"core/function-parse","path":"/SqlParserX/en/docs/next/core/function-parse","sidebar":"docs"},{"id":"core/table-lineage","path":"/SqlParserX/en/docs/next/core/table-lineage","sidebar":"docs"},{"id":"core/table-parse","path":"/SqlParserX/en/docs/next/core/table-parse","sidebar":"docs"},{"id":"intro","path":"/SqlParserX/en/docs/next/intro","sidebar":"docs"},{"id":"quickstart/setup","path":"/SqlParserX/en/docs/next/quickstart/setup","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/SqlParserX/en/docs/next/intro","label":"intro"}}}},{"name":"1.0","label":"Next \u{1F6A7}","isLast":true,"path":"/SqlParserX/en/docs","mainDocId":"intro","docs":[{"id":"about/architecture","path":"/SqlParserX/en/docs/about/architecture","sidebar":"docs"},{"id":"about/introduction","path":"/SqlParserX/en/docs/about/introduction","sidebar":"docs"},{"id":"contributing","path":"/SqlParserX/en/docs/contributing","sidebar":"docs"},{"id":"core/field-lineage","path":"/SqlParserX/en/docs/core/field-lineage","sidebar":"docs"},{"id":"core/function-parse","path":"/SqlParserX/en/docs/core/function-parse","sidebar":"docs"},{"id":"core/table-lineage","path":"/SqlParserX/en/docs/core/table-lineage","sidebar":"docs"},{"id":"core/table-parse","path":"/SqlParserX/en/docs/core/table-parse","sidebar":"docs"},{"id":"intro","path":"/SqlParserX/en/docs/intro","sidebar":"docs"},{"id":"quickstart/setup","path":"/SqlParserX/en/docs/quickstart/setup","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/SqlParserX/en/docs/intro","label":"intro"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"en","localeConfigs":{"zh-Hans":{"label":"\u7B80\u4F53\u4E2D\u6587","direction":"ltr","htmlLang":"zh-Hans","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://dtstack.github.io","baseUrl":"/SqlParserX/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://dtstack.github.io","baseUrl":"/SqlParserX/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},1701(e,t,n){"use strict";n.d(t,{A:()=>g});var r=n(4848),a=n(6540),o=n(1289),i=n(3572),l=n(5248),s=n(6525),u=n(7574);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(g,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class g extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},1289(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},3572(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(4848);n(6540);var a=n(545);function o(e){return(0,r.jsx)(a.mg,{...e})}},5310(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(4848),a=n(6540),o=n(4625),i=n(5248),l=n(898),s=n(8310),u=n(1289),c=n(5916),d=n(6497);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":g,autoAddBaseUrl:m=!0,...h},y){var b;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:S}=v,k=v.future.experimental_router,{withBaseUrl:x}=(0,d.hH)(),E=(0,c.A)(),T=(0,a.useRef)(null);(0,a.useImperativeHandle)(y,()=>T.current);let _=t||n,A=(0,s.A)(_),C=_?.replace("pathname://",""),P=void 0!==C?(b=C,m&&b.startsWith("/")?x(b):b):void 0;"hash"===k&&P?.startsWith("./")&&(P=P?.slice(1)),P&&A&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:S}));let N=(0,a.useRef)(!1),O=e?o.k2:o.N_,L=u.A.canUseIntersectionObserver,I=(0,a.useRef)(void 0),R=()=>{N.current||null==P||(window.docusaurus.preload(P),N.current=!0)};(0,a.useEffect)(()=>(!L&&A&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{L&&I.current&&I.current.disconnect()}),[I,P,L,A]);let j=P?.startsWith("#")??!1,D=!h.target||"_self"===h.target,F=!P||!A||!D||j&&"hash"!==k;g||!j&&F||E.collectLink(P),h.id&&E.collectAnchor(h.id);let M={};return F?(0,r.jsx)("a",{ref:T,href:P,..._&&!A&&{target:"_blank",rel:"noopener noreferrer"},...h,...M}):(0,r.jsx)(O,{...h,onMouseEnter:R,onTouchStart:R,innerRef:e=>{T.current=e,L&&e&&A&&(I.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),I.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...M})})},568(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(4848),a=n(6540);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal <Translate> children",e),Error("The Docusaurus <Translate> component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8977(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},8310(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},6497(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(6540),a=n(898),o=n(8310);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},5916(e,t,n){"use strict";n.d(t,{A:()=>o}),n(4848);var r=n(6540);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},898(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(3587);function o(){return(0,r.useContext)(a.o)}},9863(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(1173);function o(){return(0,r.useContext)(a.o)}},9989(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(6540);let a=n(1289).A.canUseDOM?r.useLayoutEffect:r.useEffect},8491(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(7574);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},7665(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},7574(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(4848),a=n(6540);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},2086(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>g});var r=n(4848),a=n(6540),o=n(698),i=n(8977),l=n(1022),s=n(1367),u=n(2260);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function g(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},2473(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(4848),a=n(6540),o=n(2260);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8260(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>m,QB:()=>b,Vd:()=>h,Y:()=>g,fW:()=>y,w8:()=>p});var r=n(6540),a=n(6347),o=n(2831),i=n(698),l=n(9209),s=n(618),u=n(2086),c=n(921),d=n(2473);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function g(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function m(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function h(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function y(e,t){let n=h(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". +`})})})}function B(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(z,{}):null}function U(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,S.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var $=n(1701),q=n(9863);function H(){let e=(0,q.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let V=(0,p.v)(d.A);function X(){let e=function(e){if(P.has(e.pathname))return{...e,pathname:P.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return P.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return P.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:V})}var G=n(4054);let W=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"<typeof document)return void n();let r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var Y=n(7665);let K=new Set,Q=new Set,Z=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(Z()||Q.has(e)||K.has(e))&&(K.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,Y.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?W(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(Z()||Q.has(e))&&(Q.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)($.A,{children:(0,r.jsx)(L.l,{children:(0,r.jsxs)(O.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(b,{children:[(0,r.jsx)(U,{}),(0,r.jsx)(N,{}),(0,r.jsx)(B,{}),(0,r.jsx)(X,{})]})}),(0,r.jsx)(H,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3587(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(4848),a=n(6540),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/SqlParserX/en/docs","versions":[{"name":"current","label":"Next \u{1F6A7}","isLast":false,"path":"/SqlParserX/en/docs/next","mainDocId":"intro","docs":[{"id":"about/architecture","path":"/SqlParserX/en/docs/next/about/architecture","sidebar":"docs"},{"id":"about/introduction","path":"/SqlParserX/en/docs/next/about/introduction","sidebar":"docs"},{"id":"contributing","path":"/SqlParserX/en/docs/next/contributing","sidebar":"docs"},{"id":"core/field-lineage","path":"/SqlParserX/en/docs/next/core/field-lineage","sidebar":"docs"},{"id":"core/function-parse","path":"/SqlParserX/en/docs/next/core/function-parse","sidebar":"docs"},{"id":"core/parameter-compile","path":"/SqlParserX/en/docs/next/core/parameter-compile","sidebar":"docs"},{"id":"core/sql-type","path":"/SqlParserX/en/docs/next/core/sql-type","sidebar":"docs"},{"id":"core/table-lineage","path":"/SqlParserX/en/docs/next/core/table-lineage","sidebar":"docs"},{"id":"core/table-parse","path":"/SqlParserX/en/docs/next/core/table-parse","sidebar":"docs"},{"id":"intro","path":"/SqlParserX/en/docs/next/intro","sidebar":"docs"},{"id":"quickstart/setup","path":"/SqlParserX/en/docs/next/quickstart/setup","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/SqlParserX/en/docs/next/intro","label":"intro"}}}},{"name":"1.0","label":"Next \u{1F6A7}","isLast":true,"path":"/SqlParserX/en/docs","mainDocId":"intro","docs":[{"id":"about/architecture","path":"/SqlParserX/en/docs/about/architecture","sidebar":"docs"},{"id":"about/introduction","path":"/SqlParserX/en/docs/about/introduction","sidebar":"docs"},{"id":"contributing","path":"/SqlParserX/en/docs/contributing","sidebar":"docs"},{"id":"core/field-lineage","path":"/SqlParserX/en/docs/core/field-lineage","sidebar":"docs"},{"id":"core/function-parse","path":"/SqlParserX/en/docs/core/function-parse","sidebar":"docs"},{"id":"core/parameter-compile","path":"/SqlParserX/en/docs/core/parameter-compile","sidebar":"docs"},{"id":"core/sql-type","path":"/SqlParserX/en/docs/core/sql-type","sidebar":"docs"},{"id":"core/table-lineage","path":"/SqlParserX/en/docs/core/table-lineage","sidebar":"docs"},{"id":"core/table-parse","path":"/SqlParserX/en/docs/core/table-parse","sidebar":"docs"},{"id":"intro","path":"/SqlParserX/en/docs/intro","sidebar":"docs"},{"id":"quickstart/setup","path":"/SqlParserX/en/docs/quickstart/setup","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/SqlParserX/en/docs/intro","label":"intro"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"en","localeConfigs":{"zh-Hans":{"label":"\u7B80\u4F53\u4E2D\u6587","direction":"ltr","htmlLang":"zh-Hans","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://dtstack.github.io","baseUrl":"/SqlParserX/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://dtstack.github.io","baseUrl":"/SqlParserX/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},1701(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(4848),a=n(6540),o=n(1289),i=n(3572),l=n(5248),s=n(6525),u=n(7574);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},1289(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},3572(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(4848);n(6540);var a=n(545);function o(e){return(0,r.jsx)(a.mg,{...e})}},5310(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(4848),a=n(6540),o=n(4625),i=n(5248),l=n(898),s=n(8310),u=n(1289),c=n(5916),d=n(6497);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:g=!0,...h},y){var b;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:S}=v,k=v.future.experimental_router,{withBaseUrl:x}=(0,d.hH)(),E=(0,c.A)(),T=(0,a.useRef)(null);(0,a.useImperativeHandle)(y,()=>T.current);let _=t||n,A=(0,s.A)(_),C=_?.replace("pathname://",""),N=void 0!==C?(b=C,g&&b.startsWith("/")?x(b):b):void 0;"hash"===k&&N?.startsWith("./")&&(N=N?.slice(1)),N&&A&&(N=(0,i.applyTrailingSlash)(N,{trailingSlash:w,baseUrl:S}));let P=(0,a.useRef)(!1),O=e?o.k2:o.N_,L=u.A.canUseIntersectionObserver,I=(0,a.useRef)(void 0),R=()=>{P.current||null==N||(window.docusaurus.preload(N),P.current=!0)};(0,a.useEffect)(()=>(!L&&A&&u.A.canUseDOM&&null!=N&&window.docusaurus.prefetch(N),()=>{L&&I.current&&I.current.disconnect()}),[I,N,L,A]);let j=N?.startsWith("#")??!1,D=!h.target||"_self"===h.target,F=!N||!A||!D||j&&"hash"!==k;m||!j&&F||E.collectLink(N),h.id&&E.collectAnchor(h.id);let M={};return F?(0,r.jsx)("a",{ref:T,href:N,..._&&!A&&{target:"_blank",rel:"noopener noreferrer"},...h,...M}):(0,r.jsx)(O,{...h,onMouseEnter:R,onTouchStart:R,innerRef:e=>{T.current=e,L&&e&&A&&(I.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=N&&window.docusaurus.prefetch(N))})}),I.current.observe(e))},to:N,...e&&{isActive:p,activeClassName:f},...M})})},568(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(4848),a=n(6540);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal <Translate> children",e),Error("The Docusaurus <Translate> component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8977(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},8310(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},6497(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(6540),a=n(898),o=n(8310);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},5916(e,t,n){"use strict";n.d(t,{A:()=>o}),n(4848);var r=n(6540);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},898(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(3587);function o(){return(0,r.useContext)(a.o)}},9863(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(1173);function o(){return(0,r.useContext)(a.o)}},9989(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(6540);let a=n(1289).A.canUseDOM?r.useLayoutEffect:r.useEffect},8491(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(7574);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},7665(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},7574(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(4848),a=n(6540);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},2086(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(4848),a=n(6540),o=n(698),i=n(8977),l=n(1022),s=n(1367),u=n(2260);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},2473(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(4848),a=n(6540),o=n(2260);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8260(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>g,QB:()=>b,Vd:()=>h,Y:()=>m,fW:()=>y,w8:()=>p});var r=n(6540),a=n(6347),o=n(2831),i=n(698),l=n(9209),s=n(618),u=n(2086),c=n(921),d=n(2473);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function g(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function h(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function y(e,t){let n=h(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". Available sidebar ids are: - ${t.map(e=>e[0]).join("\n- ")}`);return r[1]},[e,n])}function b(e,t){let n=h(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.docs),r=t.find(t=>t.id===e);if(!r){if(n.flatMap(e=>e.draftIds).includes(e))return null;throw Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map(e=>e.name).join(", ")}". Available doc ids are: -- ${(0,s.sb)(t.map(e=>e.id)).join("\n- ")}`)}return r},[e,n])}function v({route:e}){let t=(0,a.zy)(),n=(0,c.r)(),r=e.routes,i=r.find(e=>(0,a.B6)(t.pathname,e));if(!i)return null;let l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.v)(r),sidebarName:l,sidebarItems:s}}},921(e,t,n){"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(4848),a=n(6540),o=n(2260);let i=a.createContext(null);function l({children:e,version:t}){return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},698(e,t,n){"use strict";n.d(t,{ht:()=>d,r7:()=>g,HW:()=>h,zK:()=>m,jh:()=>p,Gy:()=>c,vT:()=>f});var r=n(6347),a=n(898),o=n(8977);function i(e,t={}){let n=function(){let{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}let l=e=>e.versions.find(e=>e.isLast);function s(e,t){var n;let a,o=[...e.versions].sort((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:+!!t.path.includes(e.path)).find(e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),i=o?.docs.find(e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})),l=i?(n=i.id,a={},e.versions.forEach(e=>{e.docs.forEach(t=>{t.id===n&&(a[e.name]=t)})}),a):{};return{activeVersion:o,activeDoc:i,alternateDocVersions:l}}let u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t=o.W,n={}){let r=i(e),a=r?.[t];if(!a&&n.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw Error(`You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled${"Default"===e?"":` (pluginId=${e}`}`,{cause:t})}};function f(e={}){let t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n={}){let a=Object.entries(e).sort((e,t)=>t[1].path.localeCompare(e[1].path)).find(([,e])=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map(e=>e.path).join(", ")}`);return o}(t,n,e)}function p(e){return d(e).versions}function g(e){return l(d(e))}function m(e){let t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function h(e){let t,n=d(e),{pathname:a}=(0,r.zy)();return t=l(n),{latestDocSuggestion:s(n,a).alternateDocVersions[t.name],latestVersionSuggestion:t}}},3678(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});let o={onRouteUpdate({location:e,previousLocation:t}){if(t&&e.pathname!==t.pathname){let e=window.setTimeout(()=>{a().start()},200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2489(e,t,n){"use strict";var r=n(1765),a=n(4784);!function(e){let{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t,o=globalThis.Prism;globalThis.Prism=e,r.forEach(e=>{"php"===e&&n(9700),n(2416)(`./prism-${e}`)}),delete globalThis.Prism,void 0!==o&&(globalThis.Prism=e)}(r.My)},2072(e,t,n){"use strict";n.d(t,{A:()=>u});var r=n(4848);n(6540);var a=n(4164),o=n(568),i=n(4727),l=n(5310),s=n(5916);function u({as:e,id:t,...n}){let c=(0,s.A)(),d=(0,i.v)(t);if("h1"===e||!t)return(0,r.jsx)(e,{...n,id:void 0});c.collectAnchor(t);let f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof n.children?n.children:t});return(0,r.jsxs)(e,{...n,className:(0,a.A)("anchor",d,n.className),id:t,children:[n.children,(0,r.jsx)(l.A,{className:"hash-link",to:`#${t}`,"aria-label":f,title:f,translate:"no",children:"\u200B"})]})}},7715(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(4848);n(6540);var a=n(568);function o({width:e=13.5,height:t=13.5}){return(0,r.jsx)("svg",{width:e,height:t,"aria-label":(0,a.T)({id:"theme.IconExternalLink.ariaLabel",message:"(opens in new tab)",description:"The ARIA label for the external link icon"}),className:"iconExternalLink_nPIU",children:(0,r.jsx)("use",{href:"#theme-svg-external-link"})})}},6525(e,t,n){"use strict";n.d(t,{A:()=>eK});var r=n(4848),a=n(6540),o=n(4164),i=n(1701),l=n(4308),s=n(6347),u=n(568),c=n(8398);let d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}let p=(0,u.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){let t=e.children??p,{containerRef:n,onClick:o}=function(){let e=(0,a.useRef)(null),{action:t}=(0,s.W6)(),n=(0,a.useCallback)(e=>{e.preventDefault();let t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)},[]);return(0,c.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&f(e.current)}),{containerRef:e,onClick:n}}();return(0,r.jsx)("div",{ref:n,role:"region","aria-label":p,children:(0,r.jsx)("a",{...e,href:`#${d}`,onClick:o,children:t})})}var m=n(8287);function h(){return(0,r.jsx)(g,{className:"skipToContent_fXgn"})}var y=n(1022),b=n(3337);function v({width:e=21,height:t=21,color:n="currentColor",strokeWidth:a=1.2,className:o,...i}){return(0,r.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...i,children:(0,r.jsx)("g",{stroke:n,strokeWidth:a,children:(0,r.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}function w(e){return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close","closeButton_CVFx",e.className),children:(0,r.jsx)(v,{width:14,height:14,strokeWidth:3.1})})}function S(e){let{announcementBar:t}=(0,y.p)(),{content:n}=t;return(0,r.jsx)("div",{...e,className:(0,o.A)("content_knG7",e.className),dangerouslySetInnerHTML:{__html:n}})}function k(){let{announcementBar:e}=(0,y.p)(),{isActive:t,close:n}=(0,b.M)();if(!t)return null;let{backgroundColor:a,textColor:i,isCloseable:l}=e;return(0,r.jsxs)("div",{className:(0,o.A)(m.G.announcementBar.container,"announcementBar_mb4j"),style:{backgroundColor:a,color:i},role:"banner",children:[l&&(0,r.jsx)("div",{className:"announcementBarPlaceholder_vyr4"}),(0,r.jsx)(S,{className:"announcementBarContent_xLdY"}),l&&(0,r.jsx)(w,{onClick:n,className:"announcementBarClose_gvF7"})]})}var x=n(9965),E=n(8584),T=n(2260),_=n(7e3);let A=a.createContext(null);function C({children:e}){let t=function(){let e=(0,x.M)(),t=(0,_.YL)(),[n,r]=(0,a.useState)(!1),o=null!==t.component,i=(0,T.ZC)(o);return(0,a.useEffect)(()=>{o&&!i&&r(!0)},[o,i]),(0,a.useEffect)(()=>{o?e.shown||r(!0):r(!1)},[e.shown,o]),(0,a.useMemo)(()=>[n,r],[n])}();return(0,r.jsx)(A.Provider,{value:t,children:e})}function P(){let e=(0,a.useContext)(A);if(!e)throw new T.dV("NavbarSecondaryMenuDisplayProvider");let[t,n]=e,o=(0,a.useCallback)(()=>n(!1),[n]),i=(0,_.YL)();return(0,a.useMemo)(()=>({shown:t,hide:o,content:function(e){if(e.component){let t=e.component;return(0,r.jsx)(t,{...e.props})}}(i)}),[o,i,t])}function N({children:e,inert:t}){return(0,r.jsx)("div",{className:(0,o.A)(m.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...19>parseInt(a.version.split(".")[0],10)?{inert:t?"":void 0}:{inert:t},children:e})}function O({header:e,primaryMenu:t,secondaryMenu:n}){let{shown:a}=P();return(0,r.jsxs)("div",{className:(0,o.A)(m.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,r.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,r.jsx)(N,{inert:a,children:t}),(0,r.jsx)(N,{inert:!a,children:n})]})]})}var L=n(3941),I=n(9863);function R(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function j(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}function D(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}let F="toggleIcon_g3eP";function M(e){switch(e){case null:return(0,u.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,u.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,u.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw Error(`unexpected color mode ${e}`)}}function z(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(R,{"aria-hidden":!0,className:(0,o.A)(F,"lightToggleIcon_pyhR")}),(0,r.jsx)(j,{"aria-hidden":!0,className:(0,o.A)(F,"darkToggleIcon_wfgR")}),(0,r.jsx)(D,{"aria-hidden":!0,className:(0,o.A)(F,"systemToggleIcon_QzmC")})]})}let B=a.memo(function({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:a,onChange:i}){let l=(0,I.A)();return(0,r.jsx)("div",{className:(0,o.A)("toggle_vylO",e),children:(0,r.jsx)("button",{className:(0,o.A)("clean-btn","toggleButton_gllP",!l&&"toggleButtonDisabled_aARS",t),type:"button",onClick:()=>i(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw Error(`unexpected color mode ${e}`)}}(a,n)),disabled:!l,title:M(a),"aria-label":(0,u.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:M(a)}),children:(0,r.jsx)(z,{})})})});function U({className:e}){let t=(0,y.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:a}=(0,y.p)().colorMode,{colorModeChoice:o,setColorMode:i}=(0,L.G)();return n?null:(0,r.jsx)(B,{className:e,buttonClassName:"dark"===t?"darkNavbarColorModeToggle_X3D1":void 0,respectPrefersColorScheme:a,value:o,onChange:i})}var $=n(5153);function q(){return(0,r.jsx)($.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function H(){let e=(0,x.M)();return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,r.jsx)(v,{color:"var(--ifm-color-emphasis-600)"})})}function V(){return(0,r.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,r.jsx)(q,{}),(0,r.jsx)(U,{className:"margin-right--md"}),(0,r.jsx)(H,{})]})}var X=n(5310),G=n(6497),W=n(8310);function Y(e,t){return void 0!==e&&void 0!==t&&RegExp(e,"gi").test(t)}var K=n(7715);function Q({activeBasePath:e,activeBaseRegex:t,to:n,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}){let c=(0,G.Ay)(n),d=(0,G.Ay)(e),f=(0,G.Ay)(a,{forcePrependBaseUrl:!0}),p=o&&a&&!(0,W.A)(a),g=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,r.jsxs)(r.Fragment,{children:[o,p&&(0,r.jsx)(K.A,{...l&&{width:12,height:12}})]})};return a?(0,r.jsx)(X.A,{href:s?f:a,...u,...g}):(0,r.jsx)(X.A,{to:c,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?Y(t,n.pathname):n.pathname.startsWith(d)},...u,...g})}function Z({className:e,isDropdownItem:t,...n}){return(0,r.jsx)("li",{className:"menu__list-item",children:(0,r.jsx)(Q,{className:(0,o.A)("menu__link",e),...n})})}function J({className:e,isDropdownItem:t=!1,...n}){let a=(0,r.jsx)(Q,{className:(0,o.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,r.jsx)("li",{children:a}):a}function ee({mobile:e=!1,position:t,...n}){return(0,r.jsx)(e?Z:J,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var et=n(9510),en=n(9209),er=n(898);function ea({collapsed:e,onClick:t}){return(0,r.jsx)("button",{"aria-label":e?(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function eo({items:e,className:t,position:n,onClick:i,...l}){let u=function(){let{siteConfig:{baseUrl:e}}=(0,er.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),c=(0,en.ys)(l.to,u),d=e.some(e=>!!((0,en.ys)(e.to,u)||Y(e.activeBaseRegex,u)||e.activeBasePath&&u.startsWith(e.activeBasePath))),{collapsed:f,toggleCollapsed:p}=function({active:e}){let{collapsed:t,toggleCollapsed:n,setCollapsed:r}=(0,et.u)({initialState:()=>!e});return(0,a.useEffect)(()=>{e&&r(!1)},[e,r]),{collapsed:t,toggleCollapsed:n}}({active:c||d}),g=l.to?void 0:"#";return(0,r.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,r.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":c}),children:[(0,r.jsx)(Q,{role:"button",className:(0,o.A)("dropdownNavbarItemMobile_J0Sd","menu__link menu__link--sublist",t),href:g,...l,onClick:e=>{"#"===g&&e.preventDefault(),p()},children:l.children??l.label}),(0,r.jsx)(ea,{collapsed:f,onClick:e=>{e.preventDefault(),p()}})]}),(0,r.jsx)(et.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:e.map((e,t)=>(0,a.createElement)(eb,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t}))})]})}function ei({items:e,position:t,className:n,onClick:i,...l}){let s=(0,a.useRef)(null),[u,c]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=e=>{!s.current||s.current.contains(e.target)||c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}},[s]),(0,r.jsxs)("div",{ref:s,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":u}),children:[(0,r.jsx)(Q,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,o.A)("navbar__link",n),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),c(!u))},children:l.children??l.label}),(0,r.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,a.createElement)(eb,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function el({mobile:e=!1,...t}){return(0,r.jsx)(e?eo:ei,{...t})}var es=n(5243),eu=n(6629);function ec({width:e=20,height:t=20,...n}){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,r.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}let ed=()=>null;function ef({children:e,className:t}){return(0,r.jsx)("div",{className:(0,o.A)(t,"navbarSearchContainer_Bca1"),children:e})}var ep=n(698),eg=n(8260),em=n(2086);function eh(e,t){return t.alternateDocVersions[e.name]??e.docs.find(t=>t.id===e.mainDocId)}let ey={default:ee,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:a,...o}){let i=function(){let{siteConfig:e,i18n:{localeConfigs:t}}=(0,er.A)(),n=(0,es.o)(),r=(0,eu.Hl)(e=>e.location.search),a=(0,eu.Hl)(e=>e.location.hash),o=e=>{let n=t[e];if(!n)throw Error(`Docusaurus bug, no locale config found for locale=${e}`);return n};return{getURL:(t,i)=>{let l=(0,eu.jy)([r,i.queryString],"append");return`${o(t).url===e.url?`pathname://${n.createUrl({locale:t,fullyQualified:!1})}`:n.createUrl({locale:t,fullyQualified:!0})}${l}${a}`},getLabel:e=>o(e).label,getLang:e=>o(e).htmlLang}}(),{i18n:{currentLocale:l,locales:s}}=(0,er.A)(),c=[...t,...s.map(t=>({label:i.getLabel(t),lang:i.getLang(t),to:i.getURL(t,{queryString:a}),target:"_self",autoAddBaseUrl:!1,className:t===l?e?"menu__link--active":"dropdown__link--active":""})),...n],d=e?(0,u.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):i.getLabel(l);return(0,r.jsx)(el,{...o,mobile:e,label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ec,{className:"iconLanguage_nlXk"}),d]}),items:c})},search:function({mobile:e,className:t}){return e?null:(0,r.jsx)(ef,{className:t,children:(0,r.jsx)(ed,{})})},dropdown:el,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:a=!1}){return(0,r.jsx)(a?"li":"div",{className:(0,o.A)({navbar__item:!n&&!a,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,eg.QB)(e,n),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:t??i.id,to:i.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,eg.fW)(e,n).link;if(!i)throw Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>o?.sidebar===e,label:t??i.label,to:i.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...a}){let o=(0,eg.Vd)(n)[0],i=e??o.label,l=t??o.docs.find(e=>e.id===o.mainDocId).path;return(0,r.jsx)(ee,{...a,label:i,to:l})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:a,dropdownItemsAfter:o,versions:i,...l}){let s=(0,eu.Hl)(e=>e.location.search),c=(0,eu.Hl)(e=>e.location.hash),d=(0,ep.zK)(t),{savePreferredVersionName:f}=(0,em.g1)(t),p=function({docsPluginId:e,configs:t}){var n=(0,ep.jh)(e);if(!t)return n.map(e=>({version:e,label:e.label}));{let e=new Map(n.map(e=>[e.name,e])),r=(t,r)=>{let a=e.get(t);if(!a)throw Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config. +- ${(0,s.sb)(t.map(e=>e.id)).join("\n- ")}`)}return r},[e,n])}function v({route:e}){let t=(0,a.zy)(),n=(0,c.r)(),r=e.routes,i=r.find(e=>(0,a.B6)(t.pathname,e));if(!i)return null;let l=i.sidebar,s=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.v)(r),sidebarName:l,sidebarItems:s}}},921(e,t,n){"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(4848),a=n(6540),o=n(2260);let i=a.createContext(null);function l({children:e,version:t}){return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},698(e,t,n){"use strict";n.d(t,{ht:()=>d,r7:()=>m,HW:()=>h,zK:()=>g,jh:()=>p,Gy:()=>c,vT:()=>f});var r=n(6347),a=n(898),o=n(8977);function i(e,t={}){let n=function(){let{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}let l=e=>e.versions.find(e=>e.isLast);function s(e,t){var n;let a,o=[...e.versions].sort((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:+!!t.path.includes(e.path)).find(e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),i=o?.docs.find(e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})),l=i?(n=i.id,a={},e.versions.forEach(e=>{e.docs.forEach(t=>{t.id===n&&(a[e.name]=t)})}),a):{};return{activeVersion:o,activeDoc:i,alternateDocVersions:l}}let u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t=o.W,n={}){let r=i(e),a=r?.[t];if(!a&&n.failfast)throw Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw Error(`You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled${"Default"===e?"":` (pluginId=${e}`}`,{cause:t})}};function f(e={}){let t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n={}){let a=Object.entries(e).sort((e,t)=>t[1].path.localeCompare(e[1].path)).find(([,e])=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map(e=>e.path).join(", ")}`);return o}(t,n,e)}function p(e){return d(e).versions}function m(e){return l(d(e))}function g(e){let t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function h(e){let t,n=d(e),{pathname:a}=(0,r.zy)();return t=l(n),{latestDocSuggestion:s(n,a).alternateDocVersions[t.name],latestVersionSuggestion:t}}},3678(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});let o={onRouteUpdate({location:e,previousLocation:t}){if(t&&e.pathname!==t.pathname){let e=window.setTimeout(()=>{a().start()},200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2489(e,t,n){"use strict";var r=n(1765),a=n(4784);!function(e){let{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t,o=globalThis.Prism;globalThis.Prism=e,r.forEach(e=>{"php"===e&&n(9700),n(2416)(`./prism-${e}`)}),delete globalThis.Prism,void 0!==o&&(globalThis.Prism=e)}(r.My)},2072(e,t,n){"use strict";n.d(t,{A:()=>u});var r=n(4848);n(6540);var a=n(4164),o=n(568),i=n(4727),l=n(5310),s=n(5916);function u({as:e,id:t,...n}){let c=(0,s.A)(),d=(0,i.v)(t);if("h1"===e||!t)return(0,r.jsx)(e,{...n,id:void 0});c.collectAnchor(t);let f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof n.children?n.children:t});return(0,r.jsxs)(e,{...n,className:(0,a.A)("anchor",d,n.className),id:t,children:[n.children,(0,r.jsx)(l.A,{className:"hash-link",to:`#${t}`,"aria-label":f,title:f,translate:"no",children:"\u200B"})]})}},7715(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(4848);n(6540);var a=n(568);function o({width:e=13.5,height:t=13.5}){return(0,r.jsx)("svg",{width:e,height:t,"aria-label":(0,a.T)({id:"theme.IconExternalLink.ariaLabel",message:"(opens in new tab)",description:"The ARIA label for the external link icon"}),className:"iconExternalLink_nPIU",children:(0,r.jsx)("use",{href:"#theme-svg-external-link"})})}},6525(e,t,n){"use strict";n.d(t,{A:()=>eK});var r=n(4848),a=n(6540),o=n(4164),i=n(1701),l=n(4308),s=n(6347),u=n(568),c=n(8398);let d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}let p=(0,u.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){let t=e.children??p,{containerRef:n,onClick:o}=function(){let e=(0,a.useRef)(null),{action:t}=(0,s.W6)(),n=(0,a.useCallback)(e=>{e.preventDefault();let t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)},[]);return(0,c.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&f(e.current)}),{containerRef:e,onClick:n}}();return(0,r.jsx)("div",{ref:n,role:"region","aria-label":p,children:(0,r.jsx)("a",{...e,href:`#${d}`,onClick:o,children:t})})}var g=n(8287);function h(){return(0,r.jsx)(m,{className:"skipToContent_fXgn"})}var y=n(1022),b=n(3337);function v({width:e=21,height:t=21,color:n="currentColor",strokeWidth:a=1.2,className:o,...i}){return(0,r.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...i,children:(0,r.jsx)("g",{stroke:n,strokeWidth:a,children:(0,r.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}function w(e){return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close","closeButton_CVFx",e.className),children:(0,r.jsx)(v,{width:14,height:14,strokeWidth:3.1})})}function S(e){let{announcementBar:t}=(0,y.p)(),{content:n}=t;return(0,r.jsx)("div",{...e,className:(0,o.A)("content_knG7",e.className),dangerouslySetInnerHTML:{__html:n}})}function k(){let{announcementBar:e}=(0,y.p)(),{isActive:t,close:n}=(0,b.M)();if(!t)return null;let{backgroundColor:a,textColor:i,isCloseable:l}=e;return(0,r.jsxs)("div",{className:(0,o.A)(g.G.announcementBar.container,"announcementBar_mb4j"),style:{backgroundColor:a,color:i},role:"banner",children:[l&&(0,r.jsx)("div",{className:"announcementBarPlaceholder_vyr4"}),(0,r.jsx)(S,{className:"announcementBarContent_xLdY"}),l&&(0,r.jsx)(w,{onClick:n,className:"announcementBarClose_gvF7"})]})}var x=n(9965),E=n(8584),T=n(2260),_=n(7e3);let A=a.createContext(null);function C({children:e}){let t=function(){let e=(0,x.M)(),t=(0,_.YL)(),[n,r]=(0,a.useState)(!1),o=null!==t.component,i=(0,T.ZC)(o);return(0,a.useEffect)(()=>{o&&!i&&r(!0)},[o,i]),(0,a.useEffect)(()=>{o?e.shown||r(!0):r(!1)},[e.shown,o]),(0,a.useMemo)(()=>[n,r],[n])}();return(0,r.jsx)(A.Provider,{value:t,children:e})}function N(){let e=(0,a.useContext)(A);if(!e)throw new T.dV("NavbarSecondaryMenuDisplayProvider");let[t,n]=e,o=(0,a.useCallback)(()=>n(!1),[n]),i=(0,_.YL)();return(0,a.useMemo)(()=>({shown:t,hide:o,content:function(e){if(e.component){let t=e.component;return(0,r.jsx)(t,{...e.props})}}(i)}),[o,i,t])}function P({children:e,inert:t}){return(0,r.jsx)("div",{className:(0,o.A)(g.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...19>parseInt(a.version.split(".")[0],10)?{inert:t?"":void 0}:{inert:t},children:e})}function O({header:e,primaryMenu:t,secondaryMenu:n}){let{shown:a}=N();return(0,r.jsxs)("div",{className:(0,o.A)(g.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,r.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,r.jsx)(P,{inert:a,children:t}),(0,r.jsx)(P,{inert:!a,children:n})]})]})}var L=n(3941),I=n(9863);function R(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function j(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}function D(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}let F="toggleIcon_g3eP";function M(e){switch(e){case null:return(0,u.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,u.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,u.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw Error(`unexpected color mode ${e}`)}}function z(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(R,{"aria-hidden":!0,className:(0,o.A)(F,"lightToggleIcon_pyhR")}),(0,r.jsx)(j,{"aria-hidden":!0,className:(0,o.A)(F,"darkToggleIcon_wfgR")}),(0,r.jsx)(D,{"aria-hidden":!0,className:(0,o.A)(F,"systemToggleIcon_QzmC")})]})}let B=a.memo(function({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:a,onChange:i}){let l=(0,I.A)();return(0,r.jsx)("div",{className:(0,o.A)("toggle_vylO",e),children:(0,r.jsx)("button",{className:(0,o.A)("clean-btn","toggleButton_gllP",!l&&"toggleButtonDisabled_aARS",t),type:"button",onClick:()=>i(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw Error(`unexpected color mode ${e}`)}}(a,n)),disabled:!l,title:M(a),"aria-label":(0,u.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:M(a)}),children:(0,r.jsx)(z,{})})})});function U({className:e}){let t=(0,y.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:a}=(0,y.p)().colorMode,{colorModeChoice:o,setColorMode:i}=(0,L.G)();return n?null:(0,r.jsx)(B,{className:e,buttonClassName:"dark"===t?"darkNavbarColorModeToggle_X3D1":void 0,respectPrefersColorScheme:a,value:o,onChange:i})}var $=n(5153);function q(){return(0,r.jsx)($.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function H(){let e=(0,x.M)();return(0,r.jsx)("button",{type:"button","aria-label":(0,u.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,r.jsx)(v,{color:"var(--ifm-color-emphasis-600)"})})}function V(){return(0,r.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,r.jsx)(q,{}),(0,r.jsx)(U,{className:"margin-right--md"}),(0,r.jsx)(H,{})]})}var X=n(5310),G=n(6497),W=n(8310);function Y(e,t){return void 0!==e&&void 0!==t&&RegExp(e,"gi").test(t)}var K=n(7715);function Q({activeBasePath:e,activeBaseRegex:t,to:n,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}){let c=(0,G.Ay)(n),d=(0,G.Ay)(e),f=(0,G.Ay)(a,{forcePrependBaseUrl:!0}),p=o&&a&&!(0,W.A)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,r.jsxs)(r.Fragment,{children:[o,p&&(0,r.jsx)(K.A,{...l&&{width:12,height:12}})]})};return a?(0,r.jsx)(X.A,{href:s?f:a,...u,...m}):(0,r.jsx)(X.A,{to:c,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?Y(t,n.pathname):n.pathname.startsWith(d)},...u,...m})}function Z({className:e,isDropdownItem:t,...n}){return(0,r.jsx)("li",{className:"menu__list-item",children:(0,r.jsx)(Q,{className:(0,o.A)("menu__link",e),...n})})}function J({className:e,isDropdownItem:t=!1,...n}){let a=(0,r.jsx)(Q,{className:(0,o.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,r.jsx)("li",{children:a}):a}function ee({mobile:e=!1,position:t,...n}){return(0,r.jsx)(e?Z:J,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var et=n(9510),en=n(9209),er=n(898);function ea({collapsed:e,onClick:t}){return(0,r.jsx)("button",{"aria-label":e?(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,u.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function eo({items:e,className:t,position:n,onClick:i,...l}){let u=function(){let{siteConfig:{baseUrl:e}}=(0,er.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),c=(0,en.ys)(l.to,u),d=e.some(e=>!!((0,en.ys)(e.to,u)||Y(e.activeBaseRegex,u)||e.activeBasePath&&u.startsWith(e.activeBasePath))),{collapsed:f,toggleCollapsed:p}=function({active:e}){let{collapsed:t,toggleCollapsed:n,setCollapsed:r}=(0,et.u)({initialState:()=>!e});return(0,a.useEffect)(()=>{e&&r(!1)},[e,r]),{collapsed:t,toggleCollapsed:n}}({active:c||d}),m=l.to?void 0:"#";return(0,r.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,r.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":c}),children:[(0,r.jsx)(Q,{role:"button",className:(0,o.A)("dropdownNavbarItemMobile_J0Sd","menu__link menu__link--sublist",t),href:m,...l,onClick:e=>{"#"===m&&e.preventDefault(),p()},children:l.children??l.label}),(0,r.jsx)(ea,{collapsed:f,onClick:e=>{e.preventDefault(),p()}})]}),(0,r.jsx)(et.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:e.map((e,t)=>(0,a.createElement)(eb,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t}))})]})}function ei({items:e,position:t,className:n,onClick:i,...l}){let s=(0,a.useRef)(null),[u,c]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=e=>{!s.current||s.current.contains(e.target)||c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}},[s]),(0,r.jsxs)("div",{ref:s,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":u}),children:[(0,r.jsx)(Q,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,o.A)("navbar__link",n),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),c(!u))},children:l.children??l.label}),(0,r.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,a.createElement)(eb,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function el({mobile:e=!1,...t}){return(0,r.jsx)(e?eo:ei,{...t})}var es=n(5243),eu=n(6629);function ec({width:e=20,height:t=20,...n}){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,r.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}let ed=()=>null;function ef({children:e,className:t}){return(0,r.jsx)("div",{className:(0,o.A)(t,"navbarSearchContainer_Bca1"),children:e})}var ep=n(698),em=n(8260),eg=n(2086);function eh(e,t){return t.alternateDocVersions[e.name]??e.docs.find(t=>t.id===e.mainDocId)}let ey={default:ee,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:a,...o}){let i=function(){let{siteConfig:e,i18n:{localeConfigs:t}}=(0,er.A)(),n=(0,es.o)(),r=(0,eu.Hl)(e=>e.location.search),a=(0,eu.Hl)(e=>e.location.hash),o=e=>{let n=t[e];if(!n)throw Error(`Docusaurus bug, no locale config found for locale=${e}`);return n};return{getURL:(t,i)=>{let l=(0,eu.jy)([r,i.queryString],"append");return`${o(t).url===e.url?`pathname://${n.createUrl({locale:t,fullyQualified:!1})}`:n.createUrl({locale:t,fullyQualified:!0})}${l}${a}`},getLabel:e=>o(e).label,getLang:e=>o(e).htmlLang}}(),{i18n:{currentLocale:l,locales:s}}=(0,er.A)(),c=[...t,...s.map(t=>({label:i.getLabel(t),lang:i.getLang(t),to:i.getURL(t,{queryString:a}),target:"_self",autoAddBaseUrl:!1,className:t===l?e?"menu__link--active":"dropdown__link--active":""})),...n],d=e?(0,u.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):i.getLabel(l);return(0,r.jsx)(el,{...o,mobile:e,label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ec,{className:"iconLanguage_nlXk"}),d]}),items:c})},search:function({mobile:e,className:t}){return e?null:(0,r.jsx)(ef,{className:t,children:(0,r.jsx)(ed,{})})},dropdown:el,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:a=!1}){return(0,r.jsx)(a?"li":"div",{className:(0,o.A)({navbar__item:!n&&!a,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,em.QB)(e,n),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:t??i.id,to:i.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...a}){let{activeDoc:o}=(0,ep.zK)(n),i=(0,em.fW)(e,n).link;if(!i)throw Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,r.jsx)(ee,{exact:!0,...a,isActive:()=>o?.sidebar===e,label:t??i.label,to:i.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...a}){let o=(0,em.Vd)(n)[0],i=e??o.label,l=t??o.docs.find(e=>e.id===o.mainDocId).path;return(0,r.jsx)(ee,{...a,label:i,to:l})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:a,dropdownItemsAfter:o,versions:i,...l}){let s=(0,eu.Hl)(e=>e.location.search),c=(0,eu.Hl)(e=>e.location.hash),d=(0,ep.zK)(t),{savePreferredVersionName:f}=(0,eg.g1)(t),p=function({docsPluginId:e,configs:t}){var n=(0,ep.jh)(e);if(!t)return n.map(e=>({version:e,label:e.label}));{let e=new Map(n.map(e=>[e.name,e])),r=(t,r)=>{let a=e.get(t);if(!a)throw Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config. Available version names: -- ${n.map(e=>`${e.name}`).join("\n- ")}`);return{version:a,label:r?.label??a.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}}({docsPluginId:t,configs:i}),g=function({docsPluginId:e,versionItems:t}){return(0,eg.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:p}),m=[...a,...p.map(function({version:e,label:t}){let n=eh(e,d);return{label:t,to:`${n.path}${s}${c}`,isActive:()=>e===d.activeVersion,onClick:()=>f(e.name)}}),...o],h=e&&m.length>1?(0,u.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=e&&m.length>1?void 0:eh(g.version,d).path;return m.length<=1?(0,r.jsx)(ee,{...l,mobile:e,label:h,to:y,isActive:n?()=>!1:void 0}):(0,r.jsx)(el,{...l,mobile:e,label:h,to:y,items:m,isActive:n?()=>!1:void 0})}};function eb({type:e,...t}){let n=ey[!e||"default"===e?"items"in t?"dropdown":"default":e];if(!n)throw Error(`No NavbarItem component found for type "${e}".`);return(0,r.jsx)(n,{...t})}function ev(){let e=(0,x.M)(),t=(0,y.p)().navbar.items;return(0,r.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,a.createElement)(eb,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function ew(e){return(0,r.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,r.jsx)(u.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function eS(){let e=0===(0,y.p)().navbar.items.length,t=P();return(0,r.jsxs)(r.Fragment,{children:[!e&&(0,r.jsx)(ew,{onClick:()=>t.hide()}),t.content]})}function ek(){let e=(0,x.M)();return(!function(e=!0){(0,a.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender)?(0,r.jsx)(O,{header:(0,r.jsx)(V,{}),primaryMenu:(0,r.jsx)(ev,{}),secondaryMenu:(0,r.jsx)(eS,{})}):null}function ex(e){return(0,r.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function eE({children:e}){let{navbar:{hideOnScroll:t,style:n}}=(0,y.p)(),i=(0,x.M)(),{navbarRef:l,isNavbarVisible:s}=function(e){let[t,n]=(0,a.useState)(e),r=(0,a.useRef)(!1),o=(0,a.useRef)(0),i=(0,a.useCallback)(e=>{null!==e&&(o.current=e.getBoundingClientRect().height)},[]);return(0,E.Mq)(({scrollY:t},a)=>{if(!e)return;if(t<o.current)return void n(!0);if(r.current){r.current=!1;return}let i=a?.scrollY,l=document.documentElement.scrollHeight-o.current,s=window.innerHeight;i&&t>=i?n(!1):t+s<l&&n(!0)}),(0,c.$)(t=>{if(!e)return;let a=t.location.hash;if(a?document.getElementById(a.substring(1)):void 0){r.current=!0,n(!1);return}n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,r.jsxs)("nav",{ref:l,"aria-label":(0,u.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)(m.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&["navbarHideable_m1mJ",!s&&"navbarHidden_jGov"],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":i.shown}),children:[e,(0,r.jsx)(ex,{onClick:i.toggle}),(0,r.jsx)(ek,{})]})}var eT=n(3072);function e_({width:e=30,height:t=30,className:n,...a}){return(0,r.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function eA(){let{toggle:e,shown:t}=(0,x.M)();return(0,r.jsx)("button",{onClick:e,"aria-label":(0,u.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,r.jsx)(e_,{})})}function eC({items:e}){return(0,r.jsx)(r.Fragment,{children:e.map((e,t)=>(0,r.jsx)(eT.k2,{onError:t=>Error(`A theme navbar item failed to render. +- ${n.map(e=>`${e.name}`).join("\n- ")}`);return{version:a,label:r?.label??a.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}}({docsPluginId:t,configs:i}),m=function({docsPluginId:e,versionItems:t}){return(0,em.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:p}),g=[...a,...p.map(function({version:e,label:t}){let n=eh(e,d);return{label:t,to:`${n.path}${s}${c}`,isActive:()=>e===d.activeVersion,onClick:()=>f(e.name)}}),...o],h=e&&g.length>1?(0,u.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,y=e&&g.length>1?void 0:eh(m.version,d).path;return g.length<=1?(0,r.jsx)(ee,{...l,mobile:e,label:h,to:y,isActive:n?()=>!1:void 0}):(0,r.jsx)(el,{...l,mobile:e,label:h,to:y,items:g,isActive:n?()=>!1:void 0})}};function eb({type:e,...t}){let n=ey[!e||"default"===e?"items"in t?"dropdown":"default":e];if(!n)throw Error(`No NavbarItem component found for type "${e}".`);return(0,r.jsx)(n,{...t})}function ev(){let e=(0,x.M)(),t=(0,y.p)().navbar.items;return(0,r.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,a.createElement)(eb,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function ew(e){return(0,r.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,r.jsx)(u.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function eS(){let e=0===(0,y.p)().navbar.items.length,t=N();return(0,r.jsxs)(r.Fragment,{children:[!e&&(0,r.jsx)(ew,{onClick:()=>t.hide()}),t.content]})}function ek(){let e=(0,x.M)();return(!function(e=!0){(0,a.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender)?(0,r.jsx)(O,{header:(0,r.jsx)(V,{}),primaryMenu:(0,r.jsx)(ev,{}),secondaryMenu:(0,r.jsx)(eS,{})}):null}function ex(e){return(0,r.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function eE({children:e}){let{navbar:{hideOnScroll:t,style:n}}=(0,y.p)(),i=(0,x.M)(),{navbarRef:l,isNavbarVisible:s}=function(e){let[t,n]=(0,a.useState)(e),r=(0,a.useRef)(!1),o=(0,a.useRef)(0),i=(0,a.useCallback)(e=>{null!==e&&(o.current=e.getBoundingClientRect().height)},[]);return(0,E.Mq)(({scrollY:t},a)=>{if(!e)return;if(t<o.current)return void n(!0);if(r.current){r.current=!1;return}let i=a?.scrollY,l=document.documentElement.scrollHeight-o.current,s=window.innerHeight;i&&t>=i?n(!1):t+s<l&&n(!0)}),(0,c.$)(t=>{if(!e)return;let a=t.location.hash;if(a?document.getElementById(a.substring(1)):void 0){r.current=!0,n(!1);return}n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,r.jsxs)("nav",{ref:l,"aria-label":(0,u.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)(g.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&["navbarHideable_m1mJ",!s&&"navbarHidden_jGov"],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":i.shown}),children:[e,(0,r.jsx)(ex,{onClick:i.toggle}),(0,r.jsx)(ek,{})]})}var eT=n(3072);function e_({width:e=30,height:t=30,className:n,...a}){return(0,r.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function eA(){let{toggle:e,shown:t}=(0,x.M)();return(0,r.jsx)("button",{onClick:e,"aria-label":(0,u.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,r.jsx)(e_,{})})}function eC({items:e}){return(0,r.jsx)(r.Fragment,{children:e.map((e,t)=>(0,r.jsx)(eT.k2,{onError:t=>Error(`A theme navbar item failed to render. Please double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config: -${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,r.jsx)(eb,{...e})},t))})}function eP({left:e,right:t}){return(0,r.jsxs)("div",{className:"navbar__inner",children:[(0,r.jsx)("div",{className:(0,o.A)(m.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,r.jsx)("div",{className:(0,o.A)(m.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function eN(){let e=(0,x.M)(),t=(0,y.p)().navbar.items,[n,a]=function(e){function t(e){return(e.position??"right")==="left"}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,r.jsx)(eP,{left:(0,r.jsxs)(r.Fragment,{children:[!e.disabled&&(0,r.jsx)(eA,{}),(0,r.jsx)(q,{}),(0,r.jsx)(eC,{items:n})]}),right:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eC,{items:a}),(0,r.jsx)(U,{className:"colorModeToggle_DEke"}),!o&&(0,r.jsx)(ef,{children:(0,r.jsx)(ed,{})})]})})}function eO(){return(0,r.jsx)(eE,{children:(0,r.jsx)(eN,{})})}function eL({item:e}){let{to:t,href:n,label:a,prependBaseUrlToHref:i,className:l,...s}=e,u=(0,G.Ay)(t),c=(0,G.Ay)(n,{forcePrependBaseUrl:!0});return(0,r.jsxs)(X.A,{className:(0,o.A)("footer__link-item",l),...n?{href:i?c:n}:{to:u},...s,children:[a,n&&!(0,W.A)(n)&&(0,r.jsx)(K.A,{})]})}function eI({item:e}){return e.html?(0,r.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)("li",{className:"footer__item",children:(0,r.jsx)(eL,{item:e})},e.href??e.to)}function eR({column:e}){return(0,r.jsxs)("div",{className:(0,o.A)(m.G.layout.footer.column,"col footer__col",e.className),children:[(0,r.jsx)("div",{className:"footer__title",children:e.title}),(0,r.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,r.jsx)(eI,{item:e},t))})]})}function ej({columns:e}){return(0,r.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,r.jsx)(eR,{column:e},t))})}function eD(){return(0,r.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function eF({item:e}){return e.html?(0,r.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)(eL,{item:e})}function eM({links:e}){return(0,r.jsx)("div",{className:"footer__links text--center",children:(0,r.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(eF,{item:t}),e.length!==n+1&&(0,r.jsx)(eD,{})]},n))})})}function ez({links:e}){return"title"in e[0]?(0,r.jsx)(ej,{columns:e}):(0,r.jsx)(eM,{links:e})}var eB=n(8586);function eU({logo:e}){let{withBaseUrl:t}=(0,G.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,r.jsx)(eB.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function e$({logo:e}){return e.href?(0,r.jsx)(X.A,{href:e.href,className:"footerLogoLink_BH7S",target:e.target,children:(0,r.jsx)(eU,{logo:e})}):(0,r.jsx)(eU,{logo:e})}function eq({copyright:e}){return(0,r.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function eH({style:e,links:t,logo:n,copyright:a}){return(0,r.jsx)("footer",{className:(0,o.A)(m.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,r.jsxs)("div",{className:"container container-fluid",children:[t,(n||a)&&(0,r.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,r.jsx)("div",{className:"margin-bottom--sm",children:n}),a]})]})})}let eV=a.memo(function(){let{footer:e}=(0,y.p)();if(!e)return null;let{copyright:t,links:n,logo:a,style:o}=e;return(0,r.jsx)(eH,{style:o,links:n&&n.length>0&&(0,r.jsx)(ez,{links:n}),logo:a&&(0,r.jsx)(e$,{logo:a}),copyright:t&&(0,r.jsx)(eq,{copyright:t})})}),eX=(0,T.fM)([L.a,b.o,E.Tv,em.VQ,l.Jx,function({children:e}){return(0,r.jsx)(_.y_,{children:(0,r.jsx)(x.e,{children:(0,r.jsx)(C,{children:e})})})}]);function eG({children:e}){return(0,r.jsx)(eX,{children:e})}var eW=n(2072);function eY({error:e,tryAgain:t}){return(0,r.jsx)("main",{className:"container margin-vert--xl",children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(eW.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,r.jsx)("div",{className:"margin-vert--lg",children:(0,r.jsx)(eT.a2,{onClick:t,className:"button button--primary shadow--lw"})}),(0,r.jsx)("hr",{}),(0,r.jsx)("div",{className:"margin-vert--md",children:(0,r.jsx)(eT.bq,{error:e})})]})})})}function eK(e){let{children:t,noFooter:n,wrapperClassName:a,title:s,description:u}=e;return(0,r.jsxs)(eG,{children:[(0,r.jsx)(l.be,{title:s,description:u}),(0,r.jsx)(h,{}),(0,r.jsx)(k,{}),(0,r.jsx)(eO,{}),(0,r.jsx)("div",{id:d,className:(0,o.A)(m.G.layout.main.container,m.G.wrapper.main,"mainWrapper_z2l0",a),children:(0,r.jsx)(i.A,{fallback:e=>(0,r.jsx)(eY,{...e}),children:t})}),!n&&(0,r.jsx)(eV,{})]})}},5153(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(4848);n(6540);var a=n(5310),o=n(6497),i=n(898),l=n(1022),s=n(8586);function u({logo:e,alt:t,imageClassName:n}){let a={light:(0,o.Ay)(e.src),dark:(0,o.Ay)(e.srcDark||e.src)},i=(0,r.jsx)(s.A,{className:e.className,sources:a,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,r.jsx)("div",{className:n,children:i}):i}function c(e){let{siteConfig:{title:t}}=(0,i.A)(),{navbar:{title:n,logo:s}}=(0,l.p)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,o.Ay)(s?.href||"/"),g=s?.alt??(n?"":t);return(0,r.jsxs)(a.A,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,r.jsx)(u,{logo:s,alt:g,imageClassName:c}),null!=n&&(0,r.jsx)("b",{className:d,children:n})]})}},4175(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(4848);n(6540);var a=n(3572);function o({locale:e,version:t,tag:n}){return(0,r.jsxs)(a.A,{children:[e&&(0,r.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,r.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,r.jsx)("meta",{name:"docusaurus_tag",content:n}),e&&(0,r.jsx)("meta",{name:"docsearch:language",content:e}),t&&(0,r.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,r.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},8586(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(4848),a=n(6540),o=n(4164),i=n(9863),l=n(3941);let s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};function u({className:e,children:t}){let n=(0,i.A)(),{colorMode:c}=(0,l.G)();return(0,r.jsx)(r.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{let i=t({theme:n,className:(0,o.A)(e,s.themedComponent,s[`themedComponent--${n}`])});return(0,r.jsx)(a.Fragment,{children:i},n)})})}function c(e){let{sources:t,className:n,alt:a,...o}=e;return(0,r.jsx)(u,{className:n,children:({theme:e,className:n})=>(0,r.jsx)("img",{src:t[e],alt:a,className:n,...o})})}},9510(e,t,n){"use strict";n.d(t,{N:()=>p,u:()=>l});var r=n(4848),a=n(6540),o=n(9989),i=n(269);function l({initialState:e}){let[t,n]=(0,a.useState)(e??!1),r=(0,a.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:r}}let s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){let n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d({as:e="div",collapsed:t,children:n,animation:o,onCollapseTransitionEnd:l,className:u}){let f=(0,a.useRef)(null);return!function({collapsibleRef:e,collapsed:t,animation:n}){let r=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let a,o=e.current;function l(){let e,t,r,a=(e=o.scrollHeight,t=n?.duration??function(e){if((0,i.O)())return 1;let t=e/36;return Math.round((4+15*t**.25+t/5)*10)}(e),r=n?.easing??"ease-in-out",{transition:`height ${t}ms ${r}`,height:`${e}px`});o.style.transition=a.transition,o.style.height=a.height}if(!r.current){c(o,t),r.current=!0;return}return o.style.willChange="height",a=requestAnimationFrame(()=>{t?(l(),requestAnimationFrame(()=>{o.style.height=s.height,o.style.overflow=s.overflow})):(o.style.display="block",requestAnimationFrame(()=>{l()}))}),()=>cancelAnimationFrame(a)},[e,t,n])}({collapsibleRef:f,collapsed:t,animation:o}),(0,r.jsx)(e,{ref:f,onTransitionEnd:e=>{"height"===e.propertyName&&(c(f.current,t),l?.(t))},className:u,children:n})}function f({collapsed:e,...t}){let[n,i]=(0,a.useState)(!e),[l,s]=(0,a.useState)(e);return(0,o.A)(()=>{e||i(!0)},[e]),(0,o.A)(()=>{n&&s(e)},[n,e]),n?(0,r.jsx)(d,{...t,collapsed:l}):null}function p({lazy:e,...t}){return(0,r.jsx)(e?f:d,{...t})}},3337(e,t,n){"use strict";n.d(t,{M:()=>g,o:()=>p});var r=n(4848),a=n(6540),o=n(9863),i=n(1367),l=n(2260),s=n(1022);let u=(0,i.Wf)("docusaurus.announcement.dismiss"),c=(0,i.Wf)("docusaurus.announcement.id"),d=e=>u.set(String(e)),f=a.createContext(null);function p({children:e}){let t=function(){let{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(()=>!!t&&"true"===u.get());(0,a.useEffect)(()=>{r("true"===u.get())},[]);let i=(0,a.useCallback)(()=>{d(!0),r(!0)},[]);return(0,a.useEffect)(()=>{if(!e)return;let{id:t}=e,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");let a=t!==n;c.set(t),a&&d(!1),(a||"true"!==u.get())&&r(!1)},[e]),(0,a.useMemo)(()=>({isActive:!!e&&!n,close:i}),[e,n,i])}();return(0,r.jsx)(f.Provider,{value:t,children:e})}function g(){let e=(0,a.useContext)(f);if(!e)throw new l.dV("AnnouncementBarProvider");return e}},3941(e,t,n){"use strict";n.d(t,{G:()=>w,a:()=>v});var r=n(4848),a=n(6540),o=n(9863),i=n(2260),l=n(1367),s=n(1022);function u(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}let c=a.createContext(void 0),d=(0,l.Wf)("theme"),f="system",p=e=>"dark"===e?"dark":"light",g=e=>null===e||e===f?null:p(e),m=()=>p(document.documentElement.getAttribute("data-theme")),h=e=>{document.documentElement.setAttribute("data-theme",p(e))},y=()=>g(document.documentElement.getAttribute("data-theme-choice")),b=e=>{document.documentElement.setAttribute("data-theme-choice",g(e)??f)};function v({children:e}){let t=function(){let{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),{colorMode:r,setColorModeState:i,colorModeChoice:l,setColorModeChoiceState:c}=function(){let{colorMode:{defaultMode:e}}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(t?m():e),[i,l]=(0,a.useState)(t?y():null);return(0,a.useEffect)(()=>{r(m()),l(y())},[]),{colorMode:n,setColorModeState:r,colorModeChoice:i,setColorModeChoiceState:l}}();(0,a.useEffect)(()=>{t&&d.del()},[t]);let f=(0,a.useCallback)((t,r={})=>{let{persist:a=!0}=r;if(null===t){let t=n?u():e;h(t),i(t),b(null),c(null)}else h(t),b(t),i(t),c(t);a&&(null===t?d.del():d.set(p(t)))},[i,c,n,e]);return(0,a.useEffect)(()=>d.listen(e=>{f(g(e.newValue))}),[f]),(0,a.useEffect)(()=>{if(null===l&&n){var e,t;let n;return e=e=>{i(e),h(e)},t=()=>e(u()),(n=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",t),()=>n.removeEventListener("change",t)}},[n,l,i]),(0,a.useMemo)(()=>({colorMode:r,colorModeChoice:l,setColorMode:f,get isDarkTheme(){return"dark"===r},setLightTheme(){f("light")},setDarkTheme(){f("dark")}}),[r,l,f])}();return(0,r.jsx)(c.Provider,{value:t,children:e})}function w(){let e=(0,a.useContext)(c);if(null==e)throw new i.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},9965(e,t,n){"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(4848),a=n(6540),o=n(7e3),i=n(3741),l=n(6629),s=n(1022),u=n(2260);let c=a.createContext(void 0);function d({handler:e}){return(0,l.$Z)(e),null}function f({children:e}){let t=function(){let e=function(){let e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,i.l)(),n=!e&&"mobile"===t,[r,l]=(0,a.useState)(!1),u=(0,a.useCallback)(()=>{l(e=>!e)},[]);return(0,a.useEffect)(()=>{"desktop"===t&&l(!1)},[t]),(0,a.useMemo)(()=>({disabled:e,shouldRender:n,toggle:u,shown:r}),[e,n,u,r])}();return(0,r.jsxs)(r.Fragment,{children:[t.shown&&(0,r.jsx)(d,{handler:()=>(t.toggle(),!1)}),(0,r.jsx)(c.Provider,{value:t,children:e})]})}function p(){let e=a.useContext(c);if(void 0===e)throw new u.dV("NavbarMobileSidebarProvider");return e}},7e3(e,t,n){"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(4848),a=n(6540),o=n(2260);let i=a.createContext(null);function l({children:e}){let t=(0,a.useState)({component:null,props:null});return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u({component:e,props:t}){let n=(0,a.useContext)(i);if(!n)throw new o.dV("NavbarSecondaryMenuContentProvider");let[,r]=n,l=(0,o.Be)(t);return(0,a.useEffect)(()=>{r({component:e,props:l})},[r,e,l]),(0,a.useEffect)(()=>()=>r({component:null,props:null}),[r]),null}},3741(e,t,n){"use strict";n.d(t,{l:()=>o});var r=n(6540),a=n(1289);function o({desktopBreakpoint:e=996}={}){let[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!a.A.canUseDOM)throw Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?"desktop":"mobile"}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},8287(e,t,n){"use strict";n.d(t,{G:()=>r});let r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},tabs:{container:"theme-tabs-container"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`,docCard:{container:"theme-doc-card-container",heading:"theme-doc-card-heading",icon:"theme-doc-card-icon",title:"theme-doc-card-title",description:"theme-doc-card-description"}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},269(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},4727(e,t,n){"use strict";n.d(t,{v:()=>a});var r=n(1022);function a(e){let{navbar:{hideOnScroll:t}}=(0,r.p)();if(void 0!==e)return t?"anchorTargetHideOnScrollNavbar_vjPI":"anchorTargetStickyNavbar_Vzrq"}},3072(e,t,n){"use strict";n.d(t,{MN:()=>s,k2:()=>c,a2:()=>l,bq:()=>u});var r=n(4848),a=n(6540),o=n(568),i=n(5248);function l(e){return(0,r.jsx)("button",{type:"button",...e,children:(0,r.jsx)(o.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function s({error:e,tryAgain:t}){return(0,r.jsxs)("div",{className:"errorBoundaryFallback_VBag",children:[(0,r.jsx)("p",{children:e.message}),(0,r.jsx)(l,{onClick:t})]})}function u({error:e}){let t=(0,i.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{className:"errorBoundaryError_a6uf",children:t})}class c extends a.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},6629(e,t,n){"use strict";n.d(t,{$Z:()=>i,Hl:()=>l,jy:()=>s});var r=n(6540),a=n(6347),o=n(2260);function i(e){let t,n;t=(0,a.W6)(),n=(0,o._q)((t,n)=>{if("POP"===n)return e(t,n)}),(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}function l(e){let t=(0,a.W6)();return(0,r.useSyncExternalStore)(t.listen,()=>e(t),()=>e({...t,location:{...t.location,search:"",hash:"",state:void 0}}))}function s(e,t){let n=(function(e,t){let n=new URLSearchParams;for(let r of e)for(let[e,a]of r.entries())"append"===t?n.append(e,a):n.set(e,a);return n})(e.map(e=>new URLSearchParams(e??"")),t).toString();return n?`?${n}`:n}},618(e,t,n){"use strict";function r(e){return Array.from(new Set(e))}function a(e,t){let n={},r=0;for(let a of e){let e=t(a,r);n[e]??=[],n[e].push(a),r+=1}return n}n.d(t,{$z:()=>a,sb:()=>r})},4308(e,t,n){"use strict";n.d(t,{Jx:()=>y,be:()=>g,e3:()=>h});var r=n(4848),a=n(6540),o=n(4164),i=n(3572),l=n(8491),s=n(6497),u=n(3899);function c({title:e}){let t=(0,u.s$)().format(e);return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{name:"description",content:e}),(0,r.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){let{withBaseUrl:t}=(0,s.hH)(),n=t(e,{absolute:!0});return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{property:"og:image",content:n}),(0,r.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,r.jsx)(i.A,{children:(0,r.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function g({title:e,description:t,keywords:n,image:a,children:o}){return(0,r.jsxs)(r.Fragment,{children:[e&&(0,r.jsx)(c,{title:e}),t&&(0,r.jsx)(d,{description:t}),n&&(0,r.jsx)(p,{keywords:n}),a&&(0,r.jsx)(f,{image:a}),o&&(0,r.jsx)(i.A,{children:o})]})}let m=a.createContext(void 0);function h({className:e,children:t}){let n=a.useContext(m),l=(0,o.A)(n,e);return(0,r.jsxs)(m.Provider,{value:l,children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("html",{className:l})}),t]})}function y({children:e}){var t;let n=(0,l.A)(),a=(t=n.plugin.name,`plugin-${t.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`),i=`plugin-id-${n.plugin.id}`;return(0,r.jsx)(h,{className:(0,o.A)(a,i),children:e})}},2260(e,t,n){"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(4848),a=n(6540),o=n(9989);function i(e){let t=(0,a.useRef)(e);return(0,o.A)(()=>{t.current=e},[e]),(0,a.useCallback)((...e)=>t.current(...e),[])}function l(e){let t=(0,a.useRef)(void 0);return(0,o.A)(()=>{t.current=e}),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){let t=Object.entries(e);return t.sort((e,t)=>e[0].localeCompare(t[0])),(0,a.useMemo)(()=>e,t.flat())}function c(e){return({children:t})=>(0,r.jsx)(r.Fragment,{children:e.reduceRight((e,t)=>(0,r.jsx)(t,{children:e}),t)})}},9209(e,t,n){"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8460),o=n(898);function i(e,t){let n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){let{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)(()=>(function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;let a=t.find(n);return a||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)})({routes:a.A,baseUrl:e}),[e])}},8584(e,t,n){"use strict";n.d(t,{Mq:()=>d,Tv:()=>u,gk:()=>f});var r=n(4848),a=n(6540),o=n(1289),i=n(9863);n(9989);var l=n(2260);let s=a.createContext(void 0);function u({children:e}){let t,n=(t=(0,a.useRef)(!0),(0,a.useMemo)(()=>({scrollEventsEnabledRef:t,enableScrollEvents:()=>{t.current=!0},disableScrollEvents:()=>{t.current=!1}}),[]));return(0,r.jsx)(s.Provider,{value:n,children:e})}let c=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t=[]){let{scrollEventsEnabledRef:n}=function(){let e=(0,a.useContext)(s);if(null==e)throw new l.dV("ScrollControllerProvider");return e}(),r=(0,a.useRef)(c()),o=(0,l._q)(e);(0,a.useEffect)(()=>{let e=()=>{if(!n.current)return;let e=c();o(e,r.current),r.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)},[o,n,...t])}function f(){let e=(0,a.useRef)(null),t=(0,i.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{let r,a;e.current=t?(window.scrollTo({top:n,behavior:"smooth"}),()=>{}):(r=null,a=document.documentElement.scrollTop>n,!function e(){let t=document.documentElement.scrollTop;(a&&t>n||!a&&t<n)&&(r=requestAnimationFrame(e),window.scrollTo(0,Math.floor((t-n)*.85)+n))}(),()=>r&&cancelAnimationFrame(r))},cancelScroll:()=>e.current?.()}}},1367(e,t,n){"use strict";n.d(t,{Wf:()=>s}),n(6540);var r=JSON.parse('{"N":"localStorage","M":"-697"}');let a=r.N;function o({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;let a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(a)}let i=!1,l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){let n=`${e}${r.M}`;if("u"<typeof window){function s(){throw Error(`Illegal storage API usage for storage key "${n}". +${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,r.jsx)(eb,{...e})},t))})}function eN({left:e,right:t}){return(0,r.jsxs)("div",{className:"navbar__inner",children:[(0,r.jsx)("div",{className:(0,o.A)(g.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,r.jsx)("div",{className:(0,o.A)(g.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function eP(){let e=(0,x.M)(),t=(0,y.p)().navbar.items,[n,a]=function(e){function t(e){return(e.position??"right")==="left"}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,r.jsx)(eN,{left:(0,r.jsxs)(r.Fragment,{children:[!e.disabled&&(0,r.jsx)(eA,{}),(0,r.jsx)(q,{}),(0,r.jsx)(eC,{items:n})]}),right:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eC,{items:a}),(0,r.jsx)(U,{className:"colorModeToggle_DEke"}),!o&&(0,r.jsx)(ef,{children:(0,r.jsx)(ed,{})})]})})}function eO(){return(0,r.jsx)(eE,{children:(0,r.jsx)(eP,{})})}function eL({item:e}){let{to:t,href:n,label:a,prependBaseUrlToHref:i,className:l,...s}=e,u=(0,G.Ay)(t),c=(0,G.Ay)(n,{forcePrependBaseUrl:!0});return(0,r.jsxs)(X.A,{className:(0,o.A)("footer__link-item",l),...n?{href:i?c:n}:{to:u},...s,children:[a,n&&!(0,W.A)(n)&&(0,r.jsx)(K.A,{})]})}function eI({item:e}){return e.html?(0,r.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)("li",{className:"footer__item",children:(0,r.jsx)(eL,{item:e})},e.href??e.to)}function eR({column:e}){return(0,r.jsxs)("div",{className:(0,o.A)(g.G.layout.footer.column,"col footer__col",e.className),children:[(0,r.jsx)("div",{className:"footer__title",children:e.title}),(0,r.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,r.jsx)(eI,{item:e},t))})]})}function ej({columns:e}){return(0,r.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,r.jsx)(eR,{column:e},t))})}function eD(){return(0,r.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function eF({item:e}){return e.html?(0,r.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)(eL,{item:e})}function eM({links:e}){return(0,r.jsx)("div",{className:"footer__links text--center",children:(0,r.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(eF,{item:t}),e.length!==n+1&&(0,r.jsx)(eD,{})]},n))})})}function ez({links:e}){return"title"in e[0]?(0,r.jsx)(ej,{columns:e}):(0,r.jsx)(eM,{links:e})}var eB=n(8586);function eU({logo:e}){let{withBaseUrl:t}=(0,G.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,r.jsx)(eB.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function e$({logo:e}){return e.href?(0,r.jsx)(X.A,{href:e.href,className:"footerLogoLink_BH7S",target:e.target,children:(0,r.jsx)(eU,{logo:e})}):(0,r.jsx)(eU,{logo:e})}function eq({copyright:e}){return(0,r.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function eH({style:e,links:t,logo:n,copyright:a}){return(0,r.jsx)("footer",{className:(0,o.A)(g.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,r.jsxs)("div",{className:"container container-fluid",children:[t,(n||a)&&(0,r.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,r.jsx)("div",{className:"margin-bottom--sm",children:n}),a]})]})})}let eV=a.memo(function(){let{footer:e}=(0,y.p)();if(!e)return null;let{copyright:t,links:n,logo:a,style:o}=e;return(0,r.jsx)(eH,{style:o,links:n&&n.length>0&&(0,r.jsx)(ez,{links:n}),logo:a&&(0,r.jsx)(e$,{logo:a}),copyright:t&&(0,r.jsx)(eq,{copyright:t})})}),eX=(0,T.fM)([L.a,b.o,E.Tv,eg.VQ,l.Jx,function({children:e}){return(0,r.jsx)(_.y_,{children:(0,r.jsx)(x.e,{children:(0,r.jsx)(C,{children:e})})})}]);function eG({children:e}){return(0,r.jsx)(eX,{children:e})}var eW=n(2072);function eY({error:e,tryAgain:t}){return(0,r.jsx)("main",{className:"container margin-vert--xl",children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(eW.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,r.jsx)("div",{className:"margin-vert--lg",children:(0,r.jsx)(eT.a2,{onClick:t,className:"button button--primary shadow--lw"})}),(0,r.jsx)("hr",{}),(0,r.jsx)("div",{className:"margin-vert--md",children:(0,r.jsx)(eT.bq,{error:e})})]})})})}function eK(e){let{children:t,noFooter:n,wrapperClassName:a,title:s,description:u}=e;return(0,r.jsxs)(eG,{children:[(0,r.jsx)(l.be,{title:s,description:u}),(0,r.jsx)(h,{}),(0,r.jsx)(k,{}),(0,r.jsx)(eO,{}),(0,r.jsx)("div",{id:d,className:(0,o.A)(g.G.layout.main.container,g.G.wrapper.main,"mainWrapper_z2l0",a),children:(0,r.jsx)(i.A,{fallback:e=>(0,r.jsx)(eY,{...e}),children:t})}),!n&&(0,r.jsx)(eV,{})]})}},5153(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(4848);n(6540);var a=n(5310),o=n(6497),i=n(898),l=n(1022),s=n(8586);function u({logo:e,alt:t,imageClassName:n}){let a={light:(0,o.Ay)(e.src),dark:(0,o.Ay)(e.srcDark||e.src)},i=(0,r.jsx)(s.A,{className:e.className,sources:a,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,r.jsx)("div",{className:n,children:i}):i}function c(e){let{siteConfig:{title:t}}=(0,i.A)(),{navbar:{title:n,logo:s}}=(0,l.p)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,o.Ay)(s?.href||"/"),m=s?.alt??(n?"":t);return(0,r.jsxs)(a.A,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,r.jsx)(u,{logo:s,alt:m,imageClassName:c}),null!=n&&(0,r.jsx)("b",{className:d,children:n})]})}},4175(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(4848);n(6540);var a=n(3572);function o({locale:e,version:t,tag:n}){return(0,r.jsxs)(a.A,{children:[e&&(0,r.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,r.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,r.jsx)("meta",{name:"docusaurus_tag",content:n}),e&&(0,r.jsx)("meta",{name:"docsearch:language",content:e}),t&&(0,r.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,r.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},8586(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(4848),a=n(6540),o=n(4164),i=n(9863),l=n(3941);let s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};function u({className:e,children:t}){let n=(0,i.A)(),{colorMode:c}=(0,l.G)();return(0,r.jsx)(r.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{let i=t({theme:n,className:(0,o.A)(e,s.themedComponent,s[`themedComponent--${n}`])});return(0,r.jsx)(a.Fragment,{children:i},n)})})}function c(e){let{sources:t,className:n,alt:a,...o}=e;return(0,r.jsx)(u,{className:n,children:({theme:e,className:n})=>(0,r.jsx)("img",{src:t[e],alt:a,className:n,...o})})}},9510(e,t,n){"use strict";n.d(t,{N:()=>p,u:()=>l});var r=n(4848),a=n(6540),o=n(9989),i=n(269);function l({initialState:e}){let[t,n]=(0,a.useState)(e??!1),r=(0,a.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:r}}let s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){let n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d({as:e="div",collapsed:t,children:n,animation:o,onCollapseTransitionEnd:l,className:u}){let f=(0,a.useRef)(null);return!function({collapsibleRef:e,collapsed:t,animation:n}){let r=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let a,o=e.current;function l(){let e,t,r,a=(e=o.scrollHeight,t=n?.duration??function(e){if((0,i.O)())return 1;let t=e/36;return Math.round((4+15*t**.25+t/5)*10)}(e),r=n?.easing??"ease-in-out",{transition:`height ${t}ms ${r}`,height:`${e}px`});o.style.transition=a.transition,o.style.height=a.height}if(!r.current){c(o,t),r.current=!0;return}return o.style.willChange="height",a=requestAnimationFrame(()=>{t?(l(),requestAnimationFrame(()=>{o.style.height=s.height,o.style.overflow=s.overflow})):(o.style.display="block",requestAnimationFrame(()=>{l()}))}),()=>cancelAnimationFrame(a)},[e,t,n])}({collapsibleRef:f,collapsed:t,animation:o}),(0,r.jsx)(e,{ref:f,onTransitionEnd:e=>{"height"===e.propertyName&&(c(f.current,t),l?.(t))},className:u,children:n})}function f({collapsed:e,...t}){let[n,i]=(0,a.useState)(!e),[l,s]=(0,a.useState)(e);return(0,o.A)(()=>{e||i(!0)},[e]),(0,o.A)(()=>{n&&s(e)},[n,e]),n?(0,r.jsx)(d,{...t,collapsed:l}):null}function p({lazy:e,...t}){return(0,r.jsx)(e?f:d,{...t})}},3337(e,t,n){"use strict";n.d(t,{M:()=>m,o:()=>p});var r=n(4848),a=n(6540),o=n(9863),i=n(1367),l=n(2260),s=n(1022);let u=(0,i.Wf)("docusaurus.announcement.dismiss"),c=(0,i.Wf)("docusaurus.announcement.id"),d=e=>u.set(String(e)),f=a.createContext(null);function p({children:e}){let t=function(){let{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(()=>!!t&&"true"===u.get());(0,a.useEffect)(()=>{r("true"===u.get())},[]);let i=(0,a.useCallback)(()=>{d(!0),r(!0)},[]);return(0,a.useEffect)(()=>{if(!e)return;let{id:t}=e,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");let a=t!==n;c.set(t),a&&d(!1),(a||"true"!==u.get())&&r(!1)},[e]),(0,a.useMemo)(()=>({isActive:!!e&&!n,close:i}),[e,n,i])}();return(0,r.jsx)(f.Provider,{value:t,children:e})}function m(){let e=(0,a.useContext)(f);if(!e)throw new l.dV("AnnouncementBarProvider");return e}},3941(e,t,n){"use strict";n.d(t,{G:()=>w,a:()=>v});var r=n(4848),a=n(6540),o=n(9863),i=n(2260),l=n(1367),s=n(1022);function u(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}let c=a.createContext(void 0),d=(0,l.Wf)("theme"),f="system",p=e=>"dark"===e?"dark":"light",m=e=>null===e||e===f?null:p(e),g=()=>p(document.documentElement.getAttribute("data-theme")),h=e=>{document.documentElement.setAttribute("data-theme",p(e))},y=()=>m(document.documentElement.getAttribute("data-theme-choice")),b=e=>{document.documentElement.setAttribute("data-theme-choice",m(e)??f)};function v({children:e}){let t=function(){let{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),{colorMode:r,setColorModeState:i,colorModeChoice:l,setColorModeChoiceState:c}=function(){let{colorMode:{defaultMode:e}}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(t?g():e),[i,l]=(0,a.useState)(t?y():null);return(0,a.useEffect)(()=>{r(g()),l(y())},[]),{colorMode:n,setColorModeState:r,colorModeChoice:i,setColorModeChoiceState:l}}();(0,a.useEffect)(()=>{t&&d.del()},[t]);let f=(0,a.useCallback)((t,r={})=>{let{persist:a=!0}=r;if(null===t){let t=n?u():e;h(t),i(t),b(null),c(null)}else h(t),b(t),i(t),c(t);a&&(null===t?d.del():d.set(p(t)))},[i,c,n,e]);return(0,a.useEffect)(()=>d.listen(e=>{f(m(e.newValue))}),[f]),(0,a.useEffect)(()=>{if(null===l&&n){var e,t;let n;return e=e=>{i(e),h(e)},t=()=>e(u()),(n=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",t),()=>n.removeEventListener("change",t)}},[n,l,i]),(0,a.useMemo)(()=>({colorMode:r,colorModeChoice:l,setColorMode:f,get isDarkTheme(){return"dark"===r},setLightTheme(){f("light")},setDarkTheme(){f("dark")}}),[r,l,f])}();return(0,r.jsx)(c.Provider,{value:t,children:e})}function w(){let e=(0,a.useContext)(c);if(null==e)throw new i.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},9965(e,t,n){"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(4848),a=n(6540),o=n(7e3),i=n(3741),l=n(6629),s=n(1022),u=n(2260);let c=a.createContext(void 0);function d({handler:e}){return(0,l.$Z)(e),null}function f({children:e}){let t=function(){let e=function(){let e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,i.l)(),n=!e&&"mobile"===t,[r,l]=(0,a.useState)(!1),u=(0,a.useCallback)(()=>{l(e=>!e)},[]);return(0,a.useEffect)(()=>{"desktop"===t&&l(!1)},[t]),(0,a.useMemo)(()=>({disabled:e,shouldRender:n,toggle:u,shown:r}),[e,n,u,r])}();return(0,r.jsxs)(r.Fragment,{children:[t.shown&&(0,r.jsx)(d,{handler:()=>(t.toggle(),!1)}),(0,r.jsx)(c.Provider,{value:t,children:e})]})}function p(){let e=a.useContext(c);if(void 0===e)throw new u.dV("NavbarMobileSidebarProvider");return e}},7e3(e,t,n){"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(4848),a=n(6540),o=n(2260);let i=a.createContext(null);function l({children:e}){let t=(0,a.useState)({component:null,props:null});return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u({component:e,props:t}){let n=(0,a.useContext)(i);if(!n)throw new o.dV("NavbarSecondaryMenuContentProvider");let[,r]=n,l=(0,o.Be)(t);return(0,a.useEffect)(()=>{r({component:e,props:l})},[r,e,l]),(0,a.useEffect)(()=>()=>r({component:null,props:null}),[r]),null}},3741(e,t,n){"use strict";n.d(t,{l:()=>o});var r=n(6540),a=n(1289);function o({desktopBreakpoint:e=996}={}){let[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!a.A.canUseDOM)throw Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?"desktop":"mobile"}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},8287(e,t,n){"use strict";n.d(t,{G:()=>r});let r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},tabs:{container:"theme-tabs-container"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`,docCard:{container:"theme-doc-card-container",heading:"theme-doc-card-heading",icon:"theme-doc-card-icon",title:"theme-doc-card-title",description:"theme-doc-card-description"}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},269(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},4727(e,t,n){"use strict";n.d(t,{v:()=>a});var r=n(1022);function a(e){let{navbar:{hideOnScroll:t}}=(0,r.p)();if(void 0!==e)return t?"anchorTargetHideOnScrollNavbar_vjPI":"anchorTargetStickyNavbar_Vzrq"}},3072(e,t,n){"use strict";n.d(t,{MN:()=>s,k2:()=>c,a2:()=>l,bq:()=>u});var r=n(4848),a=n(6540),o=n(568),i=n(5248);function l(e){return(0,r.jsx)("button",{type:"button",...e,children:(0,r.jsx)(o.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function s({error:e,tryAgain:t}){return(0,r.jsxs)("div",{className:"errorBoundaryFallback_VBag",children:[(0,r.jsx)("p",{children:e.message}),(0,r.jsx)(l,{onClick:t})]})}function u({error:e}){let t=(0,i.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{className:"errorBoundaryError_a6uf",children:t})}class c extends a.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},6629(e,t,n){"use strict";n.d(t,{$Z:()=>i,Hl:()=>l,jy:()=>s});var r=n(6540),a=n(6347),o=n(2260);function i(e){let t,n;t=(0,a.W6)(),n=(0,o._q)((t,n)=>{if("POP"===n)return e(t,n)}),(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}function l(e){let t=(0,a.W6)();return(0,r.useSyncExternalStore)(t.listen,()=>e(t),()=>e({...t,location:{...t.location,search:"",hash:"",state:void 0}}))}function s(e,t){let n=(function(e,t){let n=new URLSearchParams;for(let r of e)for(let[e,a]of r.entries())"append"===t?n.append(e,a):n.set(e,a);return n})(e.map(e=>new URLSearchParams(e??"")),t).toString();return n?`?${n}`:n}},618(e,t,n){"use strict";function r(e){return Array.from(new Set(e))}function a(e,t){let n={},r=0;for(let a of e){let e=t(a,r);n[e]??=[],n[e].push(a),r+=1}return n}n.d(t,{$z:()=>a,sb:()=>r})},4308(e,t,n){"use strict";n.d(t,{Jx:()=>y,be:()=>m,e3:()=>h});var r=n(4848),a=n(6540),o=n(4164),i=n(3572),l=n(8491),s=n(6497),u=n(3899);function c({title:e}){let t=(0,u.s$)().format(e);return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{name:"description",content:e}),(0,r.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){let{withBaseUrl:t}=(0,s.hH)(),n=t(e,{absolute:!0});return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{property:"og:image",content:n}),(0,r.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,r.jsx)(i.A,{children:(0,r.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function m({title:e,description:t,keywords:n,image:a,children:o}){return(0,r.jsxs)(r.Fragment,{children:[e&&(0,r.jsx)(c,{title:e}),t&&(0,r.jsx)(d,{description:t}),n&&(0,r.jsx)(p,{keywords:n}),a&&(0,r.jsx)(f,{image:a}),o&&(0,r.jsx)(i.A,{children:o})]})}let g=a.createContext(void 0);function h({className:e,children:t}){let n=a.useContext(g),l=(0,o.A)(n,e);return(0,r.jsxs)(g.Provider,{value:l,children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("html",{className:l})}),t]})}function y({children:e}){var t;let n=(0,l.A)(),a=(t=n.plugin.name,`plugin-${t.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`),i=`plugin-id-${n.plugin.id}`;return(0,r.jsx)(h,{className:(0,o.A)(a,i),children:e})}},2260(e,t,n){"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(4848),a=n(6540),o=n(9989);function i(e){let t=(0,a.useRef)(e);return(0,o.A)(()=>{t.current=e},[e]),(0,a.useCallback)((...e)=>t.current(...e),[])}function l(e){let t=(0,a.useRef)(void 0);return(0,o.A)(()=>{t.current=e}),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){let t=Object.entries(e);return t.sort((e,t)=>e[0].localeCompare(t[0])),(0,a.useMemo)(()=>e,t.flat())}function c(e){return({children:t})=>(0,r.jsx)(r.Fragment,{children:e.reduceRight((e,t)=>(0,r.jsx)(t,{children:e}),t)})}},9209(e,t,n){"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8460),o=n(898);function i(e,t){let n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){let{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)(()=>(function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;let a=t.find(n);return a||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)})({routes:a.A,baseUrl:e}),[e])}},8584(e,t,n){"use strict";n.d(t,{Mq:()=>d,Tv:()=>u,gk:()=>f});var r=n(4848),a=n(6540),o=n(1289),i=n(9863);n(9989);var l=n(2260);let s=a.createContext(void 0);function u({children:e}){let t,n=(t=(0,a.useRef)(!0),(0,a.useMemo)(()=>({scrollEventsEnabledRef:t,enableScrollEvents:()=>{t.current=!0},disableScrollEvents:()=>{t.current=!1}}),[]));return(0,r.jsx)(s.Provider,{value:n,children:e})}let c=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t=[]){let{scrollEventsEnabledRef:n}=function(){let e=(0,a.useContext)(s);if(null==e)throw new l.dV("ScrollControllerProvider");return e}(),r=(0,a.useRef)(c()),o=(0,l._q)(e);(0,a.useEffect)(()=>{let e=()=>{if(!n.current)return;let e=c();o(e,r.current),r.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)},[o,n,...t])}function f(){let e=(0,a.useRef)(null),t=(0,i.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{let r,a;e.current=t?(window.scrollTo({top:n,behavior:"smooth"}),()=>{}):(r=null,a=document.documentElement.scrollTop>n,!function e(){let t=document.documentElement.scrollTop;(a&&t>n||!a&&t<n)&&(r=requestAnimationFrame(e),window.scrollTo(0,Math.floor((t-n)*.85)+n))}(),()=>r&&cancelAnimationFrame(r))},cancelScroll:()=>e.current?.()}}},1367(e,t,n){"use strict";n.d(t,{Wf:()=>s}),n(6540);var r=JSON.parse('{"N":"localStorage","M":"-697"}');let a=r.N;function o({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;let a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(a)}let i=!1,l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){let n=`${e}${r.M}`;if("u"<typeof window){function s(){throw Error(`Illegal storage API usage for storage key "${n}". Docusaurus storage APIs are not supposed to be called on the server-rendering process. Please only call storage APIs in effects and event handlers.`)}return{get:s,set:s,del:s,listen:s}}let u=function(e=a){if("u"<typeof window)throw Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(e){var t;return t=e,i||(console.warn(`Docusaurus browser storage is not available. -Possible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.`,t),i=!0),null}}(t?.persistence);return null===u?l:{get:()=>{try{return u.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{let t=u.getItem(n);u.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:u})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{let e=u.getItem(n);u.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:u})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{let t=t=>{t.storageArea===u&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(e){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,e),()=>{}}}}}},3899(e,t,n){"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(4848),a=n(6540),o=n(898),i=n(8491),l=n(2260);let s=({title:e,siteTitle:t,titleDelimiter:n})=>{let r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,a.createContext)(null);function c({formatter:e,children:t}){return(0,r.jsx)(u.Provider,{value:e,children:t})}function d(){let e=function(){let e=(0,a.useContext)(u);if(null===e)throw new l.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:r}=t,{plugin:c}=(0,i.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:r,plugin:c,defaultFormatter:s})}}},5243(e,t,n){"use strict";n.d(t,{o:()=>i});var r=n(898),a=n(6347),o=n(5248);function i(){let{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:i}=(0,a.zy)(),l=(0,o.applyTrailingSlash)(i,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){let r=function(e){let t=n[e];if(!t)throw Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e),a=`${t?r.url:""}`,o=r.baseUrl;return`${a}${o}${l}`}}}},8398(e,t,n){"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(2260);function i(e){let t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},1022(e,t,n){"use strict";n.d(t,{p:()=>a});var r=n(898);function a(){return(0,r.A)().siteConfig.themeConfig}},4207(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){let{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#")||void 0===n)return e;let[i]=e.split(/[#?]/),l="/"===i||i===r?i:n?a(i):o(i);return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;let r=n(9262);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},7541(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},5248(e,t,n){"use strict";t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0;let r=n(1635);t.blogPostContainerID="__blog-post-container";var a=n(4207);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r.__importDefault(a).default}}),n(9262);var o=n(7541);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9262(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},4784(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>r});let r={title:"SqlParserX",tagline:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305",favicon:"img/favicon.svg",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0,siteStorageNamespacing:!0,fasterByDefault:!0,mdx1CompatDisabledByDefault:!0},experimental_vcs:{},experimental_router:"browser",faster:{swcJsLoader:!0,swcJsMinimizer:!0,swcHtmlMinimizer:!0,lightningCssMinimizer:!0,mdxCrossCompilerCache:!0,rspackBundler:!0,rspackPersistentCache:!0,ssgWorkerThreads:!0,gitEagerVcs:!0}},url:"https://dtstack.github.io",baseUrl:"/SqlParserX/en/",organizationName:"DTStack",projectName:"SqlParserX",deploymentBranch:"gh-pages",trailingSlash:!1,onBrokenLinks:"throw",markdown:{mermaid:!0,hooks:{onBrokenMarkdownLinks:"warn",onBrokenMarkdownImages:"throw"},format:"mdx",emoji:!0,mdx1Compat:{comments:!1,admonitions:!1,headingIds:!1},anchors:{maintainCase:!1}},themes:["@docusaurus/theme-mermaid"],i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans","en"],localeConfigs:{"zh-Hans":{label:"\u7B80\u4F53\u4E2D\u6587",direction:"ltr",htmlLang:"zh-Hans"},en:{label:"English",direction:"ltr",htmlLang:"en"}},path:"i18n"},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",editUrl:"https://github.com/DTStack/SqlParserX/tree/main/website/",showLastUpdateAuthor:!1,showLastUpdateTime:!1,versions:{current:{label:"Next \u{1F6A7}"}},lastVersion:"1.0"},blog:{showReadingTime:!0,feedOptions:{type:["rss","atom"],xslt:!0},editUrl:"https://github.com/DTStack/SqlParserX/tree/main/website/",onInlineTags:"warn",onInlineAuthors:"warn",onUntruncatedBlogPosts:"warn"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/social-card.svg",colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},announcementBar:{id:"announcement",content:"\u2B50 \u5982\u679C\u4F60\u89C9\u5F97 SqlParserX \u6709\u7528\uFF0C\u6B22\u8FCE\u5230 GitHub \u70B9\u4E2A Star",backgroundColor:"#fafbfc",textColor:"#091E42",isCloseable:!0},navbar:{title:"SqlParserX",logo:{alt:"SqlParserX Logo",src:"img/logo.svg"},items:[{to:"/",label:"Home",position:"left"},{type:"docSidebar",sidebarId:"docs",position:"left",label:"Document"},{to:"/blog",label:"Blog",position:"left"},{to:"/community",label:"Community",position:"left"},{type:"docsVersionDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/DTStack/SqlParserX",position:"right",className:"header-github-link","aria-label":"GitHub repository"}],hideOnScroll:!1},footer:{style:"light",links:[{title:"Docs",items:[{label:"Introduction",to:"/docs/about/introduction"},{label:"Quick Start",to:"/docs/quickstart/setup"},{label:"Contributing",to:"/docs/contributing"}]},{title:"Community",items:[{label:"GitHub",href:"https://github.com/DTStack/SqlParserX"},{label:"Blog",to:"/blog"},{label:"Community",to:"/community"}]},{title:"More",items:[{label:"Releases",href:"https://github.com/DTStack/SqlParserX/releases"},{label:"Architecture",to:"/docs/about/architecture"}]}],copyright:"Copyright \xa9 2026 SqlParserX. Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["bash","json","nginx","java","sql","python"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,storage:{type:"localStorage",namespace:!0},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},8168(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}n.d(t,{A:()=>r})},594(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164(e,t,n){"use strict";n.d(t,{A:()=>r});let r=function(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=function e(t){var n,r,a="";if("string"==typeof t||"number"==typeof t)a+=t;else if("object"==typeof t)if(Array.isArray(t)){var o=t.length;for(n=0;n<o;n++)t[n]&&(r=e(t[n]))&&(a&&(a+=" "),a+=r)}else for(r in t)t[r]&&(a&&(a+=" "),a+=r);return a}(e))&&(r&&(r+=" "),r+=t);return r}},1765(e,t,n){"use strict";let r,a,o,i,l;n.d(t,{My:()=>U,f4:()=>eb});var s,u,c,d,f,p,g,m,h,y,b,v,w,S,k,x,E,T,_=n(6540),A=n(4164),C=Object.create,P=Object.defineProperty,N=Object.defineProperties,O=Object.getOwnPropertyDescriptor,L=Object.getOwnPropertyDescriptors,I=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,j=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,M=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))D.call(t,n)&&M(e,n,t[n]);if(R)for(var n of R(t))F.call(t,n)&&M(e,n,t[n]);return e},B=(e,t)=>{var n={};for(var r in e)D.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&R)for(var r of R(e))0>t.indexOf(r)&&F.call(e,r)&&(n[r]=e[r]);return n},U=(l=null!=(o=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(n[o=r.util.objId(t)])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":if(n[o=r.util.objId(t)])return n[o];return a=[],n[o]=a,t.forEach(function(t,r){a[r]=e(t,n)}),a;default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,function(t,n){n===u&&t!=e&&(this[t]=i)}),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var s in n)t[s]=n[s];delete t.rest}var u=new i;return l(u,u.head,e),function e(t,n,i,s,u,c){for(var d in i)if(i.hasOwnProperty(d)&&i[d]){var f=i[d];f=Array.isArray(f)?f:[f];for(var p=0;p<f.length;++p){if(c&&c.cause==d+","+p)return;var g=f[p],m=g.inside,h=!!g.lookbehind,y=!!g.greedy,b=g.alias;if(y&&!g.pattern.global){var v=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,v+"g")}for(var w=g.pattern||g,S=s.next,k=u;S!==n.tail&&(!c||!(k>=c.reach));k+=S.value.length,S=S.next){var x,E=S.value;if(n.length>t.length)return;if(!(E instanceof a)){var T=1;if(y){if(!(x=o(w,k,t,h))||x.index>=t.length)break;var _=x.index,A=x.index+x[0].length,C=k;for(C+=S.value.length;_>=C;)C+=(S=S.next).value.length;if(C-=S.value.length,k=C,S.value instanceof a)continue;for(var P=S;P!==n.tail&&(C<A||"string"==typeof P.value);P=P.next)T++,C+=P.value.length;T--,E=t.slice(k,C),x.index-=k}else if(!(x=o(w,0,E,h)))continue;var _=x.index,N=x[0],O=E.slice(0,_),L=E.slice(_+N.length),I=k+E.length;c&&I>c.reach&&(c.reach=I);var R=S.prev;if(O&&(R=l(n,R,O),k+=O.length),function(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}(n,R,T),S=l(n,R,new a(d,m?r.tokenize(N,m):N,b,N)),L&&l(n,S,L),T>1){var j={cause:d+","+p,reach:I};e(t,n,i,S.prev,k,j),c&&j.reach>c.reach&&(c.reach=j.reach)}}}}}}(e,u,t,u.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach(function(t){a+=e(t,n)}),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[I(r)[0]])((a={exports:{}}).exports,a),a.exports})())?C(j(o)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of I(t))D.call(e,a)||a===n||P(e,a,{get:()=>t[a],enumerable:!(r=O(t,a))||r.enumerable});return e})(!i&&o&&o.__esModule?l:P(l,"default",{value:o,enumerable:!0}),o));U.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},U.languages.markup.tag.inside["attr-value"].inside.entity=U.languages.markup.entity,U.languages.markup.doctype.inside["internal-subset"].inside=U.languages.markup,U.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(U.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:U.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:U.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},U.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(U.languages.markup.tag,"addAttribute",{value:function(e,t){U.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:U.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),U.languages.html=U.languages.markup,U.languages.mathml=U.languages.markup,U.languages.svg=U.languages.markup,U.languages.xml=U.languages.extend("markup",{}),U.languages.ssml=U.languages.xml,U.languages.atom=U.languages.xml,U.languages.rss=U.languages.xml,s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},c=RegExp((c="(?:[^\\\\-]|"+(u=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")")+"-"+c),d={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},U.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:c,inside:{escape:u,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:u}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":d}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:u,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":d}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},U.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},U.languages.javascript=U.languages.extend("clike",{"class-name":[U.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),U.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,U.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:U.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:U.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:U.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:U.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:U.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),U.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:U.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),U.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),U.languages.markup&&(U.languages.markup.tag.addInlined("script","javascript"),U.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),U.languages.js=U.languages.javascript,U.languages.actionscript=U.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),U.languages.actionscript["class-name"].alias="function",delete U.languages.actionscript.parameter,delete U.languages.actionscript["literal-property"],U.languages.markup&&U.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:U.languages.markup}}),f=/#(?!\{).+/,p={pattern:/#\{[^}]+\}/,alias:"variable"},U.languages.coffeescript=U.languages.extend("javascript",{comment:f,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:p}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),U.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:f,interpolation:p}}}),U.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:U.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:p}}]}),U.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete U.languages.coffeescript["template-string"],U.languages.coffee=U.languages.coffeescript,Object.defineProperty(g=U.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/},"addSupport",{value:function(e,t){(e="string"==typeof e?[e]:e).forEach(function(e){var n=function(e){e.inside||(e.inside={}),e.inside.rest=t},r="doc-comment";if(a=U.languages[e]){var a,o=a[r];if((o=o||(a=U.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[r])instanceof RegExp&&(o=a[r]={pattern:o}),Array.isArray(o))for(var i=0,l=o.length;i<l;i++)o[i]instanceof RegExp&&(o[i]={pattern:o[i]}),n(o[i]);else n(o)}})}}),g.addSupport(["java","javascript","php"],g),m=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,U.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+m.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+m.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+m.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+m.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:m,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},U.languages.css.atrule.inside.rest=U.languages.css,(m=U.languages.markup)&&(m.tag.addInlined("style","css"),m.tag.addAttribute("style","css")),h=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,U.languages.css.selector={pattern:U.languages.css.selector.pattern,lookbehind:!0,inside:h={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+h.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[h,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},U.languages.css.atrule.inside["selector-function-argument"].inside=h,U.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),h={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},y={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},U.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:h,number:y,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:h,number:y}),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,function(){return r}).replace(/<<value>>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,function(){return r}).replace(/<<key>>/g,function(){return"(?:"+a+"|"+o+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(U),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return r}),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)}),e.hooks.add("wrap",function(t){if("code-block"===t.type){for(var n,r="",a=0,o=t.classes.length;a<o;a++){var u=t.classes[a],u=/language-(.+)/.exec(u);if(u){r=u[1];break}}var c,d=e.languages[r];d?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(e,t){return"#"===(t=t.toLowerCase())[0]?s("x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1))):l[t]||e}),d,r):r&&"none"!==r&&e.plugins.autoloader&&(c="md-"+new Date().valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(r,function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[r],r))}))}}),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(U),U.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:U.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},U.hooks.add("after-tokenize",function(e){if("graphql"===e.language)for(var t=e.tokens.filter(function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type}),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(c(["definition-mutation","punctuation"])&&"("===t[n+1].content){n+=2;var o=d(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=t[n+0];"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(c(["punctuation","property-query"])&&"{"===t[n+0].content&&(f(t[++n+0],"property-mutation"),0<a.length)){var l=d(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&f(u,"variable-input")}}}}function c(e,r){r=r||0;for(var a=0;a<e.length;a++){var o=t[n+(a+r)];if(!o||o.type!==e[a])return}return 1}function d(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l){if(e.test(l))a++;else if(r.test(l)&&0==--a)return o}}return -1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}}),U.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var s={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};e.hooks.add("after-tokenize",function(t){t.language in s&&function t(n){for(var i=0,s=n.length;i<s;i++){var u,c,d,f=n[i];"string"!=typeof f&&(Array.isArray(u=f.content)?"template-string"===f.type?(f=u[1],3===u.length&&"string"!=typeof f&&"embedded-code"===f.type&&(c=function e(t){return"string"==typeof t?t:Array.isArray(t)?t.map(e).join(""):e(t.content)}(f),f=Array.isArray(f=f.alias)?f[0]:f,d=e.languages[f])&&(u[1]=function(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},s=l(s.map(function(e){if("string"==typeof e)return e;for(var n,r,e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n}).join(""),n,i),d=Object.keys(c);return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,f,p,g,m,h,y=n[o];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(h=(m="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=m.substring(0,h),g=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(g,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,g),p=m.substring(h+i.length),g=[],s&&g.push(s),g.push(f),p&&(t(m=[p]),g.push.apply(g,m)),"string"==typeof y?(n.splice.apply(n,[o,1].concat(g)),o+=g.length-1):y.content=g)):Array.isArray(h=y.content)?t(h):t([h])}}(s),new e.Token(i,s,"language-"+i,t)}(c,d,f))):t(u):"string"!=typeof u&&t([u]))}}(t.tokens)})}(U),U.languages.typescript=U.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),U.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete U.languages.typescript.parameter,delete U.languages.typescript["literal-property"],b=U.languages.extend("typescript",{}),delete b["class-name"],U.languages.typescript["class-name"].inside=b,U.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:b}}}}),U.languages.ts=U.languages.typescript,v=U.languages.javascript,S="(@(?:arg|argument|param|property)\\s+(?:"+(w=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source)+"\\s+)?)",U.languages.jsdoc=U.languages.extend("javadoclike",{parameter:{pattern:RegExp(S+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),U.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(S+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:v,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,function(){return w})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+w),lookbehind:!0,inside:{string:v.string,number:v.number,boolean:v.boolean,keyword:U.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:v,alias:"language-javascript"}}}}),U.languages.javadoclike.addSupport("javascript",U.languages.jsdoc),U.languages.flow=U.languages.extend("javascript",{}),U.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),U.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete U.languages.flow.parameter,U.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(U.languages.flow.keyword)||(U.languages.flow.keyword=[U.languages.flow.keyword]),U.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0}),U.languages.n4js=U.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),U.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),U.languages.n4jsd=U.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a],a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(U),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return RegExp(e=e.replace(/<S>/g,function(){return n}).replace(/<BRACES>/g,function(){return r}).replace(/<SPREAD>/g,function(){return a}),t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""};e.hooks.add("after-tokenize",function(t){"jsx"!==t.language&&"tsx"!==t.language||function t(n){for(var r=[],a=0;a<n.length;a++){var o=n[a],l=!1;"string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?0<r.length&&r[r.length-1].tagName===i(o.content[0].content[1])&&r.pop():"/>"!==o.content[o.content.length-1].content&&r.push({tagName:i(o.content[0].content[1]),openedBraces:0}):0<r.length&&"punctuation"===o.type&&"{"===o.content?r[r.length-1].openedBraces++:0<r.length&&0<r[r.length-1].openedBraces&&"punctuation"===o.type&&"}"===o.content?r[r.length-1].openedBraces--:l=!0),(l||"string"==typeof o)&&0<r.length&&0===r[r.length-1].openedBraces&&(l=i(o),a<n.length-1&&("string"==typeof n[a+1]||"plain-text"===n[a+1].type)&&(l+=i(n[a+1]),n.splice(a+1,1)),0<a&&("string"==typeof n[a-1]||"plain-text"===n[a-1].type)&&(l=i(n[a-1])+l,n.splice(a-1,1),a--),n[a]=new e.Token("plain-text",l,null,l)),o.content&&"string"!=typeof o.content&&t(o.content)}}(t.tokens)})}(U),k=U.util.clone(U.languages.typescript),(U.languages.tsx=U.languages.extend("jsx",k),delete U.languages.tsx.parameter,delete U.languages.tsx["literal-property"],k=U.languages.tsx.tag).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+k.pattern.source+")",k.pattern.flags),k.lookbehind=!0,U.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ ]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},U.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=U.languages.swift}),U.languages.kotlin=U.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete U.languages.kotlin["class-name"],x={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:U.languages.kotlin}},U.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:x},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:x},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete U.languages.kotlin.string,U.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),U.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),U.languages.kt=U.languages.kotlin,U.languages.kts=U.languages.kotlin,U.languages.c=U.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),U.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),U.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},U.languages.c.string],char:U.languages.c.char,comment:U.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:U.languages.c}}}}),U.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete U.languages.c.boolean,U.languages.objectivec=U.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete U.languages.objectivec["class-name"],U.languages.objc=U.languages.objectivec,U.languages.reason=U.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),U.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete U.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,function(){return t});t=t.replace(/<self>/g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(U),U.languages.go=U.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),U.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete U.languages.go["class-name"],E=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,T=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,function(){return E.source}),U.languages.cpp=U.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,function(){return E.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:E,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),U.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,function(){return T})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),U.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:U.languages.cpp}}}}),U.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),U.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:U.languages.extend("cpp",{})}}),U.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},U.languages.cpp["base-clause"]),U.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},U.languages.python["string-interpolation"].inside.interpolation.inside.rest=U.languages.python,U.languages.py=U.languages.python,U.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},U.languages.webmanifest=U.languages.json;var $={},q={dracula:()=>V,duotoneDark:()=>X,duotoneLight:()=>G,github:()=>W,gruvboxMaterialDark:()=>ed,gruvboxMaterialLight:()=>ef,jettwaveDark:()=>el,jettwaveLight:()=>es,nightOwl:()=>Y,nightOwlLight:()=>K,oceanicNext:()=>J,okaidia:()=>ee,oneDark:()=>eu,oneLight:()=>ec,palenight:()=>et,shadesOfPurple:()=>en,synthwave84:()=>er,ultramin:()=>ea,vsDark:()=>eo,vsLight:()=>ei};for(var H in q)P($,H,{get:q[H],enumerable:!0});var V={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},X={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},G={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},W={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},Y={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},K={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Q="#c5a5c5",Z="#8dc891",J={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:Q}},{types:["attr-value"],style:{color:Z}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:Z}},{types:["punctuation"],style:{color:Z}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:Q}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},ee={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},et={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},en={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},er={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},ea={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},eo={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},ei={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},el={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},es={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},eu={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},ec={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},ed={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},ef={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},ep=/\r\n|\r|\n/,eg=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},em=(e,t)=>{let n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},eh=e=>{let t=[[]],n=[e],r=[0],a=[e.length],o=0,i=0,l=[],s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i],c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=em(u,c.type),c.alias&&(u=em(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}let d=e.split(ep),f=d.length;l.push({types:u,content:d[0]});for(let e=1;e<f;e++)eg(l),s.push(l=[]),l.push({types:u,content:d[e]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return eg(l),s},ey=({children:e,language:t,code:n,theme:r,prism:a})=>{let o,i=t.toLowerCase(),l=((e,t)=>{let{plain:n}=e,r=e.styles.reduce((e,n)=>{let{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{let n=z(z({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=N(z({},n),L({backgroundColor:void 0})),r})(r,i),s=(0,_.useCallback)(e=>{var{className:t,style:n,line:r}=e;let a=N(z({},B(e,["className","style","line"])),L({className:(0,A.A)("token-line",t)}));return"object"==typeof l&&"plain"in l&&(a.style=l.plain),"object"==typeof n&&(a.style=z(z({},a.style||{}),n)),a},[l]),u=(o=(0,_.useCallback)(({types:e,empty:t})=>{if(null!=l)return 1===e.length&&"plain"===e[0]?null!=t?{display:"inline-block"}:void 0:1===e.length&&null!=t?l[e[0]]:Object.assign(null!=t?{display:"inline-block"}:{},...e.map(e=>l[e]))},[l]),(0,_.useCallback)(e=>{var{token:t,className:n,style:r}=e;let a=N(z({},B(e,["token","className","style"])),L({className:(0,A.A)("token",...t.types,n),children:t.content,style:o(t)}));return null!=r&&(a.style=z(z({},a.style||{}),r)),a},[o])),c=a.languages[i];return e({tokens:(({prism:e,code:t,grammar:n,language:r})=>(0,_.useMemo)(()=>{if(null==n)return eh([t]);let a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),eh(a.tokens)},[t,n,r,e]))({prism:a,language:i,code:n,grammar:c}),className:`prism-code language-${i}`,style:null!=l?l.root:{},getLineProps:s,getTokenProps:u})},eb=e=>(0,_.createElement)(ey,N(z({},e),L({prism:e.prism||U,theme:e.theme||eo,code:e.code,language:e.language})))},1561(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}},1635(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>j,__assign:()=>o,__asyncDelegator:()=>T,__asyncGenerator:()=>E,__asyncValues:()=>_,__await:()=>x,__awaiter:()=>g,__classPrivateFieldGet:()=>L,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>I,__createBinding:()=>h,__decorate:()=>l,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>y,__extends:()=>a,__generator:()=>m,__importDefault:()=>O,__importStar:()=>N,__makeTemplateObject:()=>A,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>M,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>k,__spreadArrays:()=>S,__values:()=>b,default:()=>z});var r=function(e,t){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)0>t.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}function l(e,t,n,r){var a,o=arguments.length,i=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,a,o){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var g={};for(var m in r)g[m]="access"===m?{}:r[m];for(var m in r.access)g.access[m]=r.access[m];g.addInitializer=function(e){if(f)throw TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var h=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],g);if("accessor"===s){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw TypeError("Object expected");(l=i(h.get))&&(d.get=l),(l=i(h.set))&&(d.set=l),(l=i(h.init))&&a.unshift(l)}else(l=i(h))&&("field"===s?a.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a<t.length;a++)n=r?t[a].call(e,n):t[a].call(e);return r?n:void 0}function d(e){return"symbol"==typeof e?e:"".concat(e)}function f(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function g(e,t,n,r){return new(n||(n=Promise))(function(a,o){function i(e){try{s(r.next(e))}catch(e){o(e)}}function l(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(i,l)}s((r=r.apply(e,t||[])).next())})}function m(e,t){var n,r,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var u=[l,s];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,u[0]&&(o=0)),o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var h=Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function y(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||h(t,e,n)}function b(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function w(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}function S(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var r=Array(e),a=0,t=0;t<n;t++)for(var o=arguments[t],i=0,l=o.length;i<l;i++,a++)r[a]=o[i];return r}function k(e,t,n){if(n||2==arguments.length)for(var r,a=0,o=t.length;a<o;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}function x(e){return this instanceof x?(this.v=e,this):new x(e)}function E(e,t,n){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),i("next"),i("throw"),i("return",function(e){return function(t){return Promise.resolve(t).then(e,u)}}),r[Symbol.asyncIterator]=function(){return this},r;function i(e,t){a[e]&&(r[e]=function(t){return new Promise(function(n,r){o.push([e,t,n,r])>1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(e,t){try{var n;(n=a[e](t)).value instanceof x?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(e){c(o[0][3],e)}}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function T(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:x(e[r](t)),done:!1}:a?a(t):t}:a}}function _(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=b(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,a){var o,i,l;o=r,i=a,l=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){o({value:e,done:l})},i)})}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},P=function(e){return(P=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t})(e)};function N(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=P(e),r=0;r<n.length;r++)"default"!==n[r]&&h(t,e,n[r]);return C(t,e),t}function O(e){return e&&e.__esModule?e:{default:e}}function L(e,t,n,r){if("a"===n&&!r)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function I(e,t,n,r,a){if("m"===r)throw TypeError("Private method is not writable");if("a"===r&&!a)throw TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}function R(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function j(e,t,n){if(null!=t){var r,a;if("object"!=typeof t&&"function"!=typeof t)throw TypeError("Object expected.");if(n){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(a=r)}if("function"!=typeof r)throw TypeError("Object not disposable.");a&&(r=function(){try{a.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var D="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function F(e){function t(t){e.error=e.hasError?new D(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var n,r=0;return function a(){for(;n=e.stack.pop();)try{if(!n.async&&1===r)return r=0,e.stack.push(n),Promise.resolve().then(a);if(n.dispose){var o=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(o).then(a,function(e){return t(e),a()})}else r|=1}catch(e){t(e)}if(1===r)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function M(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,a,o){return n?t?".jsx":".js":!r||a&&o?r+a+"."+o.toLowerCase()+"js":e}):e}let z={__extends:a,__assign:o,__rest:i,__decorate:l,__param:s,__esDecorate:u,__runInitializers:c,__propKey:d,__setFunctionName:f,__metadata:p,__awaiter:g,__generator:m,__createBinding:h,__exportStar:y,__values:b,__read:v,__spread:w,__spreadArrays:S,__spreadArray:k,__await:x,__asyncGenerator:E,__asyncDelegator:T,__asyncValues:_,__makeTemplateObject:A,__importStar:N,__importDefault:O,__classPrivateFieldGet:L,__classPrivateFieldSet:I,__classPrivateFieldIn:R,__addDisposableResource:j,__disposeResources:F,__rewriteRelativeImportExtension:M}},2654(e){"use strict";e.exports=JSON.parse('{"theme.ErrorPageContent.title":"This page crashed.","theme.BackToTopButton.buttonAriaLabel":"Scroll back to top","theme.blog.archive.title":"Archive","theme.blog.archive.description":"Archive","theme.blog.paginator.navAriaLabel":"Blog list page navigation","theme.blog.paginator.newerEntries":"Newer entries","theme.blog.paginator.olderEntries":"Older entries","theme.tags.tagsPageLink":"View all tags","theme.blog.post.paginator.navAriaLabel":"Blog post page navigation","theme.blog.post.paginator.newerPost":"Newer post","theme.blog.post.paginator.olderPost":"Older post","theme.colorToggle.ariaLabel.mode.system":"system mode","theme.colorToggle.ariaLabel.mode.light":"light mode","theme.colorToggle.ariaLabel.mode.dark":"dark mode","theme.colorToggle.ariaLabel":"Switch between dark and light mode (currently {mode})","theme.docs.breadcrumbs.navAriaLabel":"Breadcrumbs","theme.docs.paginator.navAriaLabel":"Docs pages","theme.docs.paginator.previous":"Previous","theme.docs.paginator.next":"Next","theme.docs.tagDocListPageTitle.nDocsTagged":"One doc tagged|{count} docs tagged","theme.docs.tagDocListPageTitle":"{nDocsTagged} with \\"{tagName}\\"","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.unreleasedVersionLabel":"This is unreleased documentation for {siteTitle} {versionLabel} version.","theme.docs.versions.unmaintainedVersionLabel":"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.","theme.docs.versions.latestVersionSuggestionLabel":"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).","theme.docs.versions.latestVersionLinkLabel":"latest version","theme.common.editThisPage":"Edit this page","theme.lastUpdated.atDate":" on {date}","theme.lastUpdated.byUser":" by {user}","theme.lastUpdated.lastUpdatedAtBy":"Last updated{atDate}{byUser}","theme.common.headingLinkTitle":"Direct link to {heading}","theme.navbar.mobileVersionsDropdown.label":"Versions","theme.NotFound.title":"Page Not Found","theme.tags.tagsListLabel":"Tags:","theme.AnnouncementBar.closeButtonAriaLabel":"Close","theme.blog.sidebar.navAriaLabel":"Blog recent posts navigation","theme.admonition.caution":"caution","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"note","theme.admonition.tip":"tip","theme.admonition.warning":"warning","theme.DocSidebarItem.expandCategoryAriaLabel":"Expand sidebar category \'{label}\'","theme.DocSidebarItem.collapseCategoryAriaLabel":"Collapse sidebar category \'{label}\'","theme.IconExternalLink.ariaLabel":"(opens in new tab)","theme.NavBar.navAriaLabel":"Main","theme.navbar.mobileLanguageDropdown.label":"Languages","theme.NotFound.p1":"We could not find what you were looking for.","theme.NotFound.p2":"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.","theme.TOCCollapsible.toggleButtonLabel":"On this page","theme.blog.post.readMore":"Read more","theme.blog.post.readMoreLabel":"Read more about {title}","theme.CodeBlock.copy":"Copy","theme.CodeBlock.copied":"Copied","theme.CodeBlock.copyButtonAriaLabel":"Copy code to clipboard","theme.blog.post.readingTime.plurals":"One min read|{readingTime} min read","theme.CodeBlock.wordWrapToggle":"Toggle word wrap","theme.docs.sidebar.collapseButtonTitle":"Collapse sidebar","theme.docs.sidebar.collapseButtonAriaLabel":"Collapse sidebar","theme.docs.breadcrumbs.home":"Home page","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Close navigation bar","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Back to main menu","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Toggle navigation bar","theme.navbar.mobileDropdown.collapseButton.expandAriaLabel":"Expand the dropdown","theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel":"Collapse the dropdown","theme.docs.sidebar.expandButtonTitle":"Expand sidebar","theme.docs.sidebar.expandButtonAriaLabel":"Expand sidebar","theme.blog.post.plurals":"One post|{count} posts","theme.blog.tagTitle":"{nPosts} tagged with \\"{tagName}\\"","theme.blog.author.pageTitle":"{authorName} - {nPosts}","theme.blog.authorsList.pageTitle":"Authors","theme.blog.authorsList.viewAll":"View all authors","theme.blog.author.noPosts":"This author has not written any posts yet.","theme.contentVisibility.unlistedBanner.title":"Unlisted page","theme.contentVisibility.unlistedBanner.message":"This page is unlisted. Search engines will not index it, and only users having a direct link can access it.","theme.contentVisibility.draftBanner.title":"Draft page","theme.contentVisibility.draftBanner.message":"This page is a draft. It will only be visible in dev and be excluded from the production build.","theme.docs.DocCard.categoryDescription.plurals":"1 item|{count} items","theme.ErrorPageContent.tryAgain":"Try again","theme.common.skipToMainContent":"Skip to main content","theme.tags.tagsPageTitle":"Tags","homepage.hero.badge":"Java 8 \xb7 Druid 1.2.28 \xb7 15+ dialects","homepage.hero.tagline":"A multi-dialect SQL parsing engine and toolkit","homepage.hero.desc":"Table & column lineage \xb7 Table/DDL parsing \xb7 Function extraction \xb7 SQL splitting and row-level permission rewriting","homepage.hero.cta.primary":"Quick Start","homepage.hero.cta.secondary":"Introduction","homepage.hero.meta.parse":"\u{1F9E9} Multi-dialect parsing","homepage.hero.meta.lineage":"\u{1F517} Table/column lineage","homepage.hero.meta.i18n":"\u{1F30D} i18n","homepage.hero.meta.version":"\u{1F4DA} Versioning","homepage.features.heading":"One engine for the full SQL parsing pipeline","homepage.feature.dialect.title":"Multi-dialect parsing","homepage.feature.dialect.desc":"Route Druid dialects via DbType with a unified AST, covering 15+ datasources.","homepage.feature.lineage.title":"Table & column lineage","homepage.feature.lineage.desc":"Table and column lineage across JOIN, UNION, subqueries, aggregates and CTEs.","homepage.feature.table.title":"Table & DDL parsing","homepage.feature.table.desc":"Identify real tables, CTEs, CREATE TABLE, partitions and table properties.","homepage.feature.function.title":"Function parsing","homepage.feature.function.desc":"Extract regular, aggregate, window and nested functions with their arguments.","homepage.feature.split.title":"SQL splitting & validation","homepage.feature.split.desc":"Split multi-statement scripts, validate syntax and rewrite row-level permissions.","homepage.feature.arch.title":"Two-layer extension","homepage.feature.arch.desc":"Syntax differences extend the syntax layer, business differences the core layer, via unified points.","homepage.case.arch.title":"Two-layer unified extension architecture","homepage.case.arch.desc":"The syntax layer extends dialect Lexer/Parser/AST on Druid; the business layer extends parsing, lineage and rewriting via the ISqlParser contract, aligned by DbType and AST.","homepage.case.version.title":"Version / i18n coexistence","homepage.case.version.desc":"Switch version (1.0 / Next) and language (\u7B80\u4F53\u4E2D\u6587 / English) from the navbar.","community.title":"Join the SqlParserX Community","community.subtitle":"Discuss multi-dialect SQL parsing, lineage and governance with developers.","homepage.community.forum.title":"Forum","homepage.community.forum.desc":"Ask questions and share best practices in GitHub Discussions.","homepage.community.github.title":"GitHub","homepage.community.github.desc":"File issues and open pull requests to improve multi-dialect parsing.","homepage.community.qa.title":"Q&A","homepage.community.qa.desc":"Search existing issues or start a new discussion when you get stuck.","homepage.hero.stat.datasource":"Datasource dialects","homepage.hero.stat.capability":"Core capabilities","homepage.hero.stat.layer":"Unified layers","homepage.hero.stat.compat":"Java 8 compatible","homepage.hero.pane.input":"SQL Input","homepage.hero.pane.output":"Parse Result","homepage.hero.tag.table":"Table lineage","homepage.hero.tag.field":"Field lineage","homepage.features.eyebrow":"Capabilities","homepage.features.subheading":"From dialect syntax to business semantics \u2014 unified contract, unified result, ready to use.","homepage.datasource.lead":"15+ datasource dialects supported","homepage.case.arch.eyebrow":"Architecture","homepage.case.docs.eyebrow":"Documentation","homepage.case.step1":"Feed SQL + DbType","homepage.case.step2":"Syntax layer parses into Druid AST","homepage.case.step3":"Business layer unified parsing","homepage.case.step4":"Table / lineage / function / rewrite results","homepage.cta.title":"Ready to parse your SQL?","homepage.cta.desc":"Get started in minutes with multi-dialect table parsing, lineage and function extraction.","homepage.cta.primary":"Quick Start","homepage.cta.secondary":"View Source"}')},4054(e){"use strict";e.exports=JSON.parse('{"/SqlParserX/en/blog-c47":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"4b0ae1c1"}],"__props":"a02bd756"},"/SqlParserX/en/blog/archive-bf0":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"e9caf4bd"},"/SqlParserX/en/blog/authors-ac8":{"__comp":"621db11d","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","__props":"db80618e"},"/SqlParserX/en/blog/authors/changlu-a8d":{"__comp":"33fc5bb8","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"items":[{"content":"4b0ae1c1"}],"sidebar":"814f3328","__props":"5abf25f6"},"/SqlParserX/en/blog/origin-of-sqlparserx-a52":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"4a65a190"},"/SqlParserX/en/blog/tags-2aa":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"22e0017f"},"/SqlParserX/en/blog/tags/origin-121":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"4b0ae1c1"}],"__props":"136d9fb6"},"/SqlParserX/en/community-2bf":{"__comp":"672ba3d6","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/SqlParserX/en/docs-708":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/SqlParserX/en/docs/next-f9e":{"__comp":"a7bd4aaa","__props":"aa9e3246"},"/SqlParserX/en/docs/next-cf5":{"__comp":"a94703ab"},"/SqlParserX/en/docs/next/about/architecture-7df":{"__comp":"17896441","content":"d611a6ba"},"/SqlParserX/en/docs/next/about/introduction-9f1":{"__comp":"17896441","content":"a84fc31f"},"/SqlParserX/en/docs/next/contributing-083":{"__comp":"17896441","content":"a16ef744"},"/SqlParserX/en/docs/next/core/field-lineage-d01":{"__comp":"17896441","content":"e539d78b"},"/SqlParserX/en/docs/next/core/function-parse-2b2":{"__comp":"17896441","content":"f798a39c"},"/SqlParserX/en/docs/next/core/table-lineage-a0c":{"__comp":"17896441","content":"533336a0"},"/SqlParserX/en/docs/next/core/table-parse-69c":{"__comp":"17896441","content":"ac311984"},"/SqlParserX/en/docs/next/intro-684":{"__comp":"17896441","content":"5b44acae"},"/SqlParserX/en/docs/next/quickstart/setup-65f":{"__comp":"17896441","content":"02854a60"},"/SqlParserX/en/docs-d2e":{"__comp":"a7bd4aaa","__props":"bd32d0d5"},"/SqlParserX/en/docs-9f3":{"__comp":"a94703ab"},"/SqlParserX/en/docs/about/architecture-d26":{"__comp":"17896441","content":"2cb18a50"},"/SqlParserX/en/docs/about/introduction-046":{"__comp":"17896441","content":"9c37e8a9"},"/SqlParserX/en/docs/contributing-d4c":{"__comp":"17896441","content":"ac4ff279"},"/SqlParserX/en/docs/core/field-lineage-4f9":{"__comp":"17896441","content":"7ba64a19"},"/SqlParserX/en/docs/core/function-parse-906":{"__comp":"17896441","content":"92d5f697"},"/SqlParserX/en/docs/core/table-lineage-2f2":{"__comp":"17896441","content":"1078a278"},"/SqlParserX/en/docs/core/table-parse-a91":{"__comp":"17896441","content":"9aae347e"},"/SqlParserX/en/docs/intro-9c5":{"__comp":"17896441","content":"c61d1296"},"/SqlParserX/en/docs/quickstart/setup-646":{"__comp":"17896441","content":"773100d1"},"/SqlParserX/en/-624":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"}}')}},function(e){e.O(0,["4014"],function(){return e(e.s=354)}),e.O()}]); \ No newline at end of file +Possible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.`,t),i=!0),null}}(t?.persistence);return null===u?l:{get:()=>{try{return u.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{let t=u.getItem(n);u.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:u})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{let e=u.getItem(n);u.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:u})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{let t=t=>{t.storageArea===u&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(e){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,e),()=>{}}}}}},3899(e,t,n){"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(4848),a=n(6540),o=n(898),i=n(8491),l=n(2260);let s=({title:e,siteTitle:t,titleDelimiter:n})=>{let r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,a.createContext)(null);function c({formatter:e,children:t}){return(0,r.jsx)(u.Provider,{value:e,children:t})}function d(){let e=function(){let e=(0,a.useContext)(u);if(null===e)throw new l.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:r}=t,{plugin:c}=(0,i.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:r,plugin:c,defaultFormatter:s})}}},5243(e,t,n){"use strict";n.d(t,{o:()=>i});var r=n(898),a=n(6347),o=n(5248);function i(){let{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:i}=(0,a.zy)(),l=(0,o.applyTrailingSlash)(i,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){let r=function(e){let t=n[e];if(!t)throw Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e),a=`${t?r.url:""}`,o=r.baseUrl;return`${a}${o}${l}`}}}},8398(e,t,n){"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(2260);function i(e){let t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},1022(e,t,n){"use strict";n.d(t,{p:()=>a});var r=n(898);function a(){return(0,r.A)().siteConfig.themeConfig}},4207(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){let{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#")||void 0===n)return e;let[i]=e.split(/[#?]/),l="/"===i||i===r?i:n?a(i):o(i);return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;let r=n(9262);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},7541(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},5248(e,t,n){"use strict";t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0;let r=n(1635);t.blogPostContainerID="__blog-post-container";var a=n(4207);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r.__importDefault(a).default}}),n(9262);var o=n(7541);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9262(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},4784(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>r});let r={title:"SqlParserX",tagline:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305",favicon:"img/logo.png",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0,siteStorageNamespacing:!0,fasterByDefault:!0,mdx1CompatDisabledByDefault:!0},experimental_vcs:{},experimental_router:"browser",faster:{swcJsLoader:!0,swcJsMinimizer:!0,swcHtmlMinimizer:!0,lightningCssMinimizer:!0,mdxCrossCompilerCache:!0,rspackBundler:!0,rspackPersistentCache:!0,ssgWorkerThreads:!0,gitEagerVcs:!0}},url:"https://dtstack.github.io",baseUrl:"/SqlParserX/en/",organizationName:"DTStack",projectName:"SqlParserX",deploymentBranch:"gh-pages",trailingSlash:!1,onBrokenLinks:"throw",markdown:{mermaid:!0,hooks:{onBrokenMarkdownLinks:"warn",onBrokenMarkdownImages:"throw"},format:"mdx",emoji:!0,mdx1Compat:{comments:!1,admonitions:!1,headingIds:!1},anchors:{maintainCase:!1}},themes:["@docusaurus/theme-mermaid"],i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans","en"],localeConfigs:{"zh-Hans":{label:"\u7B80\u4F53\u4E2D\u6587",direction:"ltr",htmlLang:"zh-Hans"},en:{label:"English",direction:"ltr",htmlLang:"en"}},path:"i18n"},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",editUrl:"https://github.com/DTStack/SqlParserX/tree/main/website/",showLastUpdateAuthor:!1,showLastUpdateTime:!1,versions:{current:{label:"Next \u{1F6A7}"}},lastVersion:"1.0"},blog:{showReadingTime:!0,feedOptions:{type:["rss","atom"],xslt:!0},editUrl:"https://github.com/DTStack/SqlParserX/tree/main/website/",onInlineTags:"warn",onInlineAuthors:"warn",onUntruncatedBlogPosts:"warn"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/social-card.svg",colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},announcementBar:{id:"announcement",content:"\u2B50 \u5982\u679C\u4F60\u89C9\u5F97 SqlParserX \u6709\u7528\uFF0C\u6B22\u8FCE\u5230 GitHub \u70B9\u4E2A Star",backgroundColor:"#fafbfc",textColor:"#091E42",isCloseable:!0},navbar:{title:"SqlParserX",logo:{alt:"SqlParserX Logo",src:"img/logo.png"},items:[{to:"/",label:"Home",position:"left"},{type:"docSidebar",sidebarId:"docs",position:"left",label:"Document"},{to:"/blog",label:"Blog",position:"left"},{to:"/community",label:"Community",position:"left"},{type:"docsVersionDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/DTStack/SqlParserX",position:"right",className:"header-github-link","aria-label":"GitHub repository"}],hideOnScroll:!1},footer:{style:"light",links:[{title:"Docs",items:[{label:"Introduction",to:"/docs/about/introduction"},{label:"Quick Start",to:"/docs/quickstart/setup"},{label:"Contributing",to:"/docs/contributing"}]},{title:"Community",items:[{label:"GitHub",href:"https://github.com/DTStack/SqlParserX"},{label:"Blog",to:"/blog"},{label:"Community",to:"/community"}]},{title:"More",items:[{label:"Releases",href:"https://github.com/DTStack/SqlParserX/releases"},{label:"Architecture",to:"/docs/about/architecture"}]}],copyright:"Copyright \xa9 2026 SqlParserX. Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["bash","json","nginx","java","sql","python"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,storage:{type:"localStorage",namespace:!0},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},8168(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}n.d(t,{A:()=>r})},594(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164(e,t,n){"use strict";n.d(t,{A:()=>r});let r=function(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=function e(t){var n,r,a="";if("string"==typeof t||"number"==typeof t)a+=t;else if("object"==typeof t)if(Array.isArray(t)){var o=t.length;for(n=0;n<o;n++)t[n]&&(r=e(t[n]))&&(a&&(a+=" "),a+=r)}else for(r in t)t[r]&&(a&&(a+=" "),a+=r);return a}(e))&&(r&&(r+=" "),r+=t);return r}},1765(e,t,n){"use strict";let r,a,o,i,l;n.d(t,{My:()=>U,f4:()=>eb});var s,u,c,d,f,p,m,g,h,y,b,v,w,S,k,x,E,T,_=n(6540),A=n(4164),C=Object.create,N=Object.defineProperty,P=Object.defineProperties,O=Object.getOwnPropertyDescriptor,L=Object.getOwnPropertyDescriptors,I=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,j=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,M=(e,t,n)=>t in e?N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))D.call(t,n)&&M(e,n,t[n]);if(R)for(var n of R(t))F.call(t,n)&&M(e,n,t[n]);return e},B=(e,t)=>{var n={};for(var r in e)D.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&R)for(var r of R(e))0>t.indexOf(r)&&F.call(e,r)&&(n[r]=e[r]);return n},U=(l=null!=(o=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(n[o=r.util.objId(t)])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":if(n[o=r.util.objId(t)])return n[o];return a=[],n[o]=a,t.forEach(function(t,r){a[r]=e(t,n)}),a;default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,function(t,n){n===u&&t!=e&&(this[t]=i)}),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var s in n)t[s]=n[s];delete t.rest}var u=new i;return l(u,u.head,e),function e(t,n,i,s,u,c){for(var d in i)if(i.hasOwnProperty(d)&&i[d]){var f=i[d];f=Array.isArray(f)?f:[f];for(var p=0;p<f.length;++p){if(c&&c.cause==d+","+p)return;var m=f[p],g=m.inside,h=!!m.lookbehind,y=!!m.greedy,b=m.alias;if(y&&!m.pattern.global){var v=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,v+"g")}for(var w=m.pattern||m,S=s.next,k=u;S!==n.tail&&(!c||!(k>=c.reach));k+=S.value.length,S=S.next){var x,E=S.value;if(n.length>t.length)return;if(!(E instanceof a)){var T=1;if(y){if(!(x=o(w,k,t,h))||x.index>=t.length)break;var _=x.index,A=x.index+x[0].length,C=k;for(C+=S.value.length;_>=C;)C+=(S=S.next).value.length;if(C-=S.value.length,k=C,S.value instanceof a)continue;for(var N=S;N!==n.tail&&(C<A||"string"==typeof N.value);N=N.next)T++,C+=N.value.length;T--,E=t.slice(k,C),x.index-=k}else if(!(x=o(w,0,E,h)))continue;var _=x.index,P=x[0],O=E.slice(0,_),L=E.slice(_+P.length),I=k+E.length;c&&I>c.reach&&(c.reach=I);var R=S.prev;if(O&&(R=l(n,R,O),k+=O.length),function(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}(n,R,T),S=l(n,R,new a(d,g?r.tokenize(P,g):P,b,P)),L&&l(n,S,L),T>1){var j={cause:d+","+p,reach:I};e(t,n,i,S.prev,k,j),c&&j.reach>c.reach&&(c.reach=j.reach)}}}}}}(e,u,t,u.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach(function(t){a+=e(t,n)}),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[I(r)[0]])((a={exports:{}}).exports,a),a.exports})())?C(j(o)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of I(t))D.call(e,a)||a===n||N(e,a,{get:()=>t[a],enumerable:!(r=O(t,a))||r.enumerable});return e})(!i&&o&&o.__esModule?l:N(l,"default",{value:o,enumerable:!0}),o));U.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},U.languages.markup.tag.inside["attr-value"].inside.entity=U.languages.markup.entity,U.languages.markup.doctype.inside["internal-subset"].inside=U.languages.markup,U.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(U.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:U.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:U.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},U.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(U.languages.markup.tag,"addAttribute",{value:function(e,t){U.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:U.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),U.languages.html=U.languages.markup,U.languages.mathml=U.languages.markup,U.languages.svg=U.languages.markup,U.languages.xml=U.languages.extend("markup",{}),U.languages.ssml=U.languages.xml,U.languages.atom=U.languages.xml,U.languages.rss=U.languages.xml,s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},c=RegExp((c="(?:[^\\\\-]|"+(u=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")")+"-"+c),d={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},U.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:c,inside:{escape:u,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:u}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":d}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:u,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":d}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},U.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},U.languages.javascript=U.languages.extend("clike",{"class-name":[U.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),U.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,U.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:U.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:U.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:U.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:U.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:U.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),U.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:U.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),U.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),U.languages.markup&&(U.languages.markup.tag.addInlined("script","javascript"),U.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),U.languages.js=U.languages.javascript,U.languages.actionscript=U.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),U.languages.actionscript["class-name"].alias="function",delete U.languages.actionscript.parameter,delete U.languages.actionscript["literal-property"],U.languages.markup&&U.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:U.languages.markup}}),f=/#(?!\{).+/,p={pattern:/#\{[^}]+\}/,alias:"variable"},U.languages.coffeescript=U.languages.extend("javascript",{comment:f,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:p}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),U.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:f,interpolation:p}}}),U.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:U.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:p}}]}),U.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete U.languages.coffeescript["template-string"],U.languages.coffee=U.languages.coffeescript,Object.defineProperty(m=U.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/},"addSupport",{value:function(e,t){(e="string"==typeof e?[e]:e).forEach(function(e){var n=function(e){e.inside||(e.inside={}),e.inside.rest=t},r="doc-comment";if(a=U.languages[e]){var a,o=a[r];if((o=o||(a=U.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[r])instanceof RegExp&&(o=a[r]={pattern:o}),Array.isArray(o))for(var i=0,l=o.length;i<l;i++)o[i]instanceof RegExp&&(o[i]={pattern:o[i]}),n(o[i]);else n(o)}})}}),m.addSupport(["java","javascript","php"],m),g=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,U.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+g.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+g.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+g.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+g.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:g,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},U.languages.css.atrule.inside.rest=U.languages.css,(g=U.languages.markup)&&(g.tag.addInlined("style","css"),g.tag.addAttribute("style","css")),h=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,U.languages.css.selector={pattern:U.languages.css.selector.pattern,lookbehind:!0,inside:h={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+h.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[h,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},U.languages.css.atrule.inside["selector-function-argument"].inside=h,U.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),h={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},y={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},U.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:h,number:y,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:h,number:y}),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,function(){return r}).replace(/<<value>>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,function(){return r}).replace(/<<key>>/g,function(){return"(?:"+a+"|"+o+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(U),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return r}),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)}),e.hooks.add("wrap",function(t){if("code-block"===t.type){for(var n,r="",a=0,o=t.classes.length;a<o;a++){var u=t.classes[a],u=/language-(.+)/.exec(u);if(u){r=u[1];break}}var c,d=e.languages[r];d?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(e,t){return"#"===(t=t.toLowerCase())[0]?s("x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1))):l[t]||e}),d,r):r&&"none"!==r&&e.plugins.autoloader&&(c="md-"+new Date().valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(r,function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[r],r))}))}}),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(U),U.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:U.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},U.hooks.add("after-tokenize",function(e){if("graphql"===e.language)for(var t=e.tokens.filter(function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type}),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(c(["definition-mutation","punctuation"])&&"("===t[n+1].content){n+=2;var o=d(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=t[n+0];"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(c(["punctuation","property-query"])&&"{"===t[n+0].content&&(f(t[++n+0],"property-mutation"),0<a.length)){var l=d(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&f(u,"variable-input")}}}}function c(e,r){r=r||0;for(var a=0;a<e.length;a++){var o=t[n+(a+r)];if(!o||o.type!==e[a])return}return 1}function d(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l){if(e.test(l))a++;else if(r.test(l)&&0==--a)return o}}return -1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}}),U.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var s={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};e.hooks.add("after-tokenize",function(t){t.language in s&&function t(n){for(var i=0,s=n.length;i<s;i++){var u,c,d,f=n[i];"string"!=typeof f&&(Array.isArray(u=f.content)?"template-string"===f.type?(f=u[1],3===u.length&&"string"!=typeof f&&"embedded-code"===f.type&&(c=function e(t){return"string"==typeof t?t:Array.isArray(t)?t.map(e).join(""):e(t.content)}(f),f=Array.isArray(f=f.alias)?f[0]:f,d=e.languages[f])&&(u[1]=function(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},s=l(s.map(function(e){if("string"==typeof e)return e;for(var n,r,e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n}).join(""),n,i),d=Object.keys(c);return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,f,p,m,g,h,y=n[o];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(h=(g="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=g.substring(0,h),m=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(m,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,m),p=g.substring(h+i.length),m=[],s&&m.push(s),m.push(f),p&&(t(g=[p]),m.push.apply(m,g)),"string"==typeof y?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):y.content=m)):Array.isArray(h=y.content)?t(h):t([h])}}(s),new e.Token(i,s,"language-"+i,t)}(c,d,f))):t(u):"string"!=typeof u&&t([u]))}}(t.tokens)})}(U),U.languages.typescript=U.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),U.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete U.languages.typescript.parameter,delete U.languages.typescript["literal-property"],b=U.languages.extend("typescript",{}),delete b["class-name"],U.languages.typescript["class-name"].inside=b,U.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:b}}}}),U.languages.ts=U.languages.typescript,v=U.languages.javascript,S="(@(?:arg|argument|param|property)\\s+(?:"+(w=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source)+"\\s+)?)",U.languages.jsdoc=U.languages.extend("javadoclike",{parameter:{pattern:RegExp(S+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),U.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(S+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:v,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,function(){return w})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+w),lookbehind:!0,inside:{string:v.string,number:v.number,boolean:v.boolean,keyword:U.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:v,alias:"language-javascript"}}}}),U.languages.javadoclike.addSupport("javascript",U.languages.jsdoc),U.languages.flow=U.languages.extend("javascript",{}),U.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),U.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete U.languages.flow.parameter,U.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(U.languages.flow.keyword)||(U.languages.flow.keyword=[U.languages.flow.keyword]),U.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0}),U.languages.n4js=U.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),U.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),U.languages.n4jsd=U.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a],a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(U),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return RegExp(e=e.replace(/<S>/g,function(){return n}).replace(/<BRACES>/g,function(){return r}).replace(/<SPREAD>/g,function(){return a}),t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""};e.hooks.add("after-tokenize",function(t){"jsx"!==t.language&&"tsx"!==t.language||function t(n){for(var r=[],a=0;a<n.length;a++){var o=n[a],l=!1;"string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?0<r.length&&r[r.length-1].tagName===i(o.content[0].content[1])&&r.pop():"/>"!==o.content[o.content.length-1].content&&r.push({tagName:i(o.content[0].content[1]),openedBraces:0}):0<r.length&&"punctuation"===o.type&&"{"===o.content?r[r.length-1].openedBraces++:0<r.length&&0<r[r.length-1].openedBraces&&"punctuation"===o.type&&"}"===o.content?r[r.length-1].openedBraces--:l=!0),(l||"string"==typeof o)&&0<r.length&&0===r[r.length-1].openedBraces&&(l=i(o),a<n.length-1&&("string"==typeof n[a+1]||"plain-text"===n[a+1].type)&&(l+=i(n[a+1]),n.splice(a+1,1)),0<a&&("string"==typeof n[a-1]||"plain-text"===n[a-1].type)&&(l=i(n[a-1])+l,n.splice(a-1,1),a--),n[a]=new e.Token("plain-text",l,null,l)),o.content&&"string"!=typeof o.content&&t(o.content)}}(t.tokens)})}(U),k=U.util.clone(U.languages.typescript),(U.languages.tsx=U.languages.extend("jsx",k),delete U.languages.tsx.parameter,delete U.languages.tsx["literal-property"],k=U.languages.tsx.tag).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+k.pattern.source+")",k.pattern.flags),k.lookbehind=!0,U.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ ]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},U.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=U.languages.swift}),U.languages.kotlin=U.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete U.languages.kotlin["class-name"],x={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:U.languages.kotlin}},U.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:x},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:x},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete U.languages.kotlin.string,U.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),U.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),U.languages.kt=U.languages.kotlin,U.languages.kts=U.languages.kotlin,U.languages.c=U.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),U.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),U.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},U.languages.c.string],char:U.languages.c.char,comment:U.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:U.languages.c}}}}),U.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete U.languages.c.boolean,U.languages.objectivec=U.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete U.languages.objectivec["class-name"],U.languages.objc=U.languages.objectivec,U.languages.reason=U.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),U.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete U.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,function(){return t});t=t.replace(/<self>/g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(U),U.languages.go=U.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),U.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete U.languages.go["class-name"],E=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,T=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,function(){return E.source}),U.languages.cpp=U.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,function(){return E.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:E,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),U.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,function(){return T})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),U.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:U.languages.cpp}}}}),U.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),U.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:U.languages.extend("cpp",{})}}),U.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},U.languages.cpp["base-clause"]),U.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},U.languages.python["string-interpolation"].inside.interpolation.inside.rest=U.languages.python,U.languages.py=U.languages.python,U.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},U.languages.webmanifest=U.languages.json;var $={},q={dracula:()=>V,duotoneDark:()=>X,duotoneLight:()=>G,github:()=>W,gruvboxMaterialDark:()=>ed,gruvboxMaterialLight:()=>ef,jettwaveDark:()=>el,jettwaveLight:()=>es,nightOwl:()=>Y,nightOwlLight:()=>K,oceanicNext:()=>J,okaidia:()=>ee,oneDark:()=>eu,oneLight:()=>ec,palenight:()=>et,shadesOfPurple:()=>en,synthwave84:()=>er,ultramin:()=>ea,vsDark:()=>eo,vsLight:()=>ei};for(var H in q)N($,H,{get:q[H],enumerable:!0});var V={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},X={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},G={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},W={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},Y={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},K={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Q="#c5a5c5",Z="#8dc891",J={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:Q}},{types:["attr-value"],style:{color:Z}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:Z}},{types:["punctuation"],style:{color:Z}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:Q}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},ee={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},et={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},en={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},er={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},ea={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},eo={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},ei={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},el={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},es={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},eu={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},ec={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},ed={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},ef={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},ep=/\r\n|\r|\n/,em=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},eg=(e,t)=>{let n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},eh=e=>{let t=[[]],n=[e],r=[0],a=[e.length],o=0,i=0,l=[],s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i],c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=eg(u,c.type),c.alias&&(u=eg(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}let d=e.split(ep),f=d.length;l.push({types:u,content:d[0]});for(let e=1;e<f;e++)em(l),s.push(l=[]),l.push({types:u,content:d[e]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return em(l),s},ey=({children:e,language:t,code:n,theme:r,prism:a})=>{let o,i=t.toLowerCase(),l=((e,t)=>{let{plain:n}=e,r=e.styles.reduce((e,n)=>{let{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{let n=z(z({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=P(z({},n),L({backgroundColor:void 0})),r})(r,i),s=(0,_.useCallback)(e=>{var{className:t,style:n,line:r}=e;let a=P(z({},B(e,["className","style","line"])),L({className:(0,A.A)("token-line",t)}));return"object"==typeof l&&"plain"in l&&(a.style=l.plain),"object"==typeof n&&(a.style=z(z({},a.style||{}),n)),a},[l]),u=(o=(0,_.useCallback)(({types:e,empty:t})=>{if(null!=l)return 1===e.length&&"plain"===e[0]?null!=t?{display:"inline-block"}:void 0:1===e.length&&null!=t?l[e[0]]:Object.assign(null!=t?{display:"inline-block"}:{},...e.map(e=>l[e]))},[l]),(0,_.useCallback)(e=>{var{token:t,className:n,style:r}=e;let a=P(z({},B(e,["token","className","style"])),L({className:(0,A.A)("token",...t.types,n),children:t.content,style:o(t)}));return null!=r&&(a.style=z(z({},a.style||{}),r)),a},[o])),c=a.languages[i];return e({tokens:(({prism:e,code:t,grammar:n,language:r})=>(0,_.useMemo)(()=>{if(null==n)return eh([t]);let a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),eh(a.tokens)},[t,n,r,e]))({prism:a,language:i,code:n,grammar:c}),className:`prism-code language-${i}`,style:null!=l?l.root:{},getLineProps:s,getTokenProps:u})},eb=e=>(0,_.createElement)(ey,P(z({},e),L({prism:e.prism||U,theme:e.theme||eo,code:e.code,language:e.language})))},1561(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}},1635(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>j,__assign:()=>o,__asyncDelegator:()=>T,__asyncGenerator:()=>E,__asyncValues:()=>_,__await:()=>x,__awaiter:()=>m,__classPrivateFieldGet:()=>L,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>I,__createBinding:()=>h,__decorate:()=>l,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>y,__extends:()=>a,__generator:()=>g,__importDefault:()=>O,__importStar:()=>P,__makeTemplateObject:()=>A,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>M,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>k,__spreadArrays:()=>S,__values:()=>b,default:()=>z});var r=function(e,t){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)0>t.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}function l(e,t,n,r){var a,o=arguments.length,i=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,a,o){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var m={};for(var g in r)m[g]="access"===g?{}:r[g];for(var g in r.access)m.access[g]=r.access[g];m.addInitializer=function(e){if(f)throw TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var h=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],m);if("accessor"===s){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw TypeError("Object expected");(l=i(h.get))&&(d.get=l),(l=i(h.set))&&(d.set=l),(l=i(h.init))&&a.unshift(l)}else(l=i(h))&&("field"===s?a.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a<t.length;a++)n=r?t[a].call(e,n):t[a].call(e);return r?n:void 0}function d(e){return"symbol"==typeof e?e:"".concat(e)}function f(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function m(e,t,n,r){return new(n||(n=Promise))(function(a,o){function i(e){try{s(r.next(e))}catch(e){o(e)}}function l(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(i,l)}s((r=r.apply(e,t||[])).next())})}function g(e,t){var n,r,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var u=[l,s];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,u[0]&&(o=0)),o;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=t.call(e,o)}catch(e){u=[6,e],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var h=Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function y(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||h(t,e,n)}function b(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function w(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}function S(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var r=Array(e),a=0,t=0;t<n;t++)for(var o=arguments[t],i=0,l=o.length;i<l;i++,a++)r[a]=o[i];return r}function k(e,t,n){if(n||2==arguments.length)for(var r,a=0,o=t.length;a<o;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}function x(e){return this instanceof x?(this.v=e,this):new x(e)}function E(e,t,n){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),i("next"),i("throw"),i("return",function(e){return function(t){return Promise.resolve(t).then(e,u)}}),r[Symbol.asyncIterator]=function(){return this},r;function i(e,t){a[e]&&(r[e]=function(t){return new Promise(function(n,r){o.push([e,t,n,r])>1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(e,t){try{var n;(n=a[e](t)).value instanceof x?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(e){c(o[0][3],e)}}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function T(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:x(e[r](t)),done:!1}:a?a(t):t}:a}}function _(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=b(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,a){var o,i,l;o=r,i=a,l=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){o({value:e,done:l})},i)})}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},N=function(e){return(N=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t})(e)};function P(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=N(e),r=0;r<n.length;r++)"default"!==n[r]&&h(t,e,n[r]);return C(t,e),t}function O(e){return e&&e.__esModule?e:{default:e}}function L(e,t,n,r){if("a"===n&&!r)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function I(e,t,n,r,a){if("m"===r)throw TypeError("Private method is not writable");if("a"===r&&!a)throw TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}function R(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function j(e,t,n){if(null!=t){var r,a;if("object"!=typeof t&&"function"!=typeof t)throw TypeError("Object expected.");if(n){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],n&&(a=r)}if("function"!=typeof r)throw TypeError("Object not disposable.");a&&(r=function(){try{a.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var D="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function F(e){function t(t){e.error=e.hasError?new D(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var n,r=0;return function a(){for(;n=e.stack.pop();)try{if(!n.async&&1===r)return r=0,e.stack.push(n),Promise.resolve().then(a);if(n.dispose){var o=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(o).then(a,function(e){return t(e),a()})}else r|=1}catch(e){t(e)}if(1===r)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}function M(e,t){return"string"==typeof e&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,a,o){return n?t?".jsx":".js":!r||a&&o?r+a+"."+o.toLowerCase()+"js":e}):e}let z={__extends:a,__assign:o,__rest:i,__decorate:l,__param:s,__esDecorate:u,__runInitializers:c,__propKey:d,__setFunctionName:f,__metadata:p,__awaiter:m,__generator:g,__createBinding:h,__exportStar:y,__values:b,__read:v,__spread:w,__spreadArrays:S,__spreadArray:k,__await:x,__asyncGenerator:E,__asyncDelegator:T,__asyncValues:_,__makeTemplateObject:A,__importStar:P,__importDefault:O,__classPrivateFieldGet:L,__classPrivateFieldSet:I,__classPrivateFieldIn:R,__addDisposableResource:j,__disposeResources:F,__rewriteRelativeImportExtension:M}},2654(e){"use strict";e.exports=JSON.parse('{"theme.ErrorPageContent.title":"This page crashed.","theme.BackToTopButton.buttonAriaLabel":"Scroll back to top","theme.blog.archive.title":"Archive","theme.blog.archive.description":"Archive","theme.blog.paginator.navAriaLabel":"Blog list page navigation","theme.blog.paginator.newerEntries":"Newer entries","theme.blog.paginator.olderEntries":"Older entries","theme.tags.tagsPageLink":"View all tags","theme.blog.post.paginator.navAriaLabel":"Blog post page navigation","theme.blog.post.paginator.newerPost":"Newer post","theme.blog.post.paginator.olderPost":"Older post","theme.colorToggle.ariaLabel.mode.system":"system mode","theme.colorToggle.ariaLabel.mode.light":"light mode","theme.colorToggle.ariaLabel.mode.dark":"dark mode","theme.colorToggle.ariaLabel":"Switch between dark and light mode (currently {mode})","theme.docs.breadcrumbs.navAriaLabel":"Breadcrumbs","theme.docs.paginator.navAriaLabel":"Docs pages","theme.docs.paginator.previous":"Previous","theme.docs.paginator.next":"Next","theme.docs.tagDocListPageTitle.nDocsTagged":"One doc tagged|{count} docs tagged","theme.docs.tagDocListPageTitle":"{nDocsTagged} with \\"{tagName}\\"","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.unreleasedVersionLabel":"This is unreleased documentation for {siteTitle} {versionLabel} version.","theme.docs.versions.unmaintainedVersionLabel":"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.","theme.docs.versions.latestVersionSuggestionLabel":"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).","theme.docs.versions.latestVersionLinkLabel":"latest version","theme.common.editThisPage":"Edit this page","theme.lastUpdated.atDate":" on {date}","theme.lastUpdated.byUser":" by {user}","theme.lastUpdated.lastUpdatedAtBy":"Last updated{atDate}{byUser}","theme.common.headingLinkTitle":"Direct link to {heading}","theme.navbar.mobileVersionsDropdown.label":"Versions","theme.NotFound.title":"Page Not Found","theme.tags.tagsListLabel":"Tags:","theme.AnnouncementBar.closeButtonAriaLabel":"Close","theme.blog.sidebar.navAriaLabel":"Blog recent posts navigation","theme.admonition.caution":"caution","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"note","theme.admonition.tip":"tip","theme.admonition.warning":"warning","theme.DocSidebarItem.expandCategoryAriaLabel":"Expand sidebar category \'{label}\'","theme.DocSidebarItem.collapseCategoryAriaLabel":"Collapse sidebar category \'{label}\'","theme.IconExternalLink.ariaLabel":"(opens in new tab)","theme.NavBar.navAriaLabel":"Main","theme.navbar.mobileLanguageDropdown.label":"Languages","theme.NotFound.p1":"We could not find what you were looking for.","theme.NotFound.p2":"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.","theme.TOCCollapsible.toggleButtonLabel":"On this page","theme.blog.post.readMore":"Read more","theme.blog.post.readMoreLabel":"Read more about {title}","theme.CodeBlock.copy":"Copy","theme.CodeBlock.copied":"Copied","theme.CodeBlock.copyButtonAriaLabel":"Copy code to clipboard","theme.blog.post.readingTime.plurals":"One min read|{readingTime} min read","theme.CodeBlock.wordWrapToggle":"Toggle word wrap","theme.docs.sidebar.collapseButtonTitle":"Collapse sidebar","theme.docs.sidebar.collapseButtonAriaLabel":"Collapse sidebar","theme.docs.breadcrumbs.home":"Home page","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Close navigation bar","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Back to main menu","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Toggle navigation bar","theme.navbar.mobileDropdown.collapseButton.expandAriaLabel":"Expand the dropdown","theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel":"Collapse the dropdown","theme.docs.sidebar.expandButtonTitle":"Expand sidebar","theme.docs.sidebar.expandButtonAriaLabel":"Expand sidebar","theme.blog.post.plurals":"One post|{count} posts","theme.blog.tagTitle":"{nPosts} tagged with \\"{tagName}\\"","theme.blog.author.pageTitle":"{authorName} - {nPosts}","theme.blog.authorsList.pageTitle":"Authors","theme.blog.authorsList.viewAll":"View all authors","theme.blog.author.noPosts":"This author has not written any posts yet.","theme.contentVisibility.unlistedBanner.title":"Unlisted page","theme.contentVisibility.unlistedBanner.message":"This page is unlisted. Search engines will not index it, and only users having a direct link can access it.","theme.contentVisibility.draftBanner.title":"Draft page","theme.contentVisibility.draftBanner.message":"This page is a draft. It will only be visible in dev and be excluded from the production build.","theme.docs.DocCard.categoryDescription.plurals":"1 item|{count} items","theme.ErrorPageContent.tryAgain":"Try again","theme.common.skipToMainContent":"Skip to main content","theme.tags.tagsPageTitle":"Tags","homepage.hero.badge":"Java 8 \xb7 Druid 1.2.28 \xb7 15+ dialects","homepage.hero.tagline":"A multi-dialect SQL parsing engine and toolkit","homepage.hero.desc":"SQL type detection \xb7 Table & column lineage \xb7 Table/DDL parsing \xb7 Function extraction \xb7 Parameter extraction and prepared SQL","homepage.hero.cta.primary":"Quick Start","homepage.hero.cta.secondary":"Introduction","homepage.hero.meta.parse":"\u{1F9E9} Multi-dialect parsing","homepage.hero.meta.lineage":"\u{1F517} Table/column lineage","homepage.hero.meta.i18n":"\u{1F30D} i18n","homepage.hero.meta.version":"\u{1F4DA} Versioning","homepage.features.heading":"One engine for the full SQL parsing pipeline","homepage.feature.type.title":"SQL type detection","homepage.feature.type.desc":"Detect query, DML, DDL, SHOW and EXPLAIN statement types.","homepage.feature.dialect.title":"Multi-dialect parsing","homepage.feature.dialect.desc":"Route Druid dialects via DbType with a unified AST, covering 15+ datasources.","homepage.feature.lineage.title":"Table & column lineage","homepage.feature.lineage.desc":"Table and column lineage across JOIN, UNION, subqueries, aggregates and CTEs.","homepage.feature.table.title":"Table & DDL parsing","homepage.feature.table.desc":"Resolve real tables through JOINs, CTEs and subqueries, then parse fields, keys, partitions and buckets.","homepage.feature.tableLineage.title":"Table lineage","homepage.feature.tableLineage.desc":"Trace data flow from source tables to targets in INSERT and CTAS statements.","homepage.feature.columnLineage.title":"Column lineage","homepage.feature.columnLineage.desc":"Map source columns to targets across expressions, functions and CASE clauses.","homepage.feature.function.title":"Function parsing","homepage.feature.function.desc":"Extract and deduplicate regular, aggregate and window function names across multiple statements.","homepage.feature.parameter.title":"Parameter extraction & prepared SQL","homepage.feature.parameter.desc":"Extract dynamic SELECT parameters and produce JDBC placeholder SQL with ordered bindings.","homepage.feature.split.title":"SQL splitting & validation","homepage.feature.split.desc":"Split multi-statement scripts, validate syntax and rewrite row-level permissions.","homepage.feature.arch.title":"Two-layer extension","homepage.feature.arch.desc":"Syntax differences extend the syntax layer, business differences the core layer, via unified points.","homepage.case.arch.title":"Two-layer unified extension architecture","homepage.case.arch.desc":"The syntax layer extends dialect Lexer/Parser/AST on Druid; the business layer extends parsing, lineage and rewriting via the ISqlParser contract, aligned by DbType and AST.","homepage.case.version.title":"Version / i18n coexistence","homepage.case.version.desc":"Switch version (1.0 / Next) and language (\u7B80\u4F53\u4E2D\u6587 / English) from the navbar.","community.title":"Join the SqlParserX Community","community.subtitle":"Discuss multi-dialect SQL parsing, lineage and governance with developers.","homepage.community.forum.title":"Forum","homepage.community.forum.desc":"Ask questions and share best practices in GitHub Discussions.","homepage.community.github.title":"GitHub","homepage.community.github.desc":"File issues and open pull requests to improve multi-dialect parsing.","homepage.community.qa.title":"Q&A","homepage.community.qa.desc":"Search existing issues or start a new discussion when you get stuck.","homepage.hero.stat.datasource":"Datasource dialects","homepage.hero.stat.capability":"Core capabilities","homepage.hero.stat.layer":"Unified layers","homepage.hero.stat.compat":"Java 8 compatible","homepage.hero.pane.input":"SQL Input","homepage.hero.pane.output":"Parse Result","homepage.hero.tag.table":"Table lineage","homepage.hero.tag.field":"Field lineage","homepage.features.eyebrow":"Capabilities","homepage.features.subheading":"From dialect syntax to business semantics \u2014 unified contract, unified result, ready to use.","homepage.datasource.lead":"15+ datasource dialects supported","homepage.case.arch.eyebrow":"Architecture","homepage.case.docs.eyebrow":"Documentation","homepage.case.step1":"Feed SQL + DbType","homepage.case.step2":"Syntax layer parses into Druid AST","homepage.case.step3":"Business layer unified parsing","homepage.case.step4":"Table / lineage / function / parameter results","homepage.cta.title":"Ready to parse your SQL?","homepage.cta.desc":"Get started in minutes with multi-dialect parsing, lineage tracing and prepared SQL.","homepage.cta.primary":"Quick Start","homepage.cta.secondary":"View Source"}')},4054(e){"use strict";e.exports=JSON.parse('{"/SqlParserX/en/blog-c47":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"4b0ae1c1"}],"__props":"a02bd756"},"/SqlParserX/en/blog/archive-bf0":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"e9caf4bd"},"/SqlParserX/en/blog/authors-ac8":{"__comp":"621db11d","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","__props":"db80618e"},"/SqlParserX/en/blog/authors/changlu-a8d":{"__comp":"33fc5bb8","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"items":[{"content":"4b0ae1c1"}],"sidebar":"814f3328","__props":"5abf25f6"},"/SqlParserX/en/blog/origin-of-sqlparserx-a52":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"4a65a190"},"/SqlParserX/en/blog/tags-2aa":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"22e0017f"},"/SqlParserX/en/blog/tags/origin-121":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"4b0ae1c1"}],"__props":"136d9fb6"},"/SqlParserX/en/community-2bf":{"__comp":"672ba3d6","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/SqlParserX/en/docs-5b1":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/SqlParserX/en/docs/next-a22":{"__comp":"a7bd4aaa","__props":"aa9e3246"},"/SqlParserX/en/docs/next-12e":{"__comp":"a94703ab"},"/SqlParserX/en/docs/next/about/architecture-7df":{"__comp":"17896441","content":"d611a6ba"},"/SqlParserX/en/docs/next/about/introduction-9f1":{"__comp":"17896441","content":"a84fc31f"},"/SqlParserX/en/docs/next/contributing-083":{"__comp":"17896441","content":"a16ef744"},"/SqlParserX/en/docs/next/core/field-lineage-d01":{"__comp":"17896441","content":"e539d78b"},"/SqlParserX/en/docs/next/core/function-parse-2b2":{"__comp":"17896441","content":"f798a39c"},"/SqlParserX/en/docs/next/core/parameter-compile-7b3":{"__comp":"17896441","content":"dae5e6b9"},"/SqlParserX/en/docs/next/core/sql-type-d46":{"__comp":"17896441","content":"1f5cb825"},"/SqlParserX/en/docs/next/core/table-lineage-a0c":{"__comp":"17896441","content":"533336a0"},"/SqlParserX/en/docs/next/core/table-parse-69c":{"__comp":"17896441","content":"ac311984"},"/SqlParserX/en/docs/next/intro-684":{"__comp":"17896441","content":"5b44acae"},"/SqlParserX/en/docs/next/quickstart/setup-65f":{"__comp":"17896441","content":"02854a60"},"/SqlParserX/en/docs-193":{"__comp":"a7bd4aaa","__props":"bd32d0d5"},"/SqlParserX/en/docs-634":{"__comp":"a94703ab"},"/SqlParserX/en/docs/about/architecture-d26":{"__comp":"17896441","content":"2cb18a50"},"/SqlParserX/en/docs/about/introduction-046":{"__comp":"17896441","content":"9c37e8a9"},"/SqlParserX/en/docs/contributing-d4c":{"__comp":"17896441","content":"ac4ff279"},"/SqlParserX/en/docs/core/field-lineage-4f9":{"__comp":"17896441","content":"7ba64a19"},"/SqlParserX/en/docs/core/function-parse-906":{"__comp":"17896441","content":"92d5f697"},"/SqlParserX/en/docs/core/parameter-compile-818":{"__comp":"17896441","content":"1a0052a3"},"/SqlParserX/en/docs/core/sql-type-89c":{"__comp":"17896441","content":"e65be245"},"/SqlParserX/en/docs/core/table-lineage-2f2":{"__comp":"17896441","content":"1078a278"},"/SqlParserX/en/docs/core/table-parse-a91":{"__comp":"17896441","content":"9aae347e"},"/SqlParserX/en/docs/intro-9c5":{"__comp":"17896441","content":"c61d1296"},"/SqlParserX/en/docs/quickstart/setup-646":{"__comp":"17896441","content":"773100d1"},"/SqlParserX/en/-624":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"}}')}},function(e){e.O(0,["4014"],function(){return e(e.s=354)}),e.O()}]); \ No newline at end of file diff --git a/en/assets/js/runtime~main.6a58fde0.js b/en/assets/js/runtime~main.6a58fde0.js new file mode 100644 index 0000000..0f04b2e --- /dev/null +++ b/en/assets/js/runtime~main.6a58fde0.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,c,f,d,r,t,b={},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var c=o[e]={exports:{}};return b[e].call(c.exports,c,c.exports,n),c.exports}n.m=b,n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(c,f){if(1&f&&(c=this(c)),8&f||"object"==typeof c&&c&&(4&f&&c.__esModule||16&f&&"function"==typeof c.then))return c;var d=Object.create(null);n.r(d);var r={};e=e||[null,a({}),a([]),a(a)];for(var t=2&f&&c;("object"==typeof t||"function"==typeof t)&&!~e.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach(e=>{r[e]=()=>c[e]});return r.default=()=>c,n.d(d,r),d},n.d=(e,a)=>{for(var c in a)n.o(a,c)&&!n.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,c)=>(n.f[c](e,a),a),[])),n.u=e=>"assets/js/"+(({1033:"9c37e8a9",106:"17896441",1221:"621db11d",1389:"1a0052a3",1591:"22e0017f",1668:"5e95c892",1759:"9aae347e",1811:"dae5e6b9",1833:"814f3328",191:"36994c47",2030:"e9caf4bd",2687:"aa9e3246",2705:"4a65a190",3056:"a7456010",3080:"e65be245",3179:"5abf25f6",3220:"acecf23e",3224:"c61d1296",3674:"1078a278",3747:"aba21aa0",4128:"92d5f697",4413:"773100d1",4684:"1f5cb825",48:"33fc5bb8",4823:"c4f5d8e4",5301:"e539d78b",5415:"a02bd756",5575:"a7bd4aaa",5940:"bd32d0d5",6056:"db80618e",6074:"ccc49370",6785:"a94703ab",7266:"f798a39c",7496:"a6aa9e1f",766:"6875c492",8102:"533336a0",8222:"ac4ff279",8384:"02854a60",8637:"5b44acae",8893:"672ba3d6",9375:"4b0ae1c1",9414:"a84fc31f",947:"7ba64a19",9548:"2cb18a50",9590:"ac311984",9660:"9e4087bc",9786:"01a85c17",9794:"d611a6ba",9901:"136d9fb6",9984:"a16ef744"})[e]||e)+"."+({1016:"1b255e6a",1033:"639e262d",106:"06353295",1134:"87475e33",1221:"cd6afb65",1389:"183e63f0",1491:"cb46ae3f",1567:"9f44ced9",1591:"f9dfb251",1668:"a44b09d4",1759:"2a52863b",181:"90e2d56b",1811:"4ce7d350",1833:"a11b30f2",1862:"1a43044f",190:"c766b1ae",191:"a19db22c",2030:"6e761e5e",2107:"f3b80883",2240:"925a2a48",2268:"485f02c6",2358:"f2f121b1",2395:"66d8d46d",255:"9c291378",2687:"77f04ee4",2705:"c43c3324",2853:"1bd4804e",2881:"cdbfd8a4",2951:"c9b9b0af",3009:"12978314",3017:"e8b74ccb",3056:"5acfbe30",3080:"f35e9887",3179:"9830132d",3220:"98c2f734",3224:"5cb6898e",3312:"b999d1ad",3535:"18db5811",3636:"d70391ac",3674:"2d55bc20",3693:"178dfbe0",3747:"33b48647",3788:"070794c2",3851:"7f972b73",4128:"1b48d711",4137:"1b2a1b68",4413:"d8d80707",4551:"88d2b179",4617:"6e66f439",4684:"cbb867bf",4709:"1ea5418e",4788:"eef239cb",48:"3fe0f57b",480:"1eb9a3a7",4823:"97d426b8",4875:"484cb0fc",4892:"beb61f34",4936:"2ebabc8b",4950:"3fa51f56",5062:"689c71ca",5082:"46e3206e",5250:"ce6f0efa",5301:"e0feac5b",5415:"f50fe793",5428:"8c0b8a2a",5493:"5c969992",5505:"ad92f9fd",5575:"f3b25130",5576:"62e087a6",5651:"49615f32",5783:"7e9699db",5940:"2cdaeaae",6056:"29a55518",6073:"79b4ff37",6074:"0fff0dec",612:"7ca96f70",6184:"b444265b",6326:"27d6a633",6374:"05518a82",6520:"c5a12252",6726:"ac90325c",6762:"affd9a83",6771:"da21afb4",6785:"0bcffcab",6832:"438cdfc9",6856:"9f4ebf6f",718:"659975ba",7256:"bfa531c9",7266:"3ca9474b",7472:"ede4e6b6",7496:"5f4ef81b",766:"0883a958",7693:"c2b73a77",7874:"d706704a",8102:"2c9aa3e0",8222:"5ca528d4",8272:"20c4caca",8384:"34877af3",8637:"5f304454",8645:"4532c47b",8665:"cdad3879",8683:"9ee3384f",8738:"3885adf6",8893:"6f76c648",8927:"68e81f0d",896:"d7dfba44",9010:"278a1aa9",9156:"a3122fd7",9375:"8ac82777",9414:"1d7e9083",947:"c7666b43",9548:"16e7a45e",9590:"eb22d05b",9660:"294903d8",9729:"f747c8de",9786:"35e1a59a",9794:"91ee51b6",9901:"e7c4760d",9948:"5ccdc219",9956:"43a95bde",9984:"4468786b"})[e]+".js",n.miniCssF=e=>""+e+".css",n.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},n.l=function(e,a,f,d){if(c[e])return void c[e].push(a);if(void 0!==f)for(var r,t,b=document.getElementsByTagName("script"),o=0;o<b.length;o++){var i=b[o];if(i.getAttribute("src")==e||i.getAttribute("data-rspack")=="sqlparserx:"+f){r=i;break}}r||(t=!0,(r=document.createElement("script")).timeout=120,n.nc&&r.setAttribute("nonce",n.nc),r.setAttribute("data-rspack","sqlparserx:"+f),r.src=e),c[e]=[a];var u=function(a,f){r.onerror=r.onload=null,clearTimeout(s);var d=c[e];if(delete c[e],r.parentNode&&r.parentNode.removeChild(r),d&&d.forEach(function(e){return e(f)}),a)return a(f)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),t&&document.head.appendChild(r)},n.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f=[],n.O=(e,a,c,d)=>{if(a){d=d||0;for(var r=f.length;r>0&&f[r-1][2]>d;r--)f[r]=f[r-1];f[r]=[a,c,d];return}for(var t=1/0,r=0;r<f.length;r++){for(var a=f[r][0],c=f[r][1],d=f[r][2],b=!0,o=0;o<a.length;o++)(!1&d||t>=d)&&Object.keys(n.O).every(e=>n.O[e](a[o]))?a.splice(o--,1):(b=!1,d<t&&(t=d));if(b){f.splice(r--,1);var i=c();void 0!==i&&(e=i)}}return e},n.p="/SqlParserX/en/",n.rv=()=>"1.7.12",n.gca=function(e){return e=({0x11113f9:"106","33fc5bb8":"48","36994c47":"191","6875c492":"766","7ba64a19":"947","9c37e8a9":"1033","621db11d":"1221","1a0052a3":"1389","22e0017f":"1591","5e95c892":"1668","9aae347e":"1759",dae5e6b9:"1811","814f3328":"1833",e9caf4bd:"2030",aa9e3246:"2687","4a65a190":"2705",a7456010:"3056",e65be245:"3080","5abf25f6":"3179",acecf23e:"3220",c61d1296:"3224","1078a278":"3674",aba21aa0:"3747","92d5f697":"4128","773100d1":"4413","1f5cb825":"4684",c4f5d8e4:"4823",e539d78b:"5301",a02bd756:"5415",a7bd4aaa:"5575",bd32d0d5:"5940",db80618e:"6056",ccc49370:"6074",a94703ab:"6785",f798a39c:"7266",a6aa9e1f:"7496","533336a0":"8102",ac4ff279:"8222","02854a60":"8384","5b44acae":"8637","672ba3d6":"8893","4b0ae1c1":"9375",a84fc31f:"9414","2cb18a50":"9548",ac311984:"9590","9e4087bc":"9660","01a85c17":"9786",d611a6ba:"9794","136d9fb6":"9901",a16ef744:"9984"})[e]||e,n.p+n.u(e)},d={4014:0,9783:0},n.f.j=function(e,a){var c=n.o(d,e)?d[e]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(4014|9783)$/.test(e))d[e]=0;else{var f=new Promise((a,f)=>c=d[e]=[a,f]);a.push(c[2]=f);var r=n.p+n.u(e),t=Error();n.l(r,function(a){if(n.o(d,e)&&(0!==(c=d[e])&&(d[e]=void 0),c)){var f=a&&("load"===a.type?"missing":a.type),r=a&&a.target&&a.target.src;t.message="Loading chunk "+e+" failed.\n("+f+": "+r+")",t.name="ChunkLoadError",t.type=f,t.request=r,c[1](t)}},"chunk-"+e,e)}},n.O.j=e=>0===d[e],r=(e,a)=>{var c,f,r=a[0],t=a[1],b=a[2],o=0;if(r.some(e=>0!==d[e])){for(c in t)n.o(t,c)&&(n.m[c]=t[c]);if(b)var i=b(n)}for(e&&e(a);o<r.length;o++)f=r[o],n.o(d,f)&&d[f]&&d[f][0](),d[f]=0;return n.O(i)},(t=self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t)),n.ruid="bundler=rspack@1.7.12"})(); \ No newline at end of file diff --git a/en/assets/js/runtime~main.f734647b.js b/en/assets/js/runtime~main.f734647b.js deleted file mode 100644 index 982a3d6..0000000 --- a/en/assets/js/runtime~main.f734647b.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,c,d,r,f,t,b={},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var c=o[e]={exports:{}};return b[e].call(c.exports,c,c.exports,n),c.exports}n.m=b,n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(c,d){if(1&d&&(c=this(c)),8&d||"object"==typeof c&&c&&(4&d&&c.__esModule||16&d&&"function"==typeof c.then))return c;var r=Object.create(null);n.r(r);var f={};e=e||[null,a({}),a([]),a(a)];for(var t=2&d&&c;("object"==typeof t||"function"==typeof t)&&!~e.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach(e=>{f[e]=()=>c[e]});return f.default=()=>c,n.d(r,f),r},n.d=(e,a)=>{for(var c in a)n.o(a,c)&&!n.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,c)=>(n.f[c](e,a),a),[])),n.u=e=>"assets/js/"+(({1033:"9c37e8a9",106:"17896441",1221:"621db11d",1591:"22e0017f",1668:"5e95c892",1759:"9aae347e",1833:"814f3328",191:"36994c47",2030:"e9caf4bd",2687:"aa9e3246",2705:"4a65a190",3056:"a7456010",3179:"5abf25f6",3220:"acecf23e",3224:"c61d1296",3674:"1078a278",3747:"aba21aa0",4128:"92d5f697",4413:"773100d1",48:"33fc5bb8",4823:"c4f5d8e4",5005:"common",5301:"e539d78b",5415:"a02bd756",5575:"a7bd4aaa",5940:"bd32d0d5",6056:"db80618e",6074:"ccc49370",6785:"a94703ab",7266:"f798a39c",7496:"a6aa9e1f",766:"6875c492",8102:"533336a0",8222:"ac4ff279",8384:"02854a60",8637:"5b44acae",8893:"672ba3d6",9375:"4b0ae1c1",9414:"a84fc31f",947:"7ba64a19",9548:"2cb18a50",9590:"ac311984",9660:"9e4087bc",9786:"01a85c17",9794:"d611a6ba",9901:"136d9fb6",9984:"a16ef744"})[e]||e)+"."+({1016:"43603c7f",1033:"7fe8a96d",106:"06353295",1134:"56885915",1221:"cd6afb65",1447:"ce362a6b",1491:"920b1332",1567:"9f44ced9",1591:"f9dfb251",1668:"a44b09d4",1759:"74700eb1",181:"90e2d56b",1833:"a11b30f2",1862:"1a43044f",190:"c766b1ae",191:"a19db22c",2030:"6e761e5e",2107:"f3b80883",2240:"925a2a48",2268:"485f02c6",2358:"f2f121b1",2395:"66d8d46d",255:"9c291378",2687:"260a5858",2705:"cd87306b",2853:"1bd4804e",2881:"c311ece9",2951:"165aea2c",3009:"12978314",3017:"e8b74ccb",3056:"5acfbe30",3179:"9830132d",3220:"98c2f734",3224:"dae5d868",3312:"b999d1ad",3535:"18db5811",3636:"d70391ac",3674:"964015e8",3693:"178dfbe0",3747:"33b48647",3788:"070794c2",3851:"7f972b73",4128:"98e740c5",4137:"67bb73ee",4413:"d64ce887",4551:"88d2b179",4617:"6e66f439",4709:"1ea5418e",4788:"724c0856",48:"3fe0f57b",480:"40dd37ae",4823:"f9b899ea",4875:"484cb0fc",4892:"beb61f34",4950:"3fa51f56",5005:"b2db8efe",5062:"689c71ca",5082:"46e3206e",5250:"ce6f0efa",5301:"f200a967",5415:"f50fe793",5428:"8c0b8a2a",5493:"5c969992",5505:"ad92f9fd",5575:"f3b25130",5576:"62e087a6",5651:"49615f32",5783:"7e9699db",5940:"4cd1db7b",6056:"29a55518",6073:"99acb2b6",6074:"0fff0dec",612:"7ca96f70",6184:"b444265b",6326:"27d6a633",6374:"05518a82",6520:"c5a12252",6726:"ac90325c",6762:"affd9a83",6771:"da21afb4",6785:"0bcffcab",6832:"2c2e961f",6856:"9f4ebf6f",718:"659975ba",7256:"b8012a00",7266:"092b30b6",7472:"ede4e6b6",7496:"5f4ef81b",766:"0883a958",7693:"c2b73a77",7874:"d706704a",8102:"5348230d",8222:"f1c344ee",8272:"20c4caca",8384:"7e7e9bd4",8637:"eb2b091e",8645:"4532c47b",8665:"cdad3879",8683:"9ee3384f",8893:"6f76c648",8927:"7a51b0fb",896:"d7dfba44",9010:"278a1aa9",9156:"a3122fd7",9375:"c494aa8e",9414:"1e52c8d8",947:"5461fd25",9548:"16d7aca5",9590:"d9c3b59b",9660:"294903d8",9729:"f747c8de",9786:"35e1a59a",9794:"65339341",9901:"e7c4760d",9948:"5ccdc219",9956:"43a95bde",9984:"39fbe70d"})[e]+".js",n.miniCssF=e=>""+e+".css",n.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},n.l=function(e,a,d,r){if(c[e])return void c[e].push(a);if(void 0!==d)for(var f,t,b=document.getElementsByTagName("script"),o=0;o<b.length;o++){var i=b[o];if(i.getAttribute("src")==e||i.getAttribute("data-rspack")=="sqlparserx:"+d){f=i;break}}f||(t=!0,(f=document.createElement("script")).timeout=120,n.nc&&f.setAttribute("nonce",n.nc),f.setAttribute("data-rspack","sqlparserx:"+d),f.src=e),c[e]=[a];var u=function(a,d){f.onerror=f.onload=null,clearTimeout(s);var r=c[e];if(delete c[e],f.parentNode&&f.parentNode.removeChild(f),r&&r.forEach(function(e){return e(d)}),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=u.bind(null,f.onerror),f.onload=u.bind(null,f.onload),t&&document.head.appendChild(f)},n.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d=[],n.O=(e,a,c,r)=>{if(a){r=r||0;for(var f=d.length;f>0&&d[f-1][2]>r;f--)d[f]=d[f-1];d[f]=[a,c,r];return}for(var t=1/0,f=0;f<d.length;f++){for(var a=d[f][0],c=d[f][1],r=d[f][2],b=!0,o=0;o<a.length;o++)(!1&r||t>=r)&&Object.keys(n.O).every(e=>n.O[e](a[o]))?a.splice(o--,1):(b=!1,r<t&&(t=r));if(b){d.splice(f--,1);var i=c();void 0!==i&&(e=i)}}return e},n.p="/SqlParserX/en/",n.rv=()=>"1.7.12",n.gca=function(e){return e=({0x11113f9:"106","33fc5bb8":"48","36994c47":"191","6875c492":"766","7ba64a19":"947","9c37e8a9":"1033","621db11d":"1221","22e0017f":"1591","5e95c892":"1668","9aae347e":"1759","814f3328":"1833",e9caf4bd:"2030",aa9e3246:"2687","4a65a190":"2705",a7456010:"3056","5abf25f6":"3179",acecf23e:"3220",c61d1296:"3224","1078a278":"3674",aba21aa0:"3747","92d5f697":"4128","773100d1":"4413",c4f5d8e4:"4823",common:"5005",e539d78b:"5301",a02bd756:"5415",a7bd4aaa:"5575",bd32d0d5:"5940",db80618e:"6056",ccc49370:"6074",a94703ab:"6785",f798a39c:"7266",a6aa9e1f:"7496","533336a0":"8102",ac4ff279:"8222","02854a60":"8384","5b44acae":"8637","672ba3d6":"8893","4b0ae1c1":"9375",a84fc31f:"9414","2cb18a50":"9548",ac311984:"9590","9e4087bc":"9660","01a85c17":"9786",d611a6ba:"9794","136d9fb6":"9901",a16ef744:"9984"})[e]||e,n.p+n.u(e)},r={4014:0,9783:0},n.f.j=function(e,a){var c=n.o(r,e)?r[e]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(4014|9783)$/.test(e))r[e]=0;else{var d=new Promise((a,d)=>c=r[e]=[a,d]);a.push(c[2]=d);var f=n.p+n.u(e),t=Error();n.l(f,function(a){if(n.o(r,e)&&(0!==(c=r[e])&&(r[e]=void 0),c)){var d=a&&("load"===a.type?"missing":a.type),f=a&&a.target&&a.target.src;t.message="Loading chunk "+e+" failed.\n("+d+": "+f+")",t.name="ChunkLoadError",t.type=d,t.request=f,c[1](t)}},"chunk-"+e,e)}},n.O.j=e=>0===r[e],f=(e,a)=>{var c,d,f=a[0],t=a[1],b=a[2],o=0;if(f.some(e=>0!==r[e])){for(c in t)n.o(t,c)&&(n.m[c]=t[c]);if(b)var i=b(n)}for(e&&e(a);o<f.length;o++)d=f[o],n.o(r,d)&&r[d]&&r[d][0](),r[d]=0;return n.O(i)},(t=self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).forEach(f.bind(null,0)),t.push=f.bind(null,t.push.bind(t)),n.ruid="bundler=rspack@1.7.12"})(); \ No newline at end of file diff --git a/en/blog.html b/en/blog.html index e8571d8..a68b446 100644 --- a/en/blog.html +++ b/en/blog.html @@ -1,7 +1,7 @@ -<!doctype html><html lang=en dir=ltr class="blog-wrapper blog-list-page plugin-blog plugin-id-default" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.2"><title data-rh=true>Blog | SqlParserX +Blog | SqlParserX -

    SqlParserX 的诞生起源背景与内部改造

    · 17 min read
    changlu
    SqlParserX 维护者
    +

    SqlParserX 的诞生起源背景与内部改造

    · 17 min read
    changlu
    SqlParserX 维护者

    作者:changlu | 日期:2026-09-28

    这是一篇关于 SqlParserX 起源的技术博客。它记录了从「为什么要做 SQL 解析」到「在大量异构数据源下如何统一解析」的思考过程,以及最终促成一个纯 Druid 实现的开源 SQL 解析项目诞生的背景。 项目地址与使用方式见 SqlParserX 仓库,双层架构设计见 架构设计。

    diff --git a/en/blog/archive.html b/en/blog/archive.html index b69a37f..7424002 100644 --- a/en/blog/archive.html +++ b/en/blog/archive.html @@ -1,4 +1,4 @@ -Archive | SqlParserX +Archive | SqlParserX - \ No newline at end of file + \ No newline at end of file diff --git a/en/blog/atom.xml b/en/blog/atom.xml index c4e3347..1dafed7 100644 --- a/en/blog/atom.xml +++ b/en/blog/atom.xml @@ -6,7 +6,7 @@ https://github.com/jpmonette/feed SqlParserX Blog - https://dtstack.github.io/SqlParserX/en/img/favicon.svg + https://dtstack.github.io/SqlParserX/en/img/logo.png <![CDATA[SqlParserX 的诞生起源背景与内部改造]]> https://dtstack.github.io/SqlParserX/en/blog/origin-of-sqlparserx diff --git a/en/blog/authors.html b/en/blog/authors.html index efbd2d4..3b11237 100644 --- a/en/blog/authors.html +++ b/en/blog/authors.html @@ -1,4 +1,4 @@ -Authors | SqlParserX +Authors | SqlParserX -

    Authors

    \ No newline at end of file +

    Authors

    \ No newline at end of file diff --git a/en/blog/authors/changlu.html b/en/blog/authors/changlu.html index 230dfc2..e2d18c0 100644 --- a/en/blog/authors/changlu.html +++ b/en/blog/authors/changlu.html @@ -1,7 +1,7 @@ -changlu - One post | SqlParserX +changlu - One post | SqlParserX -
    changlu
    SqlParserX 维护者
    View all authors

    SqlParserX 的诞生起源背景与内部改造

    · 17 min read
    changlu
    SqlParserX 维护者
    +
    changlu
    SqlParserX 维护者
    View all authors

    SqlParserX 的诞生起源背景与内部改造

    · 17 min read
    changlu
    SqlParserX 维护者

    作者:changlu | 日期:2026-09-28

    这是一篇关于 SqlParserX 起源的技术博客。它记录了从「为什么要做 SQL 解析」到「在大量异构数据源下如何统一解析」的思考过程,以及最终促成一个纯 Druid 实现的开源 SQL 解析项目诞生的背景。 项目地址与使用方式见 SqlParserX 仓库,双层架构设计见 架构设计。

    diff --git a/en/blog/origin-of-sqlparserx.html b/en/blog/origin-of-sqlparserx.html index f46d504..7ee26ae 100644 --- a/en/blog/origin-of-sqlparserx.html +++ b/en/blog/origin-of-sqlparserx.html @@ -1,7 +1,7 @@ -SqlParserX 的诞生起源背景与内部改造 | SqlParserX +SqlParserX 的诞生起源背景与内部改造 | SqlParserX -

    SqlParserX 的诞生起源背景与内部改造

    · 17 min read
    changlu
    SqlParserX 维护者
    +

    SqlParserX 的诞生起源背景与内部改造

    · 17 min read
    changlu
    SqlParserX 维护者

    作者:changlu | 日期:2026-09-28

    这是一篇关于 SqlParserX 起源的技术博客。它记录了从「为什么要做 SQL 解析」到「在大量异构数据源下如何统一解析」的思考过程,以及最终促成一个纯 Druid 实现的开源 SQL 解析项目诞生的背景。 项目地址与使用方式见 SqlParserX 仓库,双层架构设计见 架构设计。

    diff --git a/en/blog/tags.html b/en/blog/tags.html index a68f6b4..58f69ef 100644 --- a/en/blog/tags.html +++ b/en/blog/tags.html @@ -1,4 +1,4 @@ -Tags | SqlParserX +Tags | SqlParserX - \ No newline at end of file + \ No newline at end of file diff --git a/en/blog/tags/origin.html b/en/blog/tags/origin.html index a353bf3..3894ebe 100644 --- a/en/blog/tags/origin.html +++ b/en/blog/tags/origin.html @@ -1,7 +1,7 @@ -One post tagged with "起源与背景" | SqlParserX +One post tagged with "起源与背景" | SqlParserX -

    One post tagged with "起源与背景"

    SqlParserX 的诞生起源与内部改造历程

    View all tags

    SqlParserX 的诞生起源背景与内部改造

    · 17 min read
    changlu
    SqlParserX 维护者
    +

    One post tagged with "起源与背景"

    SqlParserX 的诞生起源与内部改造历程

    View all tags

    SqlParserX 的诞生起源背景与内部改造

    · 17 min read
    changlu
    SqlParserX 维护者

    作者:changlu | 日期:2026-09-28

    这是一篇关于 SqlParserX 起源的技术博客。它记录了从「为什么要做 SQL 解析」到「在大量异构数据源下如何统一解析」的思考过程,以及最终促成一个纯 Druid 实现的开源 SQL 解析项目诞生的背景。 项目地址与使用方式见 SqlParserX 仓库,双层架构设计见 架构设计。

    diff --git a/en/community.html b/en/community.html index 21975b9..d6e9c95 100644 --- a/en/community.html +++ b/en/community.html @@ -1,4 +1,4 @@ -Community | SqlParserX +Community | SqlParserX -

    Join the SqlParserX Community

    Discuss multi-dialect SQL parsing, lineage and governance with developers.

    💬

    Forum

    Ask questions and share best practices in GitHub Discussions.

    前往讨论区
    🐙

    GitHub

    File issues and open pull requests to improve multi-dialect parsing.

    访问仓库
    ❓

    Q&A

    Search existing issues or start a new discussion when you get stuck.

    查看 Issues
    \ No newline at end of file +

    Join the SqlParserX Community

    Discuss multi-dialect SQL parsing, lineage and governance with developers.

    💬

    Forum

    Ask questions and share best practices in GitHub Discussions.

    前往讨论区
    🐙

    GitHub

    File issues and open pull requests to improve multi-dialect parsing.

    访问仓库
    ❓

    Q&A

    Search existing issues or start a new discussion when you get stuck.

    查看 Issues
    \ No newline at end of file diff --git a/en/docs/about/architecture.html b/en/docs/about/architecture.html index a83e924..fc26e29 100644 --- a/en/docs/about/architecture.html +++ b/en/docs/about/architecture.html @@ -1,7 +1,7 @@ -Architecture | SqlParserX +Architecture | SqlParserX -
    Version: Next 🚧

    Two-Layer Unified Extension Architecture

    +
    Version: Next 🚧

    Two-Layer Unified Extension Architecture

    The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:

    • SQL syntax layer (sqlparserx-syntax): built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model.
    • diff --git a/en/docs/about/introduction.html b/en/docs/about/introduction.html index 986cd02..f4c54ba 100644 --- a/en/docs/about/introduction.html +++ b/en/docs/about/introduction.html @@ -1,8 +1,8 @@ -Introduction | SqlParserX +Introduction | SqlParserX -
      Version: Next 🚧

      Introduction to SqlParserX

      -

      SqlParserX is a multi-dialect SQL parsing engine and toolkit offering table/DDL parsing, table and column lineage, function extraction, SQL splitting and row-level permission rewriting.

      +
      Version: Next 🚧

      Introduction to SqlParserX

      +

      SqlParserX is a multi-dialect SQL parsing engine and toolkit offering SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation.

      Problems It Solves​

      ProblemSolution
      Dialects differ greatlyRoute Druid dialects via DbType with a unified AST
      Real tables and DDL hide in SQL textTable, CTE, CREATE TABLE, partition and property parsing
      Data dependencies are hard to traceTable/column lineage across JOIN, UNION, subqueries, aggregates and CTEs
      Scripts contain multiple statementsSQL splitting and syntax validation
      Permission predicates are hard to maintainRow-level permission SQL rewriting

      Modules​

      diff --git a/en/docs/contributing.html b/en/docs/contributing.html index 3f127f8..56a6f27 100644 --- a/en/docs/contributing.html +++ b/en/docs/contributing.html @@ -1,7 +1,7 @@ -Contributing | SqlParserX +Contributing | SqlParserX -
      Version: Next 🚧

      Contributing

      +
      Version: Next 🚧

      Contributing

      Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome.

      Ways to Contribute​

        @@ -27,4 +27,4 @@

        Documentation<
        • Docs are maintained in the project root docs/ and synced to this site
        • Update the relevant capability docs when adding parsing capabilities
        • -

      \ No newline at end of file +
    \ No newline at end of file diff --git a/en/docs/core/field-lineage.html b/en/docs/core/field-lineage.html index 5eb8741..01736db 100644 --- a/en/docs/core/field-lineage.html +++ b/en/docs/core/field-lineage.html @@ -1,7 +1,7 @@ -Field Lineage | SqlParserX +Field Lineage | SqlParserX -
    Version: Next 🚧

    Field Lineage

    +
    Version: Next 🚧

    Field Lineage

    1. Add the Dependency​

    <dependency>
    <groupId>com.dtstack</groupId>
    <artifactId>sqlparserx-core</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    @@ -19,4 +19,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseColumnLineages(sql, tableColumnsMap)
    Default implBaseSqlParser.parseColumnLineages → ColumnLineageClient
    Return typeColumnLineageResult (getColumnRelations() + getColumnLineages())
    ApplicableSQLInsertStatement, SQLCreateTableStatement (AS SELECT)
    Metadata inputMap<String, List<Column>> tableColumnsMap

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    catalog.db.table.columnSupported ✅Multi-catalog scenarios such as Hive/Trino/StarRocks
    db.table.columnSupported ✅Standard MySQL/PostgreSQL usage
    Column expressions (SQLBinaryOpExpr)Supported ✅e.g. t5.level + 1, recursively collect columns
    * / xx.* expansionSupported ✅Read from metadata tableColumnsMap; keep * without metadata
    \ No newline at end of file +
    CapabilityStatusNotes
    catalog.db.table.columnSupported ✅Multi-catalog scenarios such as Hive/Trino/StarRocks
    db.table.columnSupported ✅Standard MySQL/PostgreSQL usage
    Column expressions (SQLBinaryOpExpr)Supported ✅e.g. t5.level + 1, recursively collect columns
    * / xx.* expansionSupported ✅Read from metadata tableColumnsMap; keep * without metadata
    \ No newline at end of file diff --git a/en/docs/core/function-parse.html b/en/docs/core/function-parse.html index 548782d..2b5dbf0 100644 --- a/en/docs/core/function-parse.html +++ b/en/docs/core/function-parse.html @@ -1,7 +1,7 @@ -Function Parsing | SqlParserX +Function Parsing | SqlParserX -
    Version: Next 🚧

    Function Parsing

    +
    Version: Next 🚧

    Function Parsing

    1. Add the Dependency​

    <dependency>
    <groupId>com.dtstack</groupId>
    <artifactId>sqlparserx-core</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    @@ -18,4 +18,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseFunction(sql)
    Default implBaseSqlParser.parseFunction
    Return typeSet<String> (function names, lower-cased)
    Coveragebuilt-in, aggregate, window, custom functions

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    Regular function callsSupported ✅e.g. substr(name, 1, 3)
    Aggregate functionsSupported ✅e.g. sum, count, max
    Window functionsSupported ✅e.g. row_number() over(...)
    Nested functionsSupported ✅Recursively collect inner and outer functions
    \ No newline at end of file +
    CapabilityStatusNotes
    Regular function callsSupported ✅e.g. substr(name, 1, 3)
    Aggregate functionsSupported ✅e.g. sum, count, max
    Window functionsSupported ✅e.g. row_number() over(...)
    Nested functionsSupported ✅Recursively collect inner and outer functions
    \ No newline at end of file diff --git a/en/docs/core/parameter-compile.html b/en/docs/core/parameter-compile.html new file mode 100644 index 0000000..22edf4a --- /dev/null +++ b/en/docs/core/parameter-compile.html @@ -0,0 +1,8 @@ +Parameter Extraction and Prepared SQL | SqlParserX + + +
    Version: Next 🚧

    Parameter Extraction and Prepared SQL

    +

    SqlParserX extracts ${variable} expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ? placeholders and an ordered binding list.

    +
    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);
    String sql = "SELECT id, name FROM users "
    + "WHERE dt = '${bizdate}' AND region = '${region}'";

    ParseParameterResult parsed = parser.parseParameterSql(
    sql, false, Collections.emptyMap());

    Map<String, Object> values = new HashMap<>();
    values.put("bizdate", "20261014");
    values.put("region", "hangzhou");

    PrepareCompileResult compiled = parser.buildSqlByPrepareCompile(
    sql, values, Collections.emptyMap());
    System.out.println(compiled.getBeautifulSql());
    System.out.println(compiled.getInputFields());
    +
    SELECT id, name FROM users WHERE dt = ? AND region = ?
    [20261014, hangzhou]
    +

    The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined.

    \ No newline at end of file diff --git a/en/docs/core/sql-type.html b/en/docs/core/sql-type.html new file mode 100644 index 0000000..db9675e --- /dev/null +++ b/en/docs/core/sql-type.html @@ -0,0 +1,7 @@ +SQL Type Detection | SqlParserX + + +
    Version: Next 🚧

    SQL Type Detection

    +

    parseSqlType parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified SqlType. It can drive statement routing, audit classification, and execution policies.

    +
    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);

    SqlType queryType = parser.parseSqlType("SELECT id FROM users");
    SqlType insertType = parser.parseSqlType(
    "INSERT INTO target_table SELECT id FROM source_table");

    System.out.println(queryType); // QUERY
    System.out.println(insertType); // INSERT
    +

    The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns OTHER; syntax support still depends on the selected dialect.

    \ No newline at end of file diff --git a/en/docs/core/table-lineage.html b/en/docs/core/table-lineage.html index 46ad6ce..0c6372f 100644 --- a/en/docs/core/table-lineage.html +++ b/en/docs/core/table-lineage.html @@ -1,7 +1,7 @@ -Table Lineage | SqlParserX +Table Lineage | SqlParserX -
    Version: Next 🚧

    Table Lineage

    +
    Version: Next 🚧

    Table Lineage

    1. Add the Dependency​

    <dependency>
    <groupId>com.dtstack</groupId>
    <artifactId>sqlparserx-core</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    diff --git a/en/docs/core/table-parse.html b/en/docs/core/table-parse.html index 0c0a0f2..2636fc3 100644 --- a/en/docs/core/table-parse.html +++ b/en/docs/core/table-parse.html @@ -1,7 +1,7 @@ -Table Parsing | SqlParserX +Table Parsing | SqlParserX -
    Version: Next 🚧

    Table Parsing

    +
    Version: Next 🚧

    Table Parsing

    1. Add the Dependency​

    <dependency>
    <groupId>com.dtstack</groupId>
    <artifactId>sqlparserx-core</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    diff --git a/en/docs/intro.html b/en/docs/intro.html index 82c8509..46e1eb5 100644 --- a/en/docs/intro.html +++ b/en/docs/intro.html @@ -1,8 +1,8 @@ -SqlParserX Docs | SqlParserX +SqlParserX Docs | SqlParserX -
    Version: Next 🚧

    Welcome to SqlParserX

    -

    SqlParserX is a multi-dialect SQL parsing engine and toolkit for table/DDL parsing, table and column lineage, function extraction, SQL splitting and row-level permission rewriting.

    +
    Version: Next 🚧

    Welcome to SqlParserX

    +

    SqlParserX is a multi-dialect SQL parsing engine and toolkit for SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation.

    It is built around two layers: sqlparserx-syntax parses SQL into Druid ASTs and owns syntax extensions; sqlparserx-core consumes those ASTs through the unified ISqlParser contract and produces business parsing results. sqlparserx-web and sqlparserx-ui provide service and visualization access.

    Get Started​

      @@ -14,7 +14,7 @@

      Documentat
      • About SqlParserX: project introduction and two-layer architecture
      • Quick Start: environment setup, build and run
      • -
      • Core Parsing Capabilities: field lineage, table lineage, table parsing, function parsing
      • +
      • Core Parsing Capabilities: SQL type detection, field lineage, table lineage, table parsing, function extraction, and parameter extraction
      • Contributing: how to contribute

      :::tip Tip diff --git a/en/docs/next/about/architecture.html b/en/docs/next/about/architecture.html index af83387..e65e76e 100644 --- a/en/docs/next/about/architecture.html +++ b/en/docs/next/about/architecture.html @@ -1,7 +1,7 @@ -Architecture | SqlParserX +Architecture | SqlParserX -

      Version: Next 🚧

      Two-Layer Unified Extension Architecture

      +
      Version: Next 🚧

      Two-Layer Unified Extension Architecture

      The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:

      • SQL syntax layer (sqlparserx-syntax): built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model.
      • diff --git a/en/docs/next/about/introduction.html b/en/docs/next/about/introduction.html index d95c51e..d9ba409 100644 --- a/en/docs/next/about/introduction.html +++ b/en/docs/next/about/introduction.html @@ -1,8 +1,8 @@ -Introduction | SqlParserX +Introduction | SqlParserX -
        Version: Next 🚧

        Introduction to SqlParserX

        -

        SqlParserX is a multi-dialect SQL parsing engine and toolkit offering table/DDL parsing, table and column lineage, function extraction, SQL splitting and row-level permission rewriting.

        +
        Version: Next 🚧

        Introduction to SqlParserX

        +

        SqlParserX is a multi-dialect SQL parsing engine and toolkit offering SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation.

        Problems It Solves​

        ProblemSolution
        Dialects differ greatlyRoute Druid dialects via DbType with a unified AST
        Real tables and DDL hide in SQL textTable, CTE, CREATE TABLE, partition and property parsing
        Data dependencies are hard to traceTable/column lineage across JOIN, UNION, subqueries, aggregates and CTEs
        Scripts contain multiple statementsSQL splitting and syntax validation
        Permission predicates are hard to maintainRow-level permission SQL rewriting

        Modules​

        diff --git a/en/docs/next/contributing.html b/en/docs/next/contributing.html index 79d9a53..29eea25 100644 --- a/en/docs/next/contributing.html +++ b/en/docs/next/contributing.html @@ -1,7 +1,7 @@ -Contributing | SqlParserX +Contributing | SqlParserX -
        Version: Next 🚧

        Contributing

        +
        Version: Next 🚧

        Contributing

        Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome.

        Ways to Contribute​

          @@ -27,4 +27,4 @@

          Documentation<
          • Docs are maintained in the project root docs/ and synced to this site
          • Update the relevant capability docs when adding parsing capabilities
          • -

        \ No newline at end of file +
      \ No newline at end of file diff --git a/en/docs/next/core/field-lineage.html b/en/docs/next/core/field-lineage.html index 94fd4d1..a0047e0 100644 --- a/en/docs/next/core/field-lineage.html +++ b/en/docs/next/core/field-lineage.html @@ -1,7 +1,7 @@ -Field Lineage | SqlParserX +Field Lineage | SqlParserX -
      Version: Next 🚧

      Field Lineage

      +
      Version: Next 🚧

      Field Lineage

      1. Add the Dependency​

      <dependency>
      <groupId>com.dtstack</groupId>
      <artifactId>sqlparserx-core</artifactId>
      <version>1.0-SNAPSHOT</version>
      </dependency>
      @@ -19,4 +19,4 @@

      3. Goal4. Entry & Implementation​

      ItemContent
      Core entryISqlParser.parseColumnLineages(sql, tableColumnsMap)
      Default implBaseSqlParser.parseColumnLineages → ColumnLineageClient
      Return typeColumnLineageResult (getColumnRelations() + getColumnLineages())
      ApplicableSQLInsertStatement, SQLCreateTableStatement (AS SELECT)
      Metadata inputMap<String, List<Column>> tableColumnsMap

      5. Supported Scenarios​

      -
      CapabilityStatusNotes
      catalog.db.table.columnSupported ✅Multi-catalog scenarios such as Hive/Trino/StarRocks
      db.table.columnSupported ✅Standard MySQL/PostgreSQL usage
      Column expressions (SQLBinaryOpExpr)Supported ✅e.g. t5.level + 1, recursively collect columns
      * / xx.* expansionSupported ✅Read from metadata tableColumnsMap; keep * without metadata
      \ No newline at end of file +
      CapabilityStatusNotes
      catalog.db.table.columnSupported ✅Multi-catalog scenarios such as Hive/Trino/StarRocks
      db.table.columnSupported ✅Standard MySQL/PostgreSQL usage
      Column expressions (SQLBinaryOpExpr)Supported ✅e.g. t5.level + 1, recursively collect columns
      * / xx.* expansionSupported ✅Read from metadata tableColumnsMap; keep * without metadata
      \ No newline at end of file diff --git a/en/docs/next/core/function-parse.html b/en/docs/next/core/function-parse.html index d665816..a73df86 100644 --- a/en/docs/next/core/function-parse.html +++ b/en/docs/next/core/function-parse.html @@ -1,7 +1,7 @@ -Function Parsing | SqlParserX +Function Parsing | SqlParserX -
      Version: Next 🚧

      Function Parsing

      +
      Version: Next 🚧

      Function Parsing

      1. Add the Dependency​

      <dependency>
      <groupId>com.dtstack</groupId>
      <artifactId>sqlparserx-core</artifactId>
      <version>1.0-SNAPSHOT</version>
      </dependency>
      @@ -18,4 +18,4 @@

      3. Goal4. Entry & Implementation​

      ItemContent
      Core entryISqlParser.parseFunction(sql)
      Default implBaseSqlParser.parseFunction
      Return typeSet<String> (function names, lower-cased)
      Coveragebuilt-in, aggregate, window, custom functions

      5. Supported Scenarios​

      -
      CapabilityStatusNotes
      Regular function callsSupported ✅e.g. substr(name, 1, 3)
      Aggregate functionsSupported ✅e.g. sum, count, max
      Window functionsSupported ✅e.g. row_number() over(...)
      Nested functionsSupported ✅Recursively collect inner and outer functions
      \ No newline at end of file +
      CapabilityStatusNotes
      Regular function callsSupported ✅e.g. substr(name, 1, 3)
      Aggregate functionsSupported ✅e.g. sum, count, max
      Window functionsSupported ✅e.g. row_number() over(...)
      Nested functionsSupported ✅Recursively collect inner and outer functions
      \ No newline at end of file diff --git a/en/docs/next/core/parameter-compile.html b/en/docs/next/core/parameter-compile.html new file mode 100644 index 0000000..114bed4 --- /dev/null +++ b/en/docs/next/core/parameter-compile.html @@ -0,0 +1,8 @@ +Parameter Extraction and Prepared SQL | SqlParserX + + +
      Version: Next 🚧

      Parameter Extraction and Prepared SQL

      +

      SqlParserX extracts ${variable} expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ? placeholders and an ordered binding list.

      +
      ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);
      String sql = "SELECT id, name FROM users "
      + "WHERE dt = '${bizdate}' AND region = '${region}'";

      ParseParameterResult parsed = parser.parseParameterSql(
      sql, false, Collections.emptyMap());

      Map<String, Object> values = new HashMap<>();
      values.put("bizdate", "20261014");
      values.put("region", "hangzhou");

      PrepareCompileResult compiled = parser.buildSqlByPrepareCompile(
      sql, values, Collections.emptyMap());
      System.out.println(compiled.getBeautifulSql());
      System.out.println(compiled.getInputFields());
      +
      SELECT id, name FROM users WHERE dt = ? AND region = ?
      [20261014, hangzhou]
      +

      The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined.

      \ No newline at end of file diff --git a/en/docs/next/core/sql-type.html b/en/docs/next/core/sql-type.html new file mode 100644 index 0000000..4bd74a9 --- /dev/null +++ b/en/docs/next/core/sql-type.html @@ -0,0 +1,7 @@ +SQL Type Detection | SqlParserX + + +
      Version: Next 🚧

      SQL Type Detection

      +

      parseSqlType parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified SqlType. It can drive statement routing, audit classification, and execution policies.

      +
      ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);

      SqlType queryType = parser.parseSqlType("SELECT id FROM users");
      SqlType insertType = parser.parseSqlType(
      "INSERT INTO target_table SELECT id FROM source_table");

      System.out.println(queryType); // QUERY
      System.out.println(insertType); // INSERT
      +

      The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns OTHER; syntax support still depends on the selected dialect.

      \ No newline at end of file diff --git a/en/docs/next/core/table-lineage.html b/en/docs/next/core/table-lineage.html index 027f152..71408cf 100644 --- a/en/docs/next/core/table-lineage.html +++ b/en/docs/next/core/table-lineage.html @@ -1,7 +1,7 @@ -Table Lineage | SqlParserX +Table Lineage | SqlParserX -
      Version: Next 🚧

      Table Lineage

      +
      Version: Next 🚧

      Table Lineage

      1. Add the Dependency​

      <dependency>
      <groupId>com.dtstack</groupId>
      <artifactId>sqlparserx-core</artifactId>
      <version>1.0-SNAPSHOT</version>
      </dependency>
      diff --git a/en/docs/next/core/table-parse.html b/en/docs/next/core/table-parse.html index 9a22745..534f93b 100644 --- a/en/docs/next/core/table-parse.html +++ b/en/docs/next/core/table-parse.html @@ -1,7 +1,7 @@ -Table Parsing | SqlParserX +Table Parsing | SqlParserX -
      Version: Next 🚧

      Table Parsing

      +
      Version: Next 🚧

      Table Parsing

      1. Add the Dependency​

      <dependency>
      <groupId>com.dtstack</groupId>
      <artifactId>sqlparserx-core</artifactId>
      <version>1.0-SNAPSHOT</version>
      </dependency>
      diff --git a/en/docs/next/intro.html b/en/docs/next/intro.html index cc92eee..20d1188 100644 --- a/en/docs/next/intro.html +++ b/en/docs/next/intro.html @@ -1,8 +1,8 @@ -SqlParserX Docs | SqlParserX +SqlParserX Docs | SqlParserX -
      Version: Next 🚧

      Welcome to SqlParserX

      -

      SqlParserX is a multi-dialect SQL parsing engine and toolkit for table/DDL parsing, table and column lineage, function extraction, SQL splitting and row-level permission rewriting.

      +
      Version: Next 🚧

      Welcome to SqlParserX

      +

      SqlParserX is a multi-dialect SQL parsing engine and toolkit for SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation.

      It is built around two layers: sqlparserx-syntax parses SQL into Druid ASTs and owns syntax extensions; sqlparserx-core consumes those ASTs through the unified ISqlParser contract and produces business parsing results. sqlparserx-web and sqlparserx-ui provide service and visualization access.

      Get Started​

        @@ -14,7 +14,7 @@

        Documentat
        • About SqlParserX: project introduction and two-layer architecture
        • Quick Start: environment setup, build and run
        • -
        • Core Parsing Capabilities: field lineage, table lineage, table parsing, function parsing
        • +
        • Core Parsing Capabilities: SQL type detection, field lineage, table lineage, table parsing, function extraction, and parameter extraction
        • Contributing: how to contribute

        :::tip Tip diff --git a/en/docs/next/quickstart/setup.html b/en/docs/next/quickstart/setup.html index 4351e98..24dea2a 100644 --- a/en/docs/next/quickstart/setup.html +++ b/en/docs/next/quickstart/setup.html @@ -1,7 +1,7 @@ -Quick Start | SqlParserX +Quick Start | SqlParserX -

        Version: Next 🚧

        Quick Start

        +
        Version: Next 🚧

        Quick Start

        1. Requirements​

        DependencyVersion
        JDKJava 8+
        Maven3.6+
        Node.js (only sqlparserx-ui)>= 20

        2. Add the Dependency​

        @@ -26,4 +26,4 @@

        4. Next StepsTable lineage
      • Table parsing
      • Function parsing
      • -

      \ No newline at end of file +

    \ No newline at end of file diff --git a/en/docs/quickstart/setup.html b/en/docs/quickstart/setup.html index a16177f..a558cbd 100644 --- a/en/docs/quickstart/setup.html +++ b/en/docs/quickstart/setup.html @@ -1,7 +1,7 @@ -Quick Start | SqlParserX +Quick Start | SqlParserX -
    Version: Next 🚧

    Quick Start

    + \ No newline at end of file +
    \ No newline at end of file diff --git a/en/img/banner.png b/en/img/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..d96dde4089050ae8e08a1292b51e57cf53eed945 GIT binary patch literal 28098 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 Jh?DX^{a=UtImQ40 literal 0 HcmV?d00001 diff --git a/en/img/logo.png b/en/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8aff718b080029cbe25770f9f00135f9290acb8a GIT binary patch literal 54962 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 literal 0 HcmV?d00001 diff --git a/en/index.html b/en/index.html index f0ea2a0..5dfaae2 100644 --- a/en/index.html +++ b/en/index.html @@ -1,4 +1,4 @@ -SqlParserX +SqlParserX - \ No newline at end of file +
    Java 8 · Druid 1.2.28 · 15+ dialects

    SqlParserX

    A multi-dialect SQL parsing engine and toolkit

    SQL type detection · Table & column lineage · Table/DDL parsing · Function extraction · Parameter extraction and prepared SQL

    • 15Datasource dialects
    • 6Core capabilities
    • 2Unified layers
    • 100%Java 8 compatible
    LineagePreview
    SQL Input
    INSERT INTO dwd.order_di
    SELECT o.id, u.name, o.amount
    FROM ods.orders o
    JOIN ods.users u ON o.uid = u.id;
    Parse Result
    ✓Table lineageods.orders → dwd.order_di
    ✓表血缘ods.users → dwd.order_di
    ✓Field lineageods.orders.amount → dwd.order_di.amount

    15+ datasource dialects supported

    MySQL
    Hive
    Doris
    StarRocks
    ClickHouse
    Oracle
    PostgreSQL
    Spark
    Trino
    DM
    OceanBase
    OceanBase Oracle
    SQL Server
    Greenplum
    TiDB
    Capabilities

    One engine for the full SQL parsing pipeline

    From dialect syntax to business semantics — unified contract, unified result, ready to use.

    SQL type detection

    Detect query, DML, DDL, SHOW and EXPLAIN statement types.

    Table & DDL parsing

    Resolve real tables through JOINs, CTEs and subqueries, then parse fields, keys, partitions and buckets.

    Table lineage

    Trace data flow from source tables to targets in INSERT and CTAS statements.

    Column lineage

    Map source columns to targets across expressions, functions and CASE clauses.

    Function parsing

    Extract and deduplicate regular, aggregate and window function names across multiple statements.

    Parameter extraction & prepared SQL

    Extract dynamic SELECT parameters and produce JDBC placeholder SQL with ordered bindings.

    Architecture

    Two-layer unified extension architecture

    The syntax layer extends dialect Lexer/Parser/AST on Druid; the business layer extends parsing, lineage and rewriting via the ISqlParser contract, aligned by DbType and AST.

    1. 1Feed SQL + DbType
    2. 2Syntax layer parses into Druid AST
    3. 3Business layer unified parsing
    4. 4Table / lineage / function / parameter results
    SqlParserX 两层架构
    Documentation

    Version / i18n coexistence

    Switch version (1.0 / Next) and language (简体中文 / English) from the navbar.

    version

    Ready to parse your SQL?

    Get started in minutes with multi-dialect parsing, lineage tracing and prepared SQL.

    \ No newline at end of file diff --git a/en/sitemap.xml b/en/sitemap.xml index 6fab046..40b8ebd 100644 --- a/en/sitemap.xml +++ b/en/sitemap.xml @@ -1 +1 @@ -https://dtstack.github.io/SqlParserX/en/blogweekly0.5https://dtstack.github.io/SqlParserX/en/blog/archiveweekly0.5https://dtstack.github.io/SqlParserX/en/blog/authorsweekly0.5https://dtstack.github.io/SqlParserX/en/blog/authors/changluweekly0.5https://dtstack.github.io/SqlParserX/en/blog/origin-of-sqlparserxweekly0.5https://dtstack.github.io/SqlParserX/en/blog/tagsweekly0.5https://dtstack.github.io/SqlParserX/en/blog/tags/originweekly0.5https://dtstack.github.io/SqlParserX/en/communityweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/about/architectureweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/about/introductionweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/contributingweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/field-lineageweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/function-parseweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/table-lineageweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/table-parseweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/introweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/quickstart/setupweekly0.5https://dtstack.github.io/SqlParserX/en/docs/about/architectureweekly0.5https://dtstack.github.io/SqlParserX/en/docs/about/introductionweekly0.5https://dtstack.github.io/SqlParserX/en/docs/contributingweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/field-lineageweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/function-parseweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/table-lineageweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/table-parseweekly0.5https://dtstack.github.io/SqlParserX/en/docs/introweekly0.5https://dtstack.github.io/SqlParserX/en/docs/quickstart/setupweekly0.5https://dtstack.github.io/SqlParserX/en/weekly0.5 \ No newline at end of file +https://dtstack.github.io/SqlParserX/en/blogweekly0.5https://dtstack.github.io/SqlParserX/en/blog/archiveweekly0.5https://dtstack.github.io/SqlParserX/en/blog/authorsweekly0.5https://dtstack.github.io/SqlParserX/en/blog/authors/changluweekly0.5https://dtstack.github.io/SqlParserX/en/blog/origin-of-sqlparserxweekly0.5https://dtstack.github.io/SqlParserX/en/blog/tagsweekly0.5https://dtstack.github.io/SqlParserX/en/blog/tags/originweekly0.5https://dtstack.github.io/SqlParserX/en/communityweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/about/architectureweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/about/introductionweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/contributingweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/field-lineageweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/function-parseweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/parameter-compileweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/sql-typeweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/table-lineageweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/core/table-parseweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/introweekly0.5https://dtstack.github.io/SqlParserX/en/docs/next/quickstart/setupweekly0.5https://dtstack.github.io/SqlParserX/en/docs/about/architectureweekly0.5https://dtstack.github.io/SqlParserX/en/docs/about/introductionweekly0.5https://dtstack.github.io/SqlParserX/en/docs/contributingweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/field-lineageweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/function-parseweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/parameter-compileweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/sql-typeweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/table-lineageweekly0.5https://dtstack.github.io/SqlParserX/en/docs/core/table-parseweekly0.5https://dtstack.github.io/SqlParserX/en/docs/introweekly0.5https://dtstack.github.io/SqlParserX/en/docs/quickstart/setupweekly0.5https://dtstack.github.io/SqlParserX/en/weekly0.5 \ No newline at end of file diff --git a/img/banner.png b/img/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..d96dde4089050ae8e08a1292b51e57cf53eed945 GIT binary patch literal 28098 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 Jh?DX^{a=UtImQ40 literal 0 HcmV?d00001 diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8aff718b080029cbe25770f9f00135f9290acb8a GIT binary patch literal 54962 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 0158938..8101853 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -SqlParserX +SqlParserX - \ No newline at end of file +
    Java 8 · Druid 1.2.28 · 15+ 方言

    SqlParserX

    多方言 SQL 解析引擎与工具包

    SQL 类型识别 · 表与字段血缘 · 表/DDL 解析 · 函数提取 · 参数提取与预编译

    • 15数据源方言
    • 6核心解析能力
    • 2层统一架构
    • 100%Java 8 兼容
    LineagePreview
    SQL 输入
    INSERT INTO dwd.order_di
    SELECT o.id, u.name, o.amount
    FROM ods.orders o
    JOIN ods.users u ON o.uid = u.id;
    解析结果
    ✓表血缘ods.orders → dwd.order_di
    ✓表血缘ods.users → dwd.order_di
    ✓字段血缘ods.orders.amount → dwd.order_di.amount

    已适配 15+ 数据源方言

    MySQL
    Hive
    Doris
    StarRocks
    ClickHouse
    Oracle
    PostgreSQL
    Spark
    Trino
    DM
    OceanBase
    OceanBase Oracle
    SQL Server
    Greenplum
    TiDB
    核心能力

    一个引擎,覆盖 SQL 解析全链路

    从方言语法到业务语义,统一契约、统一结果,开箱即用。

    SQL 类型识别

    识别查询、写入、建表、SHOW 与 EXPLAIN 等语句类型。

    真实表与建表结构

    穿透 JOIN、CTE 与子查询,解析字段、键、分区及分桶结构。

    表级血缘

    从 INSERT 与 CTAS 追溯来源表到目标表的数据流转关系。

    字段级血缘

    分析表达式、函数与 CASE 中来源字段到目标字段的映射。

    函数名提取

    提取普通、聚合与窗口函数名称,支持多语句解析与去重。

    参数提取与预编译

    提取 SELECT 动态参数,生成 JDBC 占位符 SQL 与有序绑定值。

    架构设计

    两层统一扩展架构

    语法层基于 Druid 扩展方言 Lexer / Parser / AST,业务层通过 ISqlParser 契约扩展表解析、血缘与改写逻辑,两层由 DbType 与 AST 对齐。

    1. 1接入 SQL + DbType
    2. 2语法层解析为 Druid AST
    3. 3业务层统一解析
    4. 4表 / 血缘 / 函数 / 参数解析结果
    SqlParserX 两层架构
    文档站

    版本 / 多语言共存

    右侧导航栏即可切换版本(1.0 / Next)与语言(简体中文 / English),互不干扰。

    version

    准备好开始解析你的 SQL 了吗?

    几分钟完成接入,体验多方言解析、血缘追溯与参数预编译能力。

    \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 8b6e912..5cb13b2 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://dtstack.github.io/SqlParserX/blogweekly0.5https://dtstack.github.io/SqlParserX/blog/archiveweekly0.5https://dtstack.github.io/SqlParserX/blog/authorsweekly0.5https://dtstack.github.io/SqlParserX/blog/authors/changluweekly0.5https://dtstack.github.io/SqlParserX/blog/origin-of-sqlparserxweekly0.5https://dtstack.github.io/SqlParserX/blog/tagsweekly0.5https://dtstack.github.io/SqlParserX/blog/tags/originweekly0.5https://dtstack.github.io/SqlParserX/communityweekly0.5https://dtstack.github.io/SqlParserX/docs/next/about/architectureweekly0.5https://dtstack.github.io/SqlParserX/docs/next/about/introductionweekly0.5https://dtstack.github.io/SqlParserX/docs/next/contributingweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/field-lineageweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/function-parseweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/table-lineageweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/table-parseweekly0.5https://dtstack.github.io/SqlParserX/docs/next/introweekly0.5https://dtstack.github.io/SqlParserX/docs/next/quickstart/setupweekly0.5https://dtstack.github.io/SqlParserX/docs/about/architectureweekly0.5https://dtstack.github.io/SqlParserX/docs/about/introductionweekly0.5https://dtstack.github.io/SqlParserX/docs/contributingweekly0.5https://dtstack.github.io/SqlParserX/docs/core/field-lineageweekly0.5https://dtstack.github.io/SqlParserX/docs/core/function-parseweekly0.5https://dtstack.github.io/SqlParserX/docs/core/table-lineageweekly0.5https://dtstack.github.io/SqlParserX/docs/core/table-parseweekly0.5https://dtstack.github.io/SqlParserX/docs/introweekly0.5https://dtstack.github.io/SqlParserX/docs/quickstart/setupweekly0.5https://dtstack.github.io/SqlParserX/weekly0.5 \ No newline at end of file +https://dtstack.github.io/SqlParserX/blogweekly0.5https://dtstack.github.io/SqlParserX/blog/archiveweekly0.5https://dtstack.github.io/SqlParserX/blog/authorsweekly0.5https://dtstack.github.io/SqlParserX/blog/authors/changluweekly0.5https://dtstack.github.io/SqlParserX/blog/origin-of-sqlparserxweekly0.5https://dtstack.github.io/SqlParserX/blog/tagsweekly0.5https://dtstack.github.io/SqlParserX/blog/tags/originweekly0.5https://dtstack.github.io/SqlParserX/communityweekly0.5https://dtstack.github.io/SqlParserX/docs/next/about/architectureweekly0.5https://dtstack.github.io/SqlParserX/docs/next/about/introductionweekly0.5https://dtstack.github.io/SqlParserX/docs/next/contributingweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/field-lineageweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/function-parseweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/parameter-compileweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/sql-typeweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/table-lineageweekly0.5https://dtstack.github.io/SqlParserX/docs/next/core/table-parseweekly0.5https://dtstack.github.io/SqlParserX/docs/next/introweekly0.5https://dtstack.github.io/SqlParserX/docs/next/quickstart/setupweekly0.5https://dtstack.github.io/SqlParserX/docs/about/architectureweekly0.5https://dtstack.github.io/SqlParserX/docs/about/introductionweekly0.5https://dtstack.github.io/SqlParserX/docs/contributingweekly0.5https://dtstack.github.io/SqlParserX/docs/core/field-lineageweekly0.5https://dtstack.github.io/SqlParserX/docs/core/function-parseweekly0.5https://dtstack.github.io/SqlParserX/docs/core/parameter-compileweekly0.5https://dtstack.github.io/SqlParserX/docs/core/sql-typeweekly0.5https://dtstack.github.io/SqlParserX/docs/core/table-lineageweekly0.5https://dtstack.github.io/SqlParserX/docs/core/table-parseweekly0.5https://dtstack.github.io/SqlParserX/docs/introweekly0.5https://dtstack.github.io/SqlParserX/docs/quickstart/setupweekly0.5https://dtstack.github.io/SqlParserX/weekly0.5 \ No newline at end of file From 16a8b476eea514f792addef006a2ce8b64119809 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 08:28:55 +0000 Subject: [PATCH 3/3] deploy: d5605f37076720b28d4e4e4de4445c3e40c68566 --- 404.html | 2 +- assets/js/0e384e19.58d81394.js | 1 + assets/js/0e384e19.8f3f4a72.js | 1 - assets/js/1f1ca1a6.9a2d65d7.js | 1 - assets/js/1f1ca1a6.cf742e62.js | 1 + assets/js/1f362aa0.9247c25c.js | 1 + assets/js/1f362aa0.f648ace8.js | 1 - assets/js/1f434cef.30740b15.js | 1 - assets/js/1f434cef.90aca92f.js | 1 + assets/js/207a8b88.8040e10c.js | 1 - assets/js/207a8b88.b873bba7.js | 1 + assets/js/26f3b9ac.58e5a0a2.js | 1 - assets/js/26f3b9ac.6771eee5.js | 1 + assets/js/37f774df.88809e17.js | 1 + assets/js/37f774df.a36f3fde.js | 1 - assets/js/4277cc0d.0c7523d7.js | 1 - assets/js/4277cc0d.3e705d44.js | 1 + .../{4a65a190.8608128b.js => 4a65a190.37a16155.js} | 2 +- .../{4b0ae1c1.b207de64.js => 4b0ae1c1.d8b39644.js} | 2 +- assets/js/4d54d076.7e9344e4.js | 1 - assets/js/4d54d076.da3daff2.js | 1 + assets/js/51515e66.b5eae504.js | 1 - assets/js/51515e66.dde2f931.js | 1 + assets/js/6badde6a.c6a1d033.js | 1 - assets/js/6badde6a.ff0c6a4f.js | 1 + assets/js/78900b38.61168a60.js | 1 + assets/js/78900b38.9a9c1962.js | 1 - assets/js/7bd8db71.6e90e258.js | 1 + assets/js/7bd8db71.d4297dd4.js | 1 - assets/js/80dcd7a6.5bf1f6f4.js | 1 - assets/js/80dcd7a6.63daf50c.js | 1 + assets/js/925626eb.6fb277ac.js | 1 - assets/js/925626eb.8ec80d7f.js | 1 + assets/js/a110d8f6.2bc864a9.js | 1 - assets/js/a110d8f6.d73a88c4.js | 1 + assets/js/a9c167f1.2c2fe63e.js | 1 - assets/js/a9c167f1.a288f643.js | 1 + assets/js/ae60c7b8.5efb8e17.js | 1 - assets/js/ae60c7b8.f2159cf2.js | 1 + assets/js/af051bb0.a9139a80.js | 1 - assets/js/af051bb0.adcbbc72.js | 1 + assets/js/bf45ab0e.38f8f750.js | 1 + assets/js/bf45ab0e.4702a368.js | 1 - assets/js/dbbf4deb.9562b6f7.js | 1 - assets/js/dbbf4deb.bd47b7ef.js | 1 + assets/js/e0e79246.2dd3162a.js | 1 - assets/js/e0e79246.7c281c81.js | 1 + assets/js/efe00fe9.648f2287.js | 1 + assets/js/efe00fe9.a927140b.js | 1 - assets/js/{main.f02b2e66.js => main.a29faf1c.js} | 2 +- ...e~main.08ede973.js => runtime~main.88fc163a.js} | 2 +- blog.html | 2 +- blog/archive.html | 2 +- blog/atom.xml | 10 +++++----- blog/authors.html | 2 +- blog/authors/changlu.html | 2 +- blog/origin-of-sqlparserx.html | 14 +++++++------- blog/rss.xml | 10 +++++----- blog/tags.html | 2 +- blog/tags/origin.html | 2 +- community.html | 2 +- docs/about/architecture.html | 4 ++-- docs/about/introduction.html | 4 ++-- docs/contributing.html | 4 ++-- docs/core/field-lineage.html | 4 ++-- docs/core/function-parse.html | 4 ++-- docs/core/parameter-compile.html | 4 ++-- docs/core/sql-type.html | 4 ++-- docs/core/table-lineage.html | 4 ++-- docs/core/table-parse.html | 4 ++-- docs/intro.html | 4 ++-- docs/next/about/architecture.html | 4 ++-- docs/next/about/introduction.html | 4 ++-- docs/next/contributing.html | 4 ++-- docs/next/core/field-lineage.html | 4 ++-- docs/next/core/function-parse.html | 4 ++-- docs/next/core/parameter-compile.html | 4 ++-- docs/next/core/sql-type.html | 4 ++-- docs/next/core/table-lineage.html | 4 ++-- docs/next/core/table-parse.html | 4 ++-- docs/next/intro.html | 4 ++-- docs/next/quickstart/setup.html | 4 ++-- docs/quickstart/setup.html | 4 ++-- en/404.html | 2 +- en/assets/js/02854a60.34877af3.js | 1 - en/assets/js/02854a60.7f72547b.js | 1 + en/assets/js/1078a278.2d55bc20.js | 1 - en/assets/js/1078a278.d2a43e18.js | 1 + en/assets/js/1a0052a3.183e63f0.js | 1 - en/assets/js/1a0052a3.2e24b2ea.js | 1 + en/assets/js/1f5cb825.56402be9.js | 1 + en/assets/js/1f5cb825.cbb867bf.js | 1 - en/assets/js/2cb18a50.16e7a45e.js | 1 - en/assets/js/2cb18a50.881d2316.js | 1 + .../{4a65a190.c43c3324.js => 4a65a190.1b475153.js} | 2 +- en/assets/js/4b0ae1c1.8ac82777.js | 1 - en/assets/js/4b0ae1c1.9cebb942.js | 1 + en/assets/js/533336a0.1b9c14e6.js | 1 + en/assets/js/533336a0.2c9aa3e0.js | 1 - en/assets/js/5b44acae.22f632d6.js | 1 + en/assets/js/5b44acae.5f304454.js | 1 - en/assets/js/773100d1.d8d80707.js | 1 - en/assets/js/773100d1.f9c041bb.js | 1 + en/assets/js/7ba64a19.89e1fa40.js | 1 + en/assets/js/7ba64a19.c7666b43.js | 1 - en/assets/js/92d5f697.1b48d711.js | 1 - en/assets/js/92d5f697.8d513838.js | 1 + en/assets/js/9aae347e.2a52863b.js | 1 - en/assets/js/9aae347e.a020d1e5.js | 1 + en/assets/js/9c37e8a9.53558edc.js | 1 + en/assets/js/9c37e8a9.639e262d.js | 1 - en/assets/js/a16ef744.4468786b.js | 1 - en/assets/js/a16ef744.604b3864.js | 1 + en/assets/js/a84fc31f.1d7e9083.js | 1 - en/assets/js/a84fc31f.9913e20d.js | 1 + en/assets/js/ac311984.55eb5a96.js | 1 + en/assets/js/ac311984.eb22d05b.js | 1 - en/assets/js/ac4ff279.267aacc1.js | 1 + en/assets/js/ac4ff279.5ca528d4.js | 1 - en/assets/js/c61d1296.5cb6898e.js | 1 - en/assets/js/c61d1296.6ae31ced.js | 1 + en/assets/js/d611a6ba.4cd3e7d8.js | 1 + en/assets/js/d611a6ba.91ee51b6.js | 1 - en/assets/js/dae5e6b9.4ce7d350.js | 1 - en/assets/js/dae5e6b9.c9da5438.js | 1 + en/assets/js/e539d78b.ad039c37.js | 1 + en/assets/js/e539d78b.e0feac5b.js | 1 - en/assets/js/e65be245.ce1b26fe.js | 1 + en/assets/js/e65be245.f35e9887.js | 1 - en/assets/js/e9caf4bd.325d73b3.js | 1 + en/assets/js/e9caf4bd.6e761e5e.js | 1 - en/assets/js/f798a39c.0ace19ab.js | 1 + en/assets/js/f798a39c.3ca9474b.js | 1 - .../js/{main.6ef13e00.js => main.51440fbc.js} | 2 +- ...e~main.6a58fde0.js => runtime~main.b4181d59.js} | 2 +- en/blog.html | 2 +- en/blog/archive.html | 2 +- en/blog/atom.xml | 10 +++++----- en/blog/authors.html | 2 +- en/blog/authors/changlu.html | 2 +- en/blog/origin-of-sqlparserx.html | 14 +++++++------- en/blog/rss.xml | 10 +++++----- en/blog/tags.html | 2 +- en/blog/tags/origin.html | 2 +- en/community.html | 2 +- en/docs/about/architecture.html | 4 ++-- en/docs/about/introduction.html | 4 ++-- en/docs/contributing.html | 4 ++-- en/docs/core/field-lineage.html | 4 ++-- en/docs/core/function-parse.html | 4 ++-- en/docs/core/parameter-compile.html | 4 ++-- en/docs/core/sql-type.html | 4 ++-- en/docs/core/table-lineage.html | 4 ++-- en/docs/core/table-parse.html | 4 ++-- en/docs/intro.html | 4 ++-- en/docs/next/about/architecture.html | 4 ++-- en/docs/next/about/introduction.html | 4 ++-- en/docs/next/contributing.html | 4 ++-- en/docs/next/core/field-lineage.html | 4 ++-- en/docs/next/core/function-parse.html | 4 ++-- en/docs/next/core/parameter-compile.html | 4 ++-- en/docs/next/core/sql-type.html | 4 ++-- en/docs/next/core/table-lineage.html | 4 ++-- en/docs/next/core/table-parse.html | 4 ++-- en/docs/next/intro.html | 4 ++-- en/docs/next/quickstart/setup.html | 4 ++-- en/docs/quickstart/setup.html | 4 ++-- en/index.html | 2 +- index.html | 2 +- 169 files changed, 194 insertions(+), 194 deletions(-) create mode 100644 assets/js/0e384e19.58d81394.js delete mode 100644 assets/js/0e384e19.8f3f4a72.js delete mode 100644 assets/js/1f1ca1a6.9a2d65d7.js create mode 100644 assets/js/1f1ca1a6.cf742e62.js create mode 100644 assets/js/1f362aa0.9247c25c.js delete mode 100644 assets/js/1f362aa0.f648ace8.js delete mode 100644 assets/js/1f434cef.30740b15.js create mode 100644 assets/js/1f434cef.90aca92f.js delete mode 100644 assets/js/207a8b88.8040e10c.js create mode 100644 assets/js/207a8b88.b873bba7.js delete mode 100644 assets/js/26f3b9ac.58e5a0a2.js create mode 100644 assets/js/26f3b9ac.6771eee5.js create mode 100644 assets/js/37f774df.88809e17.js delete mode 100644 assets/js/37f774df.a36f3fde.js delete mode 100644 assets/js/4277cc0d.0c7523d7.js create mode 100644 assets/js/4277cc0d.3e705d44.js rename assets/js/{4a65a190.8608128b.js => 4a65a190.37a16155.js} (83%) rename assets/js/{4b0ae1c1.b207de64.js => 4b0ae1c1.d8b39644.js} (52%) delete mode 100644 assets/js/4d54d076.7e9344e4.js create mode 100644 assets/js/4d54d076.da3daff2.js delete mode 100644 assets/js/51515e66.b5eae504.js create mode 100644 assets/js/51515e66.dde2f931.js delete mode 100644 assets/js/6badde6a.c6a1d033.js create mode 100644 assets/js/6badde6a.ff0c6a4f.js create mode 100644 assets/js/78900b38.61168a60.js delete mode 100644 assets/js/78900b38.9a9c1962.js create mode 100644 assets/js/7bd8db71.6e90e258.js delete mode 100644 assets/js/7bd8db71.d4297dd4.js delete mode 100644 assets/js/80dcd7a6.5bf1f6f4.js create mode 100644 assets/js/80dcd7a6.63daf50c.js delete mode 100644 assets/js/925626eb.6fb277ac.js create mode 100644 assets/js/925626eb.8ec80d7f.js delete mode 100644 assets/js/a110d8f6.2bc864a9.js create mode 100644 assets/js/a110d8f6.d73a88c4.js delete mode 100644 assets/js/a9c167f1.2c2fe63e.js create mode 100644 assets/js/a9c167f1.a288f643.js delete mode 100644 assets/js/ae60c7b8.5efb8e17.js create mode 100644 assets/js/ae60c7b8.f2159cf2.js delete mode 100644 assets/js/af051bb0.a9139a80.js create mode 100644 assets/js/af051bb0.adcbbc72.js create mode 100644 assets/js/bf45ab0e.38f8f750.js delete mode 100644 assets/js/bf45ab0e.4702a368.js delete mode 100644 assets/js/dbbf4deb.9562b6f7.js create mode 100644 assets/js/dbbf4deb.bd47b7ef.js delete mode 100644 assets/js/e0e79246.2dd3162a.js create mode 100644 assets/js/e0e79246.7c281c81.js create mode 100644 assets/js/efe00fe9.648f2287.js delete mode 100644 assets/js/efe00fe9.a927140b.js rename assets/js/{main.f02b2e66.js => main.a29faf1c.js} (77%) rename assets/js/{runtime~main.08ede973.js => runtime~main.88fc163a.js} (51%) delete mode 100644 en/assets/js/02854a60.34877af3.js create mode 100644 en/assets/js/02854a60.7f72547b.js delete mode 100644 en/assets/js/1078a278.2d55bc20.js create mode 100644 en/assets/js/1078a278.d2a43e18.js delete mode 100644 en/assets/js/1a0052a3.183e63f0.js create mode 100644 en/assets/js/1a0052a3.2e24b2ea.js create mode 100644 en/assets/js/1f5cb825.56402be9.js delete mode 100644 en/assets/js/1f5cb825.cbb867bf.js delete mode 100644 en/assets/js/2cb18a50.16e7a45e.js create mode 100644 en/assets/js/2cb18a50.881d2316.js rename en/assets/js/{4a65a190.c43c3324.js => 4a65a190.1b475153.js} (83%) delete mode 100644 en/assets/js/4b0ae1c1.8ac82777.js create mode 100644 en/assets/js/4b0ae1c1.9cebb942.js create mode 100644 en/assets/js/533336a0.1b9c14e6.js delete mode 100644 en/assets/js/533336a0.2c9aa3e0.js create mode 100644 en/assets/js/5b44acae.22f632d6.js delete mode 100644 en/assets/js/5b44acae.5f304454.js delete mode 100644 en/assets/js/773100d1.d8d80707.js create mode 100644 en/assets/js/773100d1.f9c041bb.js create mode 100644 en/assets/js/7ba64a19.89e1fa40.js delete mode 100644 en/assets/js/7ba64a19.c7666b43.js delete mode 100644 en/assets/js/92d5f697.1b48d711.js create mode 100644 en/assets/js/92d5f697.8d513838.js delete mode 100644 en/assets/js/9aae347e.2a52863b.js create mode 100644 en/assets/js/9aae347e.a020d1e5.js create mode 100644 en/assets/js/9c37e8a9.53558edc.js delete mode 100644 en/assets/js/9c37e8a9.639e262d.js delete mode 100644 en/assets/js/a16ef744.4468786b.js create mode 100644 en/assets/js/a16ef744.604b3864.js delete mode 100644 en/assets/js/a84fc31f.1d7e9083.js create mode 100644 en/assets/js/a84fc31f.9913e20d.js create mode 100644 en/assets/js/ac311984.55eb5a96.js delete mode 100644 en/assets/js/ac311984.eb22d05b.js create mode 100644 en/assets/js/ac4ff279.267aacc1.js delete mode 100644 en/assets/js/ac4ff279.5ca528d4.js delete mode 100644 en/assets/js/c61d1296.5cb6898e.js create mode 100644 en/assets/js/c61d1296.6ae31ced.js create mode 100644 en/assets/js/d611a6ba.4cd3e7d8.js delete mode 100644 en/assets/js/d611a6ba.91ee51b6.js delete mode 100644 en/assets/js/dae5e6b9.4ce7d350.js create mode 100644 en/assets/js/dae5e6b9.c9da5438.js create mode 100644 en/assets/js/e539d78b.ad039c37.js delete mode 100644 en/assets/js/e539d78b.e0feac5b.js create mode 100644 en/assets/js/e65be245.ce1b26fe.js delete mode 100644 en/assets/js/e65be245.f35e9887.js create mode 100644 en/assets/js/e9caf4bd.325d73b3.js delete mode 100644 en/assets/js/e9caf4bd.6e761e5e.js create mode 100644 en/assets/js/f798a39c.0ace19ab.js delete mode 100644 en/assets/js/f798a39c.3ca9474b.js rename en/assets/js/{main.6ef13e00.js => main.51440fbc.js} (77%) rename en/assets/js/{runtime~main.6a58fde0.js => runtime~main.b4181d59.js} (82%) diff --git a/404.html b/404.html index aae6a9d..dd92e75 100644 --- a/404.html +++ b/404.html @@ -1,4 +1,4 @@ -找不到页面 | SqlParserX +找不到页面 | SqlParserX

    找不到页面

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

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

    \ No newline at end of file diff --git a/assets/js/0e384e19.58d81394.js b/assets/js/0e384e19.58d81394.js new file mode 100644 index 0000000..96c8ac5 --- /dev/null +++ b/assets/js/0e384e19.58d81394.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5217"],{4316(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>i,contentTitle:()=>c,toc:()=>o,assets:()=>d});var n=JSON.parse('{"id":"intro","title":"SqlParserX \u6587\u6863","description":"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3","source":"@site/docs/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/docs/next/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/intro.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SqlParserX \u6587\u6863","description":"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3","slug":"/intro","sidebar_label":"\u6587\u6863\u5BFC\u8BFB","sidebar_position":1},"sidebar":"docs","next":{"title":"SqlParserX\u4ECB\u7ECD","permalink":"/SqlParserX/docs/next/about/introduction"}}'),t=s(4848),l=s(8453);let i={title:"SqlParserX \u6587\u6863",description:"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3",slug:"/intro",sidebar_label:"\u6587\u6863\u5BFC\u8BFB",sidebar_position:1},c="\u6B22\u8FCE\u4F7F\u7528 SqlParserX",d={},o=[{value:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",id:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",level:2},{value:"\u6587\u6863\u7ED3\u6784",id:"\u6587\u6863\u7ED3\u6784",level:2}];function a(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u6B22\u8FCE\u4F7F\u7528-sqlparserx",children:"\u6B22\u8FCE\u4F7F\u7528 SqlParserX"})}),"\n",(0,t.jsxs)(r.p,{children:["SqlParserX \u662F\u4E00\u4E2A",(0,t.jsx)(r.strong,{children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"}),"\uFF0C\u9762\u5411 SQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868/DDL \u89E3\u6790\u3001\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u63D0\u53D6\u4EE5\u53CA\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1\u7B49\u573A\u666F\u3002"]}),"\n",(0,t.jsxs)(r.p,{children:["\u9879\u76EE\u91C7\u7528\u4E24\u5C42\u67B6\u6784\uFF1A",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u8D1F\u8D23\u628A SQL \u89E3\u6790\u4E3A Druid AST \u5E76\u627F\u8F7D\u8BED\u6CD5\u6269\u5C55\uFF1B",(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u901A\u8FC7\u7EDF\u4E00\u7684 ",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u5951\u7EA6\u6D88\u8D39 AST\uFF0C\u4EA7\u51FA\u4E1A\u52A1\u89E3\u6790\u7ED3\u679C\u3002",(0,t.jsx)(r.code,{children:"sqlparserx-web"})," \u4E0E ",(0,t.jsx)(r.code,{children:"sqlparserx-ui"})," \u63D0\u4F9B\u670D\u52A1\u5316\u4E0E\u53EF\u89C6\u5316\u8BBF\u95EE\u80FD\u529B\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",children:"\u4ECE\u8FD9\u91CC\u5F00\u59CB"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["\u{1F680} ",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/quickstart/setup",children:"\u5FEB\u901F\u5F00\u59CB"})]}),"\n",(0,t.jsxs)(r.li,{children:["\u{1F4D6} ",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/about/introduction",children:"SqlParserX \u4ECB\u7ECD"})]}),"\n",(0,t.jsxs)(r.li,{children:["\u{1F3D7}\uFE0F ",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"})]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"\u6587\u6863\u7ED3\u6784",children:"\u6587\u6863\u7ED3\u6784"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"\u5173\u4E8E SqlParserX"}),"\uFF1A\u9879\u76EE\u4ECB\u7ECD\u4E0E\u4E24\u5C42\u67B6\u6784\u8BBE\u8BA1"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"\u5FEB\u901F\u5F00\u59CB"}),"\uFF1A\u73AF\u5883\u51C6\u5907\u3001\u6784\u5EFA\u4E0E\u8FD0\u884C"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528"}),"\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001\u51FD\u6570\u89E3\u6790\u3001\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"\u8D21\u732E\u6307\u5357"}),"\uFF1A\u53C2\u4E0E\u8D21\u732E\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303"]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:[":::tip \u63D0\u793A\n\u672C\u7AD9\u53F3\u4FA7\u5BFC\u822A\u680F\u53EF\u5207\u6362",(0,t.jsx)(r.strong,{children:"\u7248\u672C"}),"\uFF08",(0,t.jsx)(r.code,{children:"1.0"})," / ",(0,t.jsx)(r.code,{children:"Next"}),"\uFF09\u4E0E",(0,t.jsx)(r.strong,{children:"\u8BED\u8A00"}),"\uFF08\u7B80\u4F53\u4E2D\u6587 / English\uFF09\u3002\n:::"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},8453(e,r,s){s.d(r,{R:()=>i,x:()=>c});var n=s(6540);let t={},l=n.createContext(t);function i(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.8f3f4a72.js b/assets/js/0e384e19.8f3f4a72.js deleted file mode 100644 index 6afd0f5..0000000 --- a/assets/js/0e384e19.8f3f4a72.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5217"],{4316(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>i,contentTitle:()=>c,toc:()=>o,assets:()=>d});var n=JSON.parse('{"id":"intro","title":"SqlParserX \u6587\u6863","description":"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3","source":"@site/docs/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/docs/next/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/intro.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SqlParserX \u6587\u6863","description":"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3","slug":"/intro","sidebar_label":"\u6587\u6863\u5BFC\u8BFB","sidebar_position":1},"sidebar":"docs","next":{"title":"SqlParserX\u4ECB\u7ECD","permalink":"/SqlParserX/docs/next/about/introduction"}}'),t=s(4848),l=s(8453);let i={title:"SqlParserX \u6587\u6863",description:"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3",slug:"/intro",sidebar_label:"\u6587\u6863\u5BFC\u8BFB",sidebar_position:1},c="\u6B22\u8FCE\u4F7F\u7528 SqlParserX",d={},o=[{value:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",id:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",level:2},{value:"\u6587\u6863\u7ED3\u6784",id:"\u6587\u6863\u7ED3\u6784",level:2}];function a(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u6B22\u8FCE\u4F7F\u7528-sqlparserx",children:"\u6B22\u8FCE\u4F7F\u7528 SqlParserX"})}),"\n",(0,t.jsxs)(r.p,{children:["SqlParserX \u662F\u4E00\u4E2A",(0,t.jsx)(r.strong,{children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"}),"\uFF0C\u9762\u5411 SQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868/DDL \u89E3\u6790\u3001\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u63D0\u53D6\u4EE5\u53CA\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1\u7B49\u573A\u666F\u3002"]}),"\n",(0,t.jsxs)(r.p,{children:["\u9879\u76EE\u91C7\u7528\u4E24\u5C42\u67B6\u6784\uFF1A",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u8D1F\u8D23\u628A SQL \u89E3\u6790\u4E3A Druid AST \u5E76\u627F\u8F7D\u8BED\u6CD5\u6269\u5C55\uFF1B",(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u901A\u8FC7\u7EDF\u4E00\u7684 ",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u5951\u7EA6\u6D88\u8D39 AST\uFF0C\u4EA7\u51FA\u4E1A\u52A1\u89E3\u6790\u7ED3\u679C\u3002",(0,t.jsx)(r.code,{children:"sqlparserx-web"})," \u4E0E ",(0,t.jsx)(r.code,{children:"sqlparserx-ui"})," \u63D0\u4F9B\u670D\u52A1\u5316\u4E0E\u53EF\u89C6\u5316\u8BBF\u95EE\u80FD\u529B\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",children:"\u4ECE\u8FD9\u91CC\u5F00\u59CB"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:["\u{1F680} ",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/quickstart/setup",children:"\u5FEB\u901F\u5F00\u59CB"})]}),"\n",(0,t.jsxs)(r.li,{children:["\u{1F4D6} ",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/about/introduction",children:"SqlParserX \u4ECB\u7ECD"})]}),"\n",(0,t.jsxs)(r.li,{children:["\u{1F3D7}\uFE0F ",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"})]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"\u6587\u6863\u7ED3\u6784",children:"\u6587\u6863\u7ED3\u6784"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"\u5173\u4E8E SqlParserX"}),"\uFF1A\u9879\u76EE\u4ECB\u7ECD\u4E0E\u4E24\u5C42\u67B6\u6784\u8BBE\u8BA1"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"\u5FEB\u901F\u5F00\u59CB"}),"\uFF1A\u73AF\u5883\u51C6\u5907\u3001\u6784\u5EFA\u4E0E\u8FD0\u884C"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528"}),"\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001\u51FD\u6570\u89E3\u6790\u3001\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.strong,{children:"\u8D21\u732E\u6307\u5357"}),"\uFF1A\u53C2\u4E0E\u8D21\u732E\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303"]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:[":::tip \u63D0\u793A\n\u672C\u7AD9\u53F3\u4FA7\u5BFC\u822A\u680F\u53EF\u5207\u6362",(0,t.jsx)(r.strong,{children:"\u7248\u672C"}),"\uFF08",(0,t.jsx)(r.code,{children:"1.0"})," / ",(0,t.jsx)(r.code,{children:"Next"}),"\uFF09\u4E0E",(0,t.jsx)(r.strong,{children:"\u8BED\u8A00"}),"\uFF08\u7B80\u4F53\u4E2D\u6587 / English\uFF09\u3002\n:::"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},8453(e,r,s){s.d(r,{R:()=>i,x:()=>c});var n=s(6540);let t={},l=n.createContext(t);function i(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f1ca1a6.9a2d65d7.js b/assets/js/1f1ca1a6.9a2d65d7.js deleted file mode 100644 index 9e0813e..0000000 --- a/assets/js/1f1ca1a6.9a2d65d7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7214"],{820(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>x,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var n=JSON.parse('{"id":"about/architecture","title":"\u67B6\u6784\u8BBE\u8BA1","description":"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784","source":"@site/docs/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/docs/next/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/about/architecture.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"\u67B6\u6784\u8BBE\u8BA1","description":"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784","sidebar_label":"\u67B6\u6784\u8BBE\u8BA1","sidebar_position":2},"sidebar":"docs","previous":{"title":"SqlParserX\u4ECB\u7ECD","permalink":"/SqlParserX/docs/next/about/introduction"},"next":{"title":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","permalink":"/SqlParserX/docs/next/quickstart/setup"}}'),t=s(4848),l=s(8453);let d={title:"\u67B6\u6784\u8BBE\u8BA1",description:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",sidebar_label:"\u67B6\u6784\u8BBE\u8BA1",sidebar_position:2},i="SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",a={},c=[{value:"\u603B\u4F53\u67B6\u6784",id:"\u603B\u4F53\u67B6\u6784",level:2},{value:"\u4E24\u5C42\u804C\u8D23",id:"\u4E24\u5C42\u804C\u8D23",level:2},{value:"\u6A21\u5757\u4F9D\u8D56",id:"\u6A21\u5757\u4F9D\u8D56",level:2}];function o(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"sqlparserx-\u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",children:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784"})}),"\n",(0,t.jsx)(r.p,{children:"SqlParserX \u7684\u89E3\u6790\u5185\u6838\u7531\u4E24\u5957\u76F8\u4E92\u8854\u63A5\u3001\u7ED3\u6784\u5BF9\u79F0\u7684\u6269\u5C55\u4F53\u7CFB\u7EC4\u6210\uFF0C\u5206\u522B\u843D\u5728\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF1A"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsxs)(r.strong,{children:["SQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u5B98\u65B9 Druid\uFF0C\u901A\u8FC7\u7EDF\u4E00\u7684\u65B9\u8A00\u8DEF\u7531\u3001Parser \u57FA\u5EA7\u548C AST \u6A21\u578B\uFF0C\u6269\u5C55\u4E0D\u540C\u6570\u636E\u6E90\u7684 Lexer\u3001StatementParser \u4E0E AST Node\u3002"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsxs)(r.strong,{children:["SqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u901A\u8FC7\u7EDF\u4E00\u7684\u65B9\u8A00\u8DEF\u7531\u3001",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u5951\u7EA6\u548C\u4E1A\u52A1 Client\uFF0C\u6269\u5C55\u4E0D\u540C\u6570\u636E\u6E90\u7684\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u4E0E SQL \u6539\u5199\u903B\u8F91\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:["\u4E24\u5C42\u90FD\u9075\u5FAA\u201C",(0,t.jsx)(r.strong,{children:"\u7EDF\u4E00\u5165\u53E3 \u2192 \u901A\u7528\u57FA\u5EA7 \u2192 \u7EDF\u4E00\u6269\u5C55\u70B9 \u2192 \u6570\u636E\u6E90\u5B9E\u73B0 \u2192 \u7EDF\u4E00\u7ED3\u679C"}),"\u201D\u7684\u6A21\u5F0F\u3002\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728 Druid \u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728 SqlParserX \u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,t.jsx)(r.code,{children:"DbType"})," \u548C Druid AST \u5BF9\u9F50\u3002"]}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.img,{alt:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",src:s(1440).A+"",width:"1745",height:"1361"})}),"\n",(0,t.jsx)(r.h2,{id:"\u603B\u4F53\u67B6\u6784",children:"\u603B\u4F53\u67B6\u6784"}),"\n",(0,t.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CSqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42]\n direction LR\n B_ROUTE[\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531
    SqlParserFactory]\n B_BASE[\u7EDF\u4E00\u4E1A\u52A1\u57FA\u5EA7
    ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[\u7EDF\u4E00\u6269\u5C55\u70B9
    \u65B9\u8A00 Client \xb7 \u89E3\u6790\u7B56\u7565]\n B_DIALECT[\u6570\u636E\u6E90\u4E1A\u52A1\u5B9E\u73B0
    MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[\u7EDF\u4E00\u4E1A\u52A1\u7ED3\u679C
    \u8868 \xb7 \u5EFA\u8868\u7ED3\u6784 \xb7 \u8840\u7F18 \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid]\n direction LR\n S_ROUTE[\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531
    SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[\u7EDF\u4E00\u8BED\u6CD5\u57FA\u5EA7
    Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[\u7EDF\u4E00\u6269\u5C55\u70B9
    \u65B9\u8A00 Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[\u6570\u636E\u6E90\u8BED\u6CD5\u5B9E\u73B0
    MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[\u7EDF\u4E00\u8BED\u6CD5\u7ED3\u679C
    SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType \u5BF9\u9F50 .-> S_ROUTE\n B_DIALECT -. \u540C\u4E00\u6570\u636E\u6E90\u65B9\u8A00 .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,t.jsx)(r.h2,{id:"\u4E24\u5C42\u804C\u8D23",children:"\u4E24\u5C42\u804C\u8D23"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u7EDF\u4E00\u6269\u5C55\u9636\u6BB5"}),(0,t.jsxs)(r.th,{children:["SQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),(0,t.jsxs)(r.th,{children:["SqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-core"}),"\uFF09"]})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SqlSyntaxParserFactory"})," \u6309 ",(0,t.jsx)(r.code,{children:"DbType"})," \u9009\u62E9\u5BF9\u5E94\u8BED\u6CD5\u65B9\u8A00"]}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SqlParserFactory"})," \u6839\u636E\u540C\u4E00\u4E2A ",(0,t.jsx)(r.code,{children:"DbType"})," \u9009\u62E9\u4E1A\u52A1\u89E3\u6790\u5668"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u901A\u7528\u57FA\u5EA7"}),(0,t.jsx)(r.td,{children:"\u901A\u7528 Lexer\u3001StatementParser \u548C AST"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ISqlParser"}),"\u3001",(0,t.jsx)(r.code,{children:"BaseSqlParser"})," \u548C Base Client"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u6269\u5C55\u70B9"}),(0,t.jsx)(r.td,{children:"\u65B9\u8A00 Lexer\u3001\u65B9\u8A00 StatementParser\u3001\u65B9\u8A00 AST Node"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"IParseTableClient"}),"\u3001",(0,t.jsx)(r.code,{children:"IColumnLineageClient"}),"\u3001",(0,t.jsx)(r.code,{children:"ITableLineageClient"}),"\u3001\u89E3\u6790\u7B56\u7565\u7B49"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6570\u636E\u6E90\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:"MySQL\u3001Doris\u3001Oracle\u3001Hive \u7B49 Druid \u65B9\u8A00\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:"MySQL\u3001Doris\u3001StarRocks\u3001Hive \u7B49\u4E1A\u52A1\u65B9\u8A00\u5B9E\u73B0"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u7ED3\u679C"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SQLStatement"})," AST"]}),(0,t.jsx)(r.td,{children:"\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u3001\u51FD\u6570\u53CA\u6539\u5199\u540E\u7684 SQL"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6A21\u5757\u4F9D\u8D56",children:"\u6A21\u5757\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,t.jsxs)(r.p,{children:["\u4E1A\u52A1\u6269\u5C55\u9075\u5FAA ",(0,t.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,t.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 \u65B9\u8A00\u5B9E\u73B0\u7684\u6A21\u5F0F\u3002\u5B8C\u6574\u7684\u6A21\u5757\u4F9D\u8D56\u4E0E\u5305\u7ED3\u6784\u89C1 ",(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u6A21\u5757\u7684 README\u3002"]})]})}function x(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},1440(e,r,s){s.d(r,{A:()=>n});let n=s.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-c7796d93ff72c04ff0bb409eba10ae82.png"},8453(e,r,s){s.d(r,{R:()=>d,x:()=>i});var n=s(6540);let t={},l=n.createContext(t);function d(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f1ca1a6.cf742e62.js b/assets/js/1f1ca1a6.cf742e62.js new file mode 100644 index 0000000..cdcb487 --- /dev/null +++ b/assets/js/1f1ca1a6.cf742e62.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7214"],{820(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>x,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var n=JSON.parse('{"id":"about/architecture","title":"\u67B6\u6784\u8BBE\u8BA1","description":"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784","source":"@site/docs/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/docs/next/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/about/architecture.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"\u67B6\u6784\u8BBE\u8BA1","description":"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784","sidebar_label":"\u67B6\u6784\u8BBE\u8BA1","sidebar_position":2},"sidebar":"docs","previous":{"title":"SqlParserX\u4ECB\u7ECD","permalink":"/SqlParserX/docs/next/about/introduction"},"next":{"title":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","permalink":"/SqlParserX/docs/next/quickstart/setup"}}'),t=s(4848),l=s(8453);let d={title:"\u67B6\u6784\u8BBE\u8BA1",description:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",sidebar_label:"\u67B6\u6784\u8BBE\u8BA1",sidebar_position:2},i="SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",a={},c=[{value:"\u603B\u4F53\u67B6\u6784",id:"\u603B\u4F53\u67B6\u6784",level:2},{value:"\u4E24\u5C42\u804C\u8D23",id:"\u4E24\u5C42\u804C\u8D23",level:2},{value:"\u6A21\u5757\u4F9D\u8D56",id:"\u6A21\u5757\u4F9D\u8D56",level:2}];function o(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"sqlparserx-\u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",children:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784"})}),"\n",(0,t.jsx)(r.p,{children:"SqlParserX \u7684\u89E3\u6790\u5185\u6838\u7531\u4E24\u5957\u76F8\u4E92\u8854\u63A5\u3001\u7ED3\u6784\u5BF9\u79F0\u7684\u6269\u5C55\u4F53\u7CFB\u7EC4\u6210\uFF0C\u5206\u522B\u843D\u5728\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF1A"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsxs)(r.strong,{children:["SQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u5B98\u65B9 Druid\uFF0C\u901A\u8FC7\u7EDF\u4E00\u7684\u65B9\u8A00\u8DEF\u7531\u3001Parser \u57FA\u5EA7\u548C AST \u6A21\u578B\uFF0C\u6269\u5C55\u4E0D\u540C\u6570\u636E\u6E90\u7684 Lexer\u3001StatementParser \u4E0E AST Node\u3002"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsxs)(r.strong,{children:["SqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u901A\u8FC7\u7EDF\u4E00\u7684\u65B9\u8A00\u8DEF\u7531\u3001",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u5951\u7EA6\u548C\u4E1A\u52A1 Client\uFF0C\u6269\u5C55\u4E0D\u540C\u6570\u636E\u6E90\u7684\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u4E0E SQL \u6539\u5199\u903B\u8F91\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:["\u4E24\u5C42\u90FD\u9075\u5FAA\u201C",(0,t.jsx)(r.strong,{children:"\u7EDF\u4E00\u5165\u53E3 \u2192 \u901A\u7528\u57FA\u5EA7 \u2192 \u7EDF\u4E00\u6269\u5C55\u70B9 \u2192 \u6570\u636E\u6E90\u5B9E\u73B0 \u2192 \u7EDF\u4E00\u7ED3\u679C"}),"\u201D\u7684\u6A21\u5F0F\u3002\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728 Druid \u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728 SqlParserX \u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,t.jsx)(r.code,{children:"DbType"})," \u548C Druid AST \u5BF9\u9F50\u3002"]}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.img,{alt:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",src:s(1440).A+"",width:"1745",height:"1361"})}),"\n",(0,t.jsx)(r.h2,{id:"\u603B\u4F53\u67B6\u6784",children:"\u603B\u4F53\u67B6\u6784"}),"\n",(0,t.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CSqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42]\n direction LR\n B_ROUTE[\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531
    SqlParserFactory]\n B_BASE[\u7EDF\u4E00\u4E1A\u52A1\u57FA\u5EA7
    ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[\u7EDF\u4E00\u6269\u5C55\u70B9
    \u65B9\u8A00 Client \xb7 \u89E3\u6790\u7B56\u7565]\n B_DIALECT[\u6570\u636E\u6E90\u4E1A\u52A1\u5B9E\u73B0
    MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[\u7EDF\u4E00\u4E1A\u52A1\u7ED3\u679C
    \u8868 \xb7 \u5EFA\u8868\u7ED3\u6784 \xb7 \u8840\u7F18 \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid]\n direction LR\n S_ROUTE[\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531
    SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[\u7EDF\u4E00\u8BED\u6CD5\u57FA\u5EA7
    Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[\u7EDF\u4E00\u6269\u5C55\u70B9
    \u65B9\u8A00 Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[\u6570\u636E\u6E90\u8BED\u6CD5\u5B9E\u73B0
    MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[\u7EDF\u4E00\u8BED\u6CD5\u7ED3\u679C
    SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType \u5BF9\u9F50 .-> S_ROUTE\n B_DIALECT -. \u540C\u4E00\u6570\u636E\u6E90\u65B9\u8A00 .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,t.jsx)(r.h2,{id:"\u4E24\u5C42\u804C\u8D23",children:"\u4E24\u5C42\u804C\u8D23"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u7EDF\u4E00\u6269\u5C55\u9636\u6BB5"}),(0,t.jsxs)(r.th,{children:["SQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),(0,t.jsxs)(r.th,{children:["SqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-core"}),"\uFF09"]})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SqlSyntaxParserFactory"})," \u6309 ",(0,t.jsx)(r.code,{children:"DbType"})," \u9009\u62E9\u5BF9\u5E94\u8BED\u6CD5\u65B9\u8A00"]}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SqlParserFactory"})," \u6839\u636E\u540C\u4E00\u4E2A ",(0,t.jsx)(r.code,{children:"DbType"})," \u9009\u62E9\u4E1A\u52A1\u89E3\u6790\u5668"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u901A\u7528\u57FA\u5EA7"}),(0,t.jsx)(r.td,{children:"\u901A\u7528 Lexer\u3001StatementParser \u548C AST"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ISqlParser"}),"\u3001",(0,t.jsx)(r.code,{children:"BaseSqlParser"})," \u548C Base Client"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u6269\u5C55\u70B9"}),(0,t.jsx)(r.td,{children:"\u65B9\u8A00 Lexer\u3001\u65B9\u8A00 StatementParser\u3001\u65B9\u8A00 AST Node"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"IParseTableClient"}),"\u3001",(0,t.jsx)(r.code,{children:"IColumnLineageClient"}),"\u3001",(0,t.jsx)(r.code,{children:"ITableLineageClient"}),"\u3001\u89E3\u6790\u7B56\u7565\u7B49"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6570\u636E\u6E90\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:"MySQL\u3001Doris\u3001Oracle\u3001Hive \u7B49 Druid \u65B9\u8A00\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:"MySQL\u3001Doris\u3001StarRocks\u3001Hive \u7B49\u4E1A\u52A1\u65B9\u8A00\u5B9E\u73B0"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u7ED3\u679C"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SQLStatement"})," AST"]}),(0,t.jsx)(r.td,{children:"\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u3001\u51FD\u6570\u53CA\u6539\u5199\u540E\u7684 SQL"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6A21\u5757\u4F9D\u8D56",children:"\u6A21\u5757\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,t.jsxs)(r.p,{children:["\u4E1A\u52A1\u6269\u5C55\u9075\u5FAA ",(0,t.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,t.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 \u65B9\u8A00\u5B9E\u73B0\u7684\u6A21\u5F0F\u3002\u5B8C\u6574\u7684\u6A21\u5757\u4F9D\u8D56\u4E0E\u5305\u7ED3\u6784\u89C1 ",(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u6A21\u5757\u7684 README\u3002"]})]})}function x(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},1440(e,r,s){s.d(r,{A:()=>n});let n=s.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-c7796d93ff72c04ff0bb409eba10ae82.png"},8453(e,r,s){s.d(r,{R:()=>d,x:()=>i});var n=s(6540);let t={},l=n.createContext(t);function d(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f362aa0.9247c25c.js b/assets/js/1f362aa0.9247c25c.js new file mode 100644 index 0000000..64cfe51 --- /dev/null +++ b/assets/js/1f362aa0.9247c25c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9054"],{8141(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var s=JSON.parse('{"id":"core/function-parse","title":"\u51FD\u6570\u89E3\u6790","description":"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587","source":"@site/docs/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/docs/next/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/function-parse.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"\u51FD\u6570\u89E3\u6790","description":"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587","sidebar_label":"\u51FD\u6570\u89E3\u6790","sidebar_position":4},"sidebar":"docs","previous":{"title":"\u8868\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/table-parse"},"next":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","permalink":"/SqlParserX/docs/next/core/parameter-compile"}}'),t=n(4848),d=n(8453);let c={title:"\u51FD\u6570\u89E3\u6790",description:"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587",sidebar_label:"\u51FD\u6570\u89E3\u6790",sidebar_position:4},i="\u51FD\u6570\u89E3\u6790",l={},o=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function a(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u51FD\u6570\u89E3\u6790",children:"\u51FD\u6570\u89E3\u6790"})}),"\n",(0,t.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,t.jsxs)(r.p,{children:["\u6CBF\u7528\u5B98\u65B9 ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u63D0\u53D6 SQL \u4E2D\u51FA\u73B0\u7684\u51FD\u6570\u96C6\u5408\uFF1A"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790 SQL \u4E2D\u51FA\u73B0\u7684\u51FD\u6570\n Set functions = parser.parseFunction(sql);\n\n // 3\u3001\u8BFB\u53D6\u7ED3\u679C\n System.out.println("\u51FD\u6570\u96C6\u5408: " + functions);\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"\u51FD\u6570\u96C6\u5408: [sum, count]\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,t.jsxs)(r.p,{children:["\u4ECE SQL \u4E2D\u63D0\u53D6",(0,t.jsx)(r.strong,{children:"\u51FD\u6570\u8C03\u7528"}),"\u4FE1\u606F\uFF0C\u8FD4\u56DE\u53BB\u91CD\u540E\u7684\u51FD\u6570\u540D\u96C6\u5408\uFF0C\u4FBF\u4E8E\u505A\u51FD\u6570\u7EA7\u6CBB\u7406\u4E0E\u4F9D\u8D56\u5206\u6790\u3002"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 \u904D\u5386 AST \u6536\u96C6\u51FD\u6570\u8868\u8FBE\u5F0F\n \u2192 Set \u51FD\u6570\u96C6\u5408\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u9879\u76EE"}),(0,t.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"Set"}),"\uFF08\u51FD\u6570\u540D\u96C6\u5408\uFF0C\u7EDF\u4E00\u5C0F\u5199\uFF09"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8986\u76D6\u8303\u56F4"}),(0,t.jsx)(r.td,{children:"\u5185\u7F6E\u51FD\u6570\u3001\u805A\u5408\u51FD\u6570\u3001\u7A97\u53E3\u51FD\u6570\u3001\u81EA\u5B9A\u4E49\u51FD\u6570"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u666E\u901A\u51FD\u6570\u8C03\u7528"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"substr(name, 1, 3)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u805A\u5408\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"sum"}),"\u3001",(0,t.jsx)(r.code,{children:"count"}),"\u3001",(0,t.jsx)(r.code,{children:"max"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7A97\u53E3\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"row_number() over(...)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5D4C\u5957\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u9012\u5F52\u6536\u96C6\u5185\u5916\u5C42\u51FD\u6570"})]})]})]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["\u66F4\u591A\u51FD\u6570\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u51FD\u6570\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},8453(e,r,n){n.d(r,{R:()=>c,x:()=>i});var s=n(6540);let t={},d=s.createContext(t);function c(e){let r=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f362aa0.f648ace8.js b/assets/js/1f362aa0.f648ace8.js deleted file mode 100644 index 6f1f795..0000000 --- a/assets/js/1f362aa0.f648ace8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9054"],{8141(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var s=JSON.parse('{"id":"core/function-parse","title":"\u51FD\u6570\u89E3\u6790","description":"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587","source":"@site/docs/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/docs/next/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/function-parse.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"\u51FD\u6570\u89E3\u6790","description":"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587","sidebar_label":"\u51FD\u6570\u89E3\u6790","sidebar_position":4},"sidebar":"docs","previous":{"title":"\u8868\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/table-parse"},"next":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","permalink":"/SqlParserX/docs/next/core/parameter-compile"}}'),t=n(4848),d=n(8453);let c={title:"\u51FD\u6570\u89E3\u6790",description:"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587",sidebar_label:"\u51FD\u6570\u89E3\u6790",sidebar_position:4},i="\u51FD\u6570\u89E3\u6790",l={},o=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function a(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u51FD\u6570\u89E3\u6790",children:"\u51FD\u6570\u89E3\u6790"})}),"\n",(0,t.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,t.jsxs)(r.p,{children:["\u6CBF\u7528\u5B98\u65B9 ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u63D0\u53D6 SQL \u4E2D\u51FA\u73B0\u7684\u51FD\u6570\u96C6\u5408\uFF1A"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790 SQL \u4E2D\u51FA\u73B0\u7684\u51FD\u6570\n Set functions = parser.parseFunction(sql);\n\n // 3\u3001\u8BFB\u53D6\u7ED3\u679C\n System.out.println("\u51FD\u6570\u96C6\u5408: " + functions);\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"\u51FD\u6570\u96C6\u5408: [sum, count]\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,t.jsxs)(r.p,{children:["\u4ECE SQL \u4E2D\u63D0\u53D6",(0,t.jsx)(r.strong,{children:"\u51FD\u6570\u8C03\u7528"}),"\u4FE1\u606F\uFF0C\u8FD4\u56DE\u53BB\u91CD\u540E\u7684\u51FD\u6570\u540D\u96C6\u5408\uFF0C\u4FBF\u4E8E\u505A\u51FD\u6570\u7EA7\u6CBB\u7406\u4E0E\u4F9D\u8D56\u5206\u6790\u3002"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 \u904D\u5386 AST \u6536\u96C6\u51FD\u6570\u8868\u8FBE\u5F0F\n \u2192 Set \u51FD\u6570\u96C6\u5408\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u9879\u76EE"}),(0,t.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"Set"}),"\uFF08\u51FD\u6570\u540D\u96C6\u5408\uFF0C\u7EDF\u4E00\u5C0F\u5199\uFF09"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8986\u76D6\u8303\u56F4"}),(0,t.jsx)(r.td,{children:"\u5185\u7F6E\u51FD\u6570\u3001\u805A\u5408\u51FD\u6570\u3001\u7A97\u53E3\u51FD\u6570\u3001\u81EA\u5B9A\u4E49\u51FD\u6570"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u666E\u901A\u51FD\u6570\u8C03\u7528"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"substr(name, 1, 3)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u805A\u5408\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"sum"}),"\u3001",(0,t.jsx)(r.code,{children:"count"}),"\u3001",(0,t.jsx)(r.code,{children:"max"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7A97\u53E3\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"row_number() over(...)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5D4C\u5957\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u9012\u5F52\u6536\u96C6\u5185\u5916\u5C42\u51FD\u6570"})]})]})]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["\u66F4\u591A\u51FD\u6570\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u51FD\u6570\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},8453(e,r,n){n.d(r,{R:()=>c,x:()=>i});var s=n(6540);let t={},d=s.createContext(t);function c(e){let r=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f434cef.30740b15.js b/assets/js/1f434cef.30740b15.js deleted file mode 100644 index 49296ee..0000000 --- a/assets/js/1f434cef.30740b15.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2052"],{7508(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var s=JSON.parse('{"id":"core/field-lineage","title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","description":"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB","source":"@site/versioned_docs/version-1.0/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/docs/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/field-lineage.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","description":"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB","sidebar_label":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","permalink":"/SqlParserX/docs/core/sql-type"},"next":{"title":"\u8868\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/core/table-lineage"}}'),l=r(4848),t=r(8453);let d={title:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",description:"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB",sidebar_label:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",sidebar_position:1},i="\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",a={},c=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",level:2},{value:"\u5B57\u6BB5\u573A\u666F",id:"\u5B57\u6BB5\u573A\u666F",level:3}];function o(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(n.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,l.jsxs)(n.p,{children:["\u4ECE\u83B7\u53D6\u89E3\u6790\u5668\u3001\u6784\u9020\u5143\u6570\u636E\u5230\u6253\u5370\u5B57\u6BB5\u8840\u7F18\u7684",(0,l.jsx)(n.strong,{children:"\u5B8C\u6574\u53EF\u8FD0\u884C"}),"\u7C7B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u51C6\u5907\u5143\u6570\u636E\uFF1A\u8868 -> \u5B57\u6BB5\u5217\u8868\uFF08\u7528\u4E8E select * / \u5B57\u6BB5\u5C55\u5F00\uFF09\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4\u3001\u6253\u5370\u7ED3\u679C\uFF1A\u76EE\u6807\u8868 + \u76EE\u6807\u5B57\u6BB5 -> \u6765\u6E90\u5B57\u6BB5\n System.out.println("\u76EE\u6807\u8868: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,l.jsx)(n.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"\u76EE\u6807\u8868: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,l.jsx)(n.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,l.jsxs)(n.p,{children:["\u4ECE SQL \u4E2D\u63A8\u5BFC ",(0,l.jsx)(n.strong,{children:"\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5"})," \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\uFF1A\u628A\u300C\u6765\u6E90 select \u5B57\u6BB5\u5217\u8868\u300D\u4E0E\u300C\u76EE\u6807\u5B57\u6BB5\u5217\u8868\u300D\u5404\u81EA\u5F52\u4E00\u4E3A ",(0,l.jsx)(n.code,{children:"(\u771F\u5B9E\u5B57\u6BB5, \u522B\u540D\u5B57\u6BB5, \u771F\u5B9E\u8868\u540D)"})," \u7684\u4E09\u5143\u7EC4\u96C6\u5408\uFF0C\u518D\u6309\u56FA\u5B9A\u5339\u914D\u89C4\u5219\u751F\u6210\u8840\u7F18\u3002\u5B57\u6BB5\u8840\u7F18\u7684\u8F93\u5165\u662F\u63D2\u5165/\u5EFA\u8868\u7C7B SQL\uFF0C\u7EAF\u67E5\u8BE2 SQL \u4E0D\u4EA7\u751F\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 \u76EE\u6807\u5B57\u6BB5\u5217\u8868 + \u6765\u6E90 select \u5B57\u6BB5\u5217\u8868\n \u2192 addColumnRelations \u9010\u6761\u5339\u914D\n \u2192 ColumnLineageResult\n"})}),"\n",(0,l.jsx)(n.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u9879\u76EE"}),(0,l.jsx)(n.th,{children:"\u5185\u5BB9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Core \u5165\u53E3"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,l.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"ColumnLineageResult"}),"\uFF08",(0,l.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,l.jsx)(n.code,{children:"getColumnLineages()"}),"\uFF09"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9002\u7528\u8BED\u53E5"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"SQLInsertStatement"}),"\u3001",(0,l.jsx)(n.code,{children:"SQLCreateTableStatement"}),"\uFF08AS SELECT\uFF09"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5143\u6570\u636E\u8F93\u5165"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"Map> tableColumnsMap"}),"\uFF08\u8868 \u2192 \u5B57\u6BB5\u5217\u8868\uFF09"]})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"5-\u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6"}),"\n",(0,l.jsx)(n.h3,{id:"\u5B57\u6BB5\u573A\u666F",children:"\u5B57\u6BB5\u573A\u666F"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u80FD\u529B\u9879"}),(0,l.jsx)(n.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,l.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"catalog.db.table.column"})," \u5B57\u6BB5\u8BC6\u522B"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(n.td,{children:"\u652F\u6301 Hive/Trino/StarRocks \u7B49\u591A catalog \u573A\u666F"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"db.table.column"})," \u5B57\u6BB5\u8BC6\u522B"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(n.td,{children:"MySQL/PostgreSQL \u7B49\u6807\u51C6\u7528\u6CD5"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:["\u5B57\u6BB5\u8868\u8FBE\u5F0F\u8BA1\u7B97\uFF08",(0,l.jsx)(n.code,{children:"SQLBinaryOpExpr"}),"\uFF09"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsxs)(n.td,{children:["\u5982 ",(0,l.jsx)(n.code,{children:"t5.level + 1"}),"\uFF0C\u5DE6\u53F3\u9012\u5F52\u6536\u96C6\u5B57\u6BB5"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"*"})," / ",(0,l.jsx)(n.code,{children:"xx.*"})," \u5C55\u5F00"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsxs)(n.td,{children:["\u4F9D\u636E\u5143\u6570\u636E ",(0,l.jsx)(n.code,{children:"tableColumnsMap"})," \u8BFB\u53D6\u5B57\u6BB5\uFF1B\u65E0\u5143\u6570\u636E\u4FDD\u7559 ",(0,l.jsx)(n.code,{children:"*"})]})]})]})]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:["\u66F4\u591A\u5B57\u6BB5\u573A\u666F\u3001\u8868\u8FBE\u5F0F\u4E0E\u5B50\u67E5\u8BE2\u7684\u8986\u76D6\u60C5\u51B5\uFF0C\u4EE5\u9879\u76EE ",(0,l.jsx)(n.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(o,{...e})}):o(e)}},8453(e,n,r){r.d(n,{R:()=>d,x:()=>i});var s=r(6540);let l={},t=s.createContext(l);function d(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f434cef.90aca92f.js b/assets/js/1f434cef.90aca92f.js new file mode 100644 index 0000000..df8b55b --- /dev/null +++ b/assets/js/1f434cef.90aca92f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2052"],{7508(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var s=JSON.parse('{"id":"core/field-lineage","title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","description":"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB","source":"@site/versioned_docs/version-1.0/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/docs/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/field-lineage.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","description":"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB","sidebar_label":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","permalink":"/SqlParserX/docs/core/sql-type"},"next":{"title":"\u8868\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/core/table-lineage"}}'),l=r(4848),t=r(8453);let d={title:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",description:"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB",sidebar_label:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",sidebar_position:1},i="\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",a={},c=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",level:2},{value:"\u5B57\u6BB5\u573A\u666F",id:"\u5B57\u6BB5\u573A\u666F",level:3}];function o(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(n.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,l.jsxs)(n.p,{children:["\u4ECE\u83B7\u53D6\u89E3\u6790\u5668\u3001\u6784\u9020\u5143\u6570\u636E\u5230\u6253\u5370\u5B57\u6BB5\u8840\u7F18\u7684",(0,l.jsx)(n.strong,{children:"\u5B8C\u6574\u53EF\u8FD0\u884C"}),"\u7C7B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u51C6\u5907\u5143\u6570\u636E\uFF1A\u8868 -> \u5B57\u6BB5\u5217\u8868\uFF08\u7528\u4E8E select * / \u5B57\u6BB5\u5C55\u5F00\uFF09\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4\u3001\u6253\u5370\u7ED3\u679C\uFF1A\u76EE\u6807\u8868 + \u76EE\u6807\u5B57\u6BB5 -> \u6765\u6E90\u5B57\u6BB5\n System.out.println("\u76EE\u6807\u8868: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,l.jsx)(n.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"\u76EE\u6807\u8868: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,l.jsx)(n.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,l.jsxs)(n.p,{children:["\u4ECE SQL \u4E2D\u63A8\u5BFC ",(0,l.jsx)(n.strong,{children:"\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5"})," \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\uFF1A\u628A\u300C\u6765\u6E90 select \u5B57\u6BB5\u5217\u8868\u300D\u4E0E\u300C\u76EE\u6807\u5B57\u6BB5\u5217\u8868\u300D\u5404\u81EA\u5F52\u4E00\u4E3A ",(0,l.jsx)(n.code,{children:"(\u771F\u5B9E\u5B57\u6BB5, \u522B\u540D\u5B57\u6BB5, \u771F\u5B9E\u8868\u540D)"})," \u7684\u4E09\u5143\u7EC4\u96C6\u5408\uFF0C\u518D\u6309\u56FA\u5B9A\u5339\u914D\u89C4\u5219\u751F\u6210\u8840\u7F18\u3002\u5B57\u6BB5\u8840\u7F18\u7684\u8F93\u5165\u662F\u63D2\u5165/\u5EFA\u8868\u7C7B SQL\uFF0C\u7EAF\u67E5\u8BE2 SQL \u4E0D\u4EA7\u751F\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 \u76EE\u6807\u5B57\u6BB5\u5217\u8868 + \u6765\u6E90 select \u5B57\u6BB5\u5217\u8868\n \u2192 addColumnRelations \u9010\u6761\u5339\u914D\n \u2192 ColumnLineageResult\n"})}),"\n",(0,l.jsx)(n.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u9879\u76EE"}),(0,l.jsx)(n.th,{children:"\u5185\u5BB9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Core \u5165\u53E3"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,l.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"ColumnLineageResult"}),"\uFF08",(0,l.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,l.jsx)(n.code,{children:"getColumnLineages()"}),"\uFF09"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9002\u7528\u8BED\u53E5"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"SQLInsertStatement"}),"\u3001",(0,l.jsx)(n.code,{children:"SQLCreateTableStatement"}),"\uFF08AS SELECT\uFF09"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5143\u6570\u636E\u8F93\u5165"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"Map> tableColumnsMap"}),"\uFF08\u8868 \u2192 \u5B57\u6BB5\u5217\u8868\uFF09"]})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"5-\u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6"}),"\n",(0,l.jsx)(n.h3,{id:"\u5B57\u6BB5\u573A\u666F",children:"\u5B57\u6BB5\u573A\u666F"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u80FD\u529B\u9879"}),(0,l.jsx)(n.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,l.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"catalog.db.table.column"})," \u5B57\u6BB5\u8BC6\u522B"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(n.td,{children:"\u652F\u6301 Hive/Trino/StarRocks \u7B49\u591A catalog \u573A\u666F"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"db.table.column"})," \u5B57\u6BB5\u8BC6\u522B"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(n.td,{children:"MySQL/PostgreSQL \u7B49\u6807\u51C6\u7528\u6CD5"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:["\u5B57\u6BB5\u8868\u8FBE\u5F0F\u8BA1\u7B97\uFF08",(0,l.jsx)(n.code,{children:"SQLBinaryOpExpr"}),"\uFF09"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsxs)(n.td,{children:["\u5982 ",(0,l.jsx)(n.code,{children:"t5.level + 1"}),"\uFF0C\u5DE6\u53F3\u9012\u5F52\u6536\u96C6\u5B57\u6BB5"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"*"})," / ",(0,l.jsx)(n.code,{children:"xx.*"})," \u5C55\u5F00"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsxs)(n.td,{children:["\u4F9D\u636E\u5143\u6570\u636E ",(0,l.jsx)(n.code,{children:"tableColumnsMap"})," \u8BFB\u53D6\u5B57\u6BB5\uFF1B\u65E0\u5143\u6570\u636E\u4FDD\u7559 ",(0,l.jsx)(n.code,{children:"*"})]})]})]})]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:["\u66F4\u591A\u5B57\u6BB5\u573A\u666F\u3001\u8868\u8FBE\u5F0F\u4E0E\u5B50\u67E5\u8BE2\u7684\u8986\u76D6\u60C5\u51B5\uFF0C\u4EE5\u9879\u76EE ",(0,l.jsx)(n.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(o,{...e})}):o(e)}},8453(e,n,r){r.d(n,{R:()=>d,x:()=>i});var s=r(6540);let l={},t=s.createContext(l);function d(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/207a8b88.8040e10c.js b/assets/js/207a8b88.8040e10c.js deleted file mode 100644 index 8d84e28..0000000 --- a/assets/js/207a8b88.8040e10c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["984"],{7820(n){n.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"origin-of-sqlparserx","metadata":{"permalink":"/SqlParserX/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false},"content":"> \u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28\\n>\\n> \u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\\n> \u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 [SqlParserX \u4ED3\u5E93](https://github.com/DTStack/SqlParserX)\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 [\u67B6\u6784\u8BBE\u8BA1](/docs/about/architecture)\u3002\\n\\n{/* truncate */}\\n\\n## \u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668\\n\\n### 1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668\\n\\n\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F**\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784**\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002\\n\\n\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F**\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32**\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002\\n\\n\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 `x = (a + b) * 3` \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 `a + b`\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 `x`\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002\\n\\n```sql\\n// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\\n\\n [=]\\n / \\\\\\n [x] [*]\\n / \\\\\\n [+] [3]\\n / \\\\\\n [a] [b]\\n\\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\\n```\\n\\n\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002\\n\\n```sql\\n// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\\n [if]\\n / \\\\\\n [>] [block]\\n / \\\\ \\\\\\n[x] [0] [=]\\n / \\\\\\n [y] [10]\\n\\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\\n```\\n\\n**\u89E3\u6790\u5668\u7684\u4F5C\u7528**\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002\\n\\n### 1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668\\n\\n\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F**\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790**\uFF1A\\n\\n- **\u8BCD\u6CD5\u5206\u6790**\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002\\n- **\u8BED\u6CD5\u5206\u6790**\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002\\n\\n```sql\\n\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\\n\\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\\n1 INTEGER \u6574\u6570 1\\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\\n2 INTEGER \u6574\u6570 2\\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\\n3 INTEGER \u6574\u6570 3\\n\\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\\n\\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\\n [+]\\n / \\\\\\n 1 [*]\\n / \\\\\\n 2 3\\n```\\n\\n\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A\\n\\n- **\u65B9\u5F0F\u4E00**\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002\\n- **\u65B9\u5F0F\u4E8C**\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002\\n\\n### 1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668\\n\\nSQL \u89E3\u6790\u5668\u662F**\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6**\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002\\n\\n```sql\\n# \u67E5\u8BE2\\nSELECT * FROM users WHERE status = \'active\';\\n# \u63D2\u5165\\nINSERT INTO customers (name, email) VALUES (\'\u674E\u56DB\', \'lisi@example.com\');\\n# \u66F4\u65B0\\nUPDATE products SET price = 5999 WHERE id = 1001;\\n# \u5220\u9664\\nDELETE FROM logs WHERE create_time < \'2024-01-01\';\\n# \u521B\u5EFA\u8868\\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\\n# \u4FEE\u6539\u8868\\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\\n# \u5220\u9664\u8868\\nDROP TABLE temp_data;\\n# \u6388\u6743\\nGRANT SELECT ON customers TO user1;\\n```\\n\\n### 1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E\\n\\n\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A\\n\\n```text\\nSQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\\n```\\n\\n\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A\\n\\n```text\\nSQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\\n```\\n\\n**\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D**\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002\\n\\n---\\n\\n## \u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848\\n\\n\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002\\n\\n![\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD](assets/01-parser-market.png)\\n\\n### 2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4\\n\\n| \u7279\u6027 | JavaCC | ANTLR 3 | ANTLR 4 |\\n|---|---|---|---|\\n| \u8BED\u6CD5\u5206\u6790\u7B97\u6CD5 | LL(k) | LL(*) | LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09 |\\n| \u5DE6\u9012\u5F52\u5904\u7406 | \u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362 | \u9700\u624B\u52A8\u8F6C\u6362 | \u81EA\u52A8\u5904\u7406 |\\n| \u76EE\u6807\u8BED\u8A00 | Java | Java\u3001C#\u3001Python \u7B49 | \u540C ANTLR 3 |\\n| \u9519\u8BEF\u5904\u7406 | \u57FA\u7840\u9519\u8BEF\u6062\u590D | \u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D | \u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD |\\n| \u8BED\u6CD5\u590D\u6742\u5EA6 | \u7B80\u5355\u76F4\u89C2 | \u8F83\u590D\u6742 | \u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09 |\\n| \u5E94\u7528\u573A\u666F | \u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2 | \u4E2D\u5927\u578B\u9879\u76EE | \u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5 |\\n\\n### 2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec\\n\\n\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A\\n\\n- **Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09**\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002\\n- **hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09**\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002\\n\\n### 2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid\\n\\n- **JSqlParser**\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 `select` \u2192 `SelectStatement`\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 **API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31**\u3002\\n- **Druid**\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F**\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09**\uFF0C\u5E76\u4E14**\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55**\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002\\n\\n### 2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA\\n\\n| \u5DE5\u5177 | \u4F9D\u8D56\u5DE5\u5177 | \u89E3\u6790 SQL \u80FD\u529B | \u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F | \u4F18\u7F3A\u70B9 |\\n|---|---|---|---|---|\\n| JavaCC | \u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219 | \u65E0 | \u65E0 | \u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219 |\\n| ANTLR4 | \u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219 | \u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D | \u65E0 | \u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB |\\n| Calcite | \u57FA\u4E8E JavaCC | \u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31 | \u6709 | \u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927 |\\n| hive-exec | \u57FA\u4E8E ANTLR3 | \u4EC5 Hive\u3001Spark | \u65E0 | \u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90 |\\n| JSqlParser | \u57FA\u4E8E JavaCC | \u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00 | \u6709 | API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42 |\\n| **Druid** | \u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6 | \u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49 | **\u6709\uFF08\u6781\u5F3A\uFF09** | \u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6 |\\n\\n\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 `Insert`\u3001`Select`\u3001`Update`\u3001`Delete` \u7B49\u7ED3\u6784\u3002\\n\\n**\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002** \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002\\n\\n### 2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4\\n\\nANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811**\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB**\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002\\n\\n---\\n\\n## \u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4\\n\\n### 3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218\\n\\n\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A\\n\\n```sql\\n\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\\n\\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\\n\\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\\n \u5B9E\u73B0\uFF1Acalcite\\n\\n\u5B9E\u65F6 streamparser\\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n\\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\\n```\\n\\n\u6838\u5FC3\u95EE\u9898\u662F\uFF1A**\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11**\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002\\n\\n### 3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784\\n\\n\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002\\n\\n![\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784](assets/02-legacy-architecture.png)\\n\\n\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A\\n\\n**\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650**\\n\\n1. \u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B\\n2. \u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002\\n\\n**\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0**\\n\\n1. \u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B\\n2. **\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811**\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B\\n3. \u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002\\n\\n> \u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002\\n\\n![Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22](assets/03-calcite-layered-article.png)\\n\\n### 3.3 \u4E3B\u8981\u95EE\u9898\\n\\n1. **\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31**\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B\\n2. **\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE**\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F `if` \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B\\n3. **\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8**\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002\\n\\n---\\n\\n## \u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42\\n\\n\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A**\u8BED\u6CD5\u89E3\u6790\u5C42** \u4E0E **\u4E1A\u52A1\u89E3\u6790\u5C42**\u3002\\n\\n### 4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09\\n\\n![\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42](assets/04-druid-syntax-layer.png)\\n\\n\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A\\n\\n![Druid \u5206\u5C42\u7ED3\u6784\u7C7B](assets/05-druid-layer-structure.png)\\n\\n```java\\n// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\\nSQLStatement statement = parser.parseStatement();\\n\\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\\nDorisStatementParser statementParser = new DorisStatementParser(sql);\\nSQLStatement sqlStatement = statementParser.parseStatement();\\n```\\n\\n### 4.2 \u4E1A\u52A1\u89E3\u6790\u5C42\\n\\n- **\u89E3\u6790\u5C42**\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B\\n- **\u5E94\u7528\u5C42**\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002\\n\\n![\u4E1A\u52A1\u89E3\u6790\u5206\u5C42](assets/06-business-layer.png)\\n\\n\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A\\n\\n![\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6](assets/07-application-components.png)\\n\\n\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F `BaseXxxClient`\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A\\n\\n![\u7EE7\u627F BaseXxxClient \u6269\u5C55](assets/08-inherit-baseclient.png)\\n\\n\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 `XxxSqlParser` \u4E2D\u6CE8\u518C\uFF1A\\n\\n![\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client](assets/09-register-client.png)\\n\\n\u793A\u4F8B\uFF1A\\n\\n```java\\n// \u51C6\u5907 SQL\\nString sql = getSql();\\n\\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\\n\\n// 2.1\u3001\u89E3\u6790\u8868\\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\\n\\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\\n\\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\\n\\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\\nSet functions = sqlParser.parseFunction(sql);\\n```\\n\\n### 4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0\\n\\n\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A\\n\\n![\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0](assets/10-after-refactor.png)\\n\\n---\\n\\n## \u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0\\n\\n\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002\\n\\n**\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B**\uFF1A`insert into/overwrite ... select`\u3001`create ... select`\u3001`with as ... insert`\u3002\\n\\n### 5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n\\n\u6838\u5FC3\u601D\u8DEF\u662F**\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868**\u3002\\n\\n\u4EE5\u4E00\u6761 `insert select` \u4E3A\u4F8B\uFF1A\\n\\n```sql\\ninsert into new_table (id, name)\\nselect a.id as aid, b.name as bname\\nfrom old_table as a\\nleft join old_table2 b on a.id = b.id\\n```\\n\\n1. \u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A`insert` \u76EE\u6807\u7AEF\u3001`select` \u6765\u6E90\u7AEF\uFF1B\\n2. \u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A\\n\\n```text\\n# \u76EE\u6807\u7AEF\\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\\n id id new_table\\n name name new_table\\n\\n# \u6765\u6E90\u7AEF\\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\\n id aid old_table\\n name bname old_table2\\n```\\n\\n3. \u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A\\n\\n```text\\n# \u7B2C\u4E00\u6761\\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\\n# \u7B2C\u4E8C\u6761\\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\\n```\\n\\n\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002\\n\\n\u5BF9\u4E8E `with as` \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 `()` \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E**\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5**\u7684\u573A\u666F\uFF08\u5982 `concat(t1.name, t2.name)`\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 `,` \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002\\n\\n### 5.2 \u8868\u8840\u7F18\u89E3\u6790\\n\\n\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A `select` \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E `insert` \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002\\n\\n### 5.3 \u8868\u89E3\u6790\\n\\n\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08`select`\u3001`update`\u3001`delete`\u3001`insert`\u3001`drop`\u3001`rename` \u7B49\uFF09\u3002\\n\\n### 5.4 \u51FD\u6570\u89E3\u6790\\n\\n\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 **Visitor \u6A21\u5F0F**\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A\\n\\n![\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790](assets/11-function-visitor.png)\\n\\n### 5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B\\n\\n- **SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09**\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002\\n- **\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL**\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002\\n\\n---\\n\\n## \u516D\u3001SqlParserX \u7684\u8BDE\u751F\\n\\n\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A**\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F**\\n\\n\u4E8E\u662F\u6709\u4E86 **SqlParserX** \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C**\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790**\u7684\u5F00\u6E90\u9879\u76EE\u3002\\n\\n### 6.1 \u53CC\u5C42\u67B6\u6784\\n\\nSqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A\\n\\n```text\\nSqlParserX\uFF08\u6839 Reactor\uFF09\\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\\n```\\n\\n- **\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08`sqlparserx-syntax`\uFF09**\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B\\n- **\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08`sqlparserx-core`\uFF09**\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002\\n\\n\u4E24\u5C42\u4EE5 `DbType + SQLStatement AST` \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C**\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST**\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 [\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1](https://github.com/DTStack/SqlParserX/blob/main/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1.md)\u3002\\n\\n### 6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid\\n\\n\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A**\u5B98\u65B9 Druid 1.2.28**\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C**\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898**\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002\\n\\n### 6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB\\n\\nSqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A\\n\\n- [\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1](/docs/about/architecture)\\n- [\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1](https://github.com/DTStack/SqlParserX/blob/main/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1.md)\\n- [Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5](https://github.com/DTStack/SqlParserX/blob/main/docs/01\u3001SQL\u8BED\u6CD5\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/Druid\u7248\u672C\u4E0ESQL\u8BED\u6CD5\u652F\u6301\u60C5\u51B5.md)\\n- [\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09](https://github.com/DTStack/SqlParserX/tree/main/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5)\\n- [\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357](https://github.com/DTStack/SqlParserX/blob/main/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6587\u6863/SqlParserX\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357.md)\\n\\n### 6.4 \u76EE\u6807\\n\\n- \u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C**\u5B8C\u5168\u57FA\u4E8E Druid** \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B\\n- **\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX**\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B\\n- \u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 `DbType` \u4E0E AST \u5BF9\u9F50\u3002\\n\\n---\\n\\n## \u4E03\u3001\u7ED3\u8BED\\n\\n\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A\\n\\n> **\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002**\\n\\n\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002\\n\\n---\\n\\n> \u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28\\n>\\n> \u672C\u6587\u56FE\u7247\u4F4D\u4E8E `assets/` \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"}]}}')}}]); \ No newline at end of file diff --git a/assets/js/207a8b88.b873bba7.js b/assets/js/207a8b88.b873bba7.js new file mode 100644 index 0000000..383904a --- /dev/null +++ b/assets/js/207a8b88.b873bba7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["984"],{7820(n){n.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"origin-of-sqlparserx","metadata":{"permalink":"/SqlParserX/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false},"content":"> \u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28\\n>\\n> \u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\\n> \u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 [SqlParserX \u4ED3\u5E93](https://github.com/DTStack/SqlParserX)\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 [\u67B6\u6784\u8BBE\u8BA1](/docs/about/architecture)\u3002\\n\\n{/* truncate */}\\n\\n## \u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668\\n\\n### 1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668\\n\\n\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F**\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784**\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002\\n\\n\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F**\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32**\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002\\n\\n\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 `x = (a + b) * 3` \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 `a + b`\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 `x`\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002\\n\\n```sql\\n// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\\n\\n [=]\\n / \\\\\\n [x] [*]\\n / \\\\\\n [+] [3]\\n / \\\\\\n [a] [b]\\n\\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\\n```\\n\\n\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002\\n\\n```sql\\n// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\\n [if]\\n / \\\\\\n [>] [block]\\n / \\\\ \\\\\\n[x] [0] [=]\\n / \\\\\\n [y] [10]\\n\\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\\n```\\n\\n**\u89E3\u6790\u5668\u7684\u4F5C\u7528**\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002\\n\\n### 1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668\\n\\n\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F**\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790**\uFF1A\\n\\n- **\u8BCD\u6CD5\u5206\u6790**\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002\\n- **\u8BED\u6CD5\u5206\u6790**\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002\\n\\n```sql\\n\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\\n\\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\\n1 INTEGER \u6574\u6570 1\\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\\n2 INTEGER \u6574\u6570 2\\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\\n3 INTEGER \u6574\u6570 3\\n\\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\\n\\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\\n [+]\\n / \\\\\\n 1 [*]\\n / \\\\\\n 2 3\\n```\\n\\n\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A\\n\\n- **\u65B9\u5F0F\u4E00**\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002\\n- **\u65B9\u5F0F\u4E8C**\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002\\n\\n### 1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668\\n\\nSQL \u89E3\u6790\u5668\u662F**\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6**\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002\\n\\n```sql\\n# \u67E5\u8BE2\\nSELECT * FROM users WHERE status = \'active\';\\n# \u63D2\u5165\\nINSERT INTO customers (name, email) VALUES (\'\u674E\u56DB\', \'lisi@example.com\');\\n# \u66F4\u65B0\\nUPDATE products SET price = 5999 WHERE id = 1001;\\n# \u5220\u9664\\nDELETE FROM logs WHERE create_time < \'2024-01-01\';\\n# \u521B\u5EFA\u8868\\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\\n# \u4FEE\u6539\u8868\\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\\n# \u5220\u9664\u8868\\nDROP TABLE temp_data;\\n# \u6388\u6743\\nGRANT SELECT ON customers TO user1;\\n```\\n\\n### 1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E\\n\\n\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A\\n\\n```text\\nSQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\\n```\\n\\n\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A\\n\\n```text\\nSQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\\n```\\n\\n**\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D**\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002\\n\\n---\\n\\n## \u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848\\n\\n\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002\\n\\n![\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD](assets/01-parser-market.png)\\n\\n### 2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4\\n\\n| \u7279\u6027 | JavaCC | ANTLR 3 | ANTLR 4 |\\n|---|---|---|---|\\n| \u8BED\u6CD5\u5206\u6790\u7B97\u6CD5 | LL(k) | LL(*) | LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09 |\\n| \u5DE6\u9012\u5F52\u5904\u7406 | \u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362 | \u9700\u624B\u52A8\u8F6C\u6362 | \u81EA\u52A8\u5904\u7406 |\\n| \u76EE\u6807\u8BED\u8A00 | Java | Java\u3001C#\u3001Python \u7B49 | \u540C ANTLR 3 |\\n| \u9519\u8BEF\u5904\u7406 | \u57FA\u7840\u9519\u8BEF\u6062\u590D | \u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D | \u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD |\\n| \u8BED\u6CD5\u590D\u6742\u5EA6 | \u7B80\u5355\u76F4\u89C2 | \u8F83\u590D\u6742 | \u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09 |\\n| \u5E94\u7528\u573A\u666F | \u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2 | \u4E2D\u5927\u578B\u9879\u76EE | \u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5 |\\n\\n### 2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec\\n\\n\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A\\n\\n- **Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09**\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002\\n- **hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09**\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002\\n\\n### 2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid\\n\\n- **JSqlParser**\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 `select` \u2192 `SelectStatement`\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 **API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31**\u3002\\n- **Druid**\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F**\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09**\uFF0C\u5E76\u4E14**\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55**\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002\\n\\n### 2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA\\n\\n| \u5DE5\u5177 | \u4F9D\u8D56\u5DE5\u5177 | \u89E3\u6790 SQL \u80FD\u529B | \u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F | \u4F18\u7F3A\u70B9 |\\n|---|---|---|---|---|\\n| JavaCC | \u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219 | \u65E0 | \u65E0 | \u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219 |\\n| ANTLR4 | \u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219 | \u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D | \u65E0 | \u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB |\\n| Calcite | \u57FA\u4E8E JavaCC | \u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31 | \u6709 | \u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927 |\\n| hive-exec | \u57FA\u4E8E ANTLR3 | \u4EC5 Hive\u3001Spark | \u65E0 | \u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90 |\\n| JSqlParser | \u57FA\u4E8E JavaCC | \u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00 | \u6709 | API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42 |\\n| **Druid** | \u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6 | \u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49 | **\u6709\uFF08\u6781\u5F3A\uFF09** | \u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6 |\\n\\n\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 `Insert`\u3001`Select`\u3001`Update`\u3001`Delete` \u7B49\u7ED3\u6784\u3002\\n\\n**\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002** \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002\\n\\n### 2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4\\n\\nANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811**\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB**\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002\\n\\n---\\n\\n## \u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4\\n\\n### 3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218\\n\\n\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A\\n\\n```sql\\n\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\\n\\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\\n\\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\\n \u5B9E\u73B0\uFF1Acalcite\\n\\n\u5B9E\u65F6 streamparser\\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n\\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\\n```\\n\\n\u6838\u5FC3\u95EE\u9898\u662F\uFF1A**\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11**\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002\\n\\n### 3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784\\n\\n\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002\\n\\n![\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784](assets/02-legacy-architecture.png)\\n\\n\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A\\n\\n**\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650**\\n\\n1. \u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B\\n2. \u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002\\n\\n**\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0**\\n\\n1. \u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B\\n2. **\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811**\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B\\n3. \u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002\\n\\n> \u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002\\n\\n![Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22](assets/03-calcite-layered-article.png)\\n\\n### 3.3 \u4E3B\u8981\u95EE\u9898\\n\\n1. **\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31**\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B\\n2. **\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE**\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F `if` \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B\\n3. **\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8**\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002\\n\\n---\\n\\n## \u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42\\n\\n\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A**\u8BED\u6CD5\u89E3\u6790\u5C42** \u4E0E **\u4E1A\u52A1\u89E3\u6790\u5C42**\u3002\\n\\n### 4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09\\n\\n![\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42](assets/04-druid-syntax-layer.png)\\n\\n\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A\\n\\n![Druid \u5206\u5C42\u7ED3\u6784\u7C7B](assets/05-druid-layer-structure.png)\\n\\n```java\\n// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\\nSQLStatement statement = parser.parseStatement();\\n\\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\\nDorisStatementParser statementParser = new DorisStatementParser(sql);\\nSQLStatement sqlStatement = statementParser.parseStatement();\\n```\\n\\n### 4.2 \u4E1A\u52A1\u89E3\u6790\u5C42\\n\\n- **\u89E3\u6790\u5C42**\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B\\n- **\u5E94\u7528\u5C42**\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002\\n\\n![\u4E1A\u52A1\u89E3\u6790\u5206\u5C42](assets/06-business-layer.png)\\n\\n\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A\\n\\n![\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6](assets/07-application-components.png)\\n\\n\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F `BaseXxxClient`\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A\\n\\n![\u7EE7\u627F BaseXxxClient \u6269\u5C55](assets/08-inherit-baseclient.png)\\n\\n\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 `XxxSqlParser` \u4E2D\u6CE8\u518C\uFF1A\\n\\n![\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client](assets/09-register-client.png)\\n\\n\u793A\u4F8B\uFF1A\\n\\n```java\\n// \u51C6\u5907 SQL\\nString sql = getSql();\\n\\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\\n\\n// 2.1\u3001\u89E3\u6790\u8868\\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\\n\\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\\n\\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\\n\\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\\nSet functions = sqlParser.parseFunction(sql);\\n```\\n\\n### 4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0\\n\\n\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A\\n\\n![\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0](assets/10-after-refactor.png)\\n\\n---\\n\\n## \u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0\\n\\n\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002\\n\\n**\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B**\uFF1A`insert into/overwrite ... select`\u3001`create ... select`\u3001`with as ... insert`\u3002\\n\\n### 5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n\\n\u6838\u5FC3\u601D\u8DEF\u662F**\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868**\u3002\\n\\n\u4EE5\u4E00\u6761 `insert select` \u4E3A\u4F8B\uFF1A\\n\\n```sql\\ninsert into new_table (id, name)\\nselect a.id as aid, b.name as bname\\nfrom old_table as a\\nleft join old_table2 b on a.id = b.id\\n```\\n\\n1. \u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A`insert` \u76EE\u6807\u7AEF\u3001`select` \u6765\u6E90\u7AEF\uFF1B\\n2. \u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A\\n\\n```text\\n# \u76EE\u6807\u7AEF\\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\\n id id new_table\\n name name new_table\\n\\n# \u6765\u6E90\u7AEF\\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\\n id aid old_table\\n name bname old_table2\\n```\\n\\n3. \u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A\\n\\n```text\\n# \u7B2C\u4E00\u6761\\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\\n# \u7B2C\u4E8C\u6761\\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\\n```\\n\\n\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002\\n\\n\u5BF9\u4E8E `with as` \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 `()` \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E**\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5**\u7684\u573A\u666F\uFF08\u5982 `concat(t1.name, t2.name)`\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 `,` \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002\\n\\n### 5.2 \u8868\u8840\u7F18\u89E3\u6790\\n\\n\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A `select` \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E `insert` \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002\\n\\n### 5.3 \u8868\u89E3\u6790\\n\\n\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08`select`\u3001`update`\u3001`delete`\u3001`insert`\u3001`drop`\u3001`rename` \u7B49\uFF09\u3002\\n\\n### 5.4 \u51FD\u6570\u89E3\u6790\\n\\n\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 **Visitor \u6A21\u5F0F**\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A\\n\\n![\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790](assets/11-function-visitor.png)\\n\\n### 5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B\\n\\n- **SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09**\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002\\n- **\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL**\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002\\n\\n---\\n\\n## \u516D\u3001SqlParserX \u7684\u8BDE\u751F\\n\\n\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A**\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F**\\n\\n\u4E8E\u662F\u6709\u4E86 **SqlParserX** \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C**\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790**\u7684\u5F00\u6E90\u9879\u76EE\u3002\\n\\n### 6.1 \u53CC\u5C42\u67B6\u6784\\n\\nSqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A\\n\\n```text\\nSqlParserX\uFF08\u6839 Reactor\uFF09\\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\\n```\\n\\n- **\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08`sqlparserx-syntax`\uFF09**\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B\\n- **\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08`sqlparserx-core`\uFF09**\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002\\n\\n\u4E24\u5C42\u4EE5 `DbType + SQLStatement AST` \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C**\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST**\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 [\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1](https://github.com/DTStack/SqlParserX/blob/master/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1.md)\u3002\\n\\n### 6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid\\n\\n\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A**\u5B98\u65B9 Druid 1.2.28**\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C**\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898**\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002\\n\\n### 6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB\\n\\nSqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A\\n\\n- [\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1](/docs/about/architecture)\\n- [\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1](https://github.com/DTStack/SqlParserX/blob/master/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1.md)\\n- [Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5](https://github.com/DTStack/SqlParserX/blob/master/docs/01\u3001SQL\u8BED\u6CD5\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/Druid\u7248\u672C\u4E0ESQL\u8BED\u6CD5\u652F\u6301\u60C5\u51B5.md)\\n- [\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09](https://github.com/DTStack/SqlParserX/tree/master/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5)\\n- [\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357](https://github.com/DTStack/SqlParserX/blob/master/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6587\u6863/SqlParserX\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357.md)\\n\\n### 6.4 \u76EE\u6807\\n\\n- \u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C**\u5B8C\u5168\u57FA\u4E8E Druid** \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B\\n- **\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX**\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B\\n- \u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 `DbType` \u4E0E AST \u5BF9\u9F50\u3002\\n\\n---\\n\\n## \u4E03\u3001\u7ED3\u8BED\\n\\n\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A\\n\\n> **\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002**\\n\\n\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002\\n\\n---\\n\\n> \u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28\\n>\\n> \u672C\u6587\u56FE\u7247\u4F4D\u4E8E `assets/` \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"}]}}')}}]); \ No newline at end of file diff --git a/assets/js/26f3b9ac.58e5a0a2.js b/assets/js/26f3b9ac.58e5a0a2.js deleted file mode 100644 index 49c1905..0000000 --- a/assets/js/26f3b9ac.58e5a0a2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5342"],{1265(e,r,t){t.r(r),t.d(r,{metadata:()=>a,default:()=>d,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>o});var a=JSON.parse('{"id":"core/parameter-compile","title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","description":"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL","source":"@site/versioned_docs/version-1.0/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/docs/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/parameter-compile.md","tags":[],"version":"1.0","sidebarPosition":6,"frontMatter":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","description":"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL","sidebar_label":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","sidebar_position":6},"sidebar":"docs","previous":{"title":"\u51FD\u6570\u89E3\u6790","permalink":"/SqlParserX/docs/core/function-parse"},"next":{"title":"\u8D21\u732E\u6307\u5357","permalink":"/SqlParserX/docs/contributing"}}'),s=t(4848),n=t(8453);let l={title:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",description:"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL",sidebar_label:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",sidebar_position:6},i="\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",o={},c=[{value:"\u8FD4\u56DE\u5185\u5BB9",id:"\u8FD4\u56DE\u5185\u5BB9",level:2}];function p(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",children:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1"})}),"\n",(0,s.jsxs)(r.p,{children:["SqlParserX \u53EF\u8BC6\u522B SELECT \u4E2D\u7684 ",(0,s.jsx)(r.code,{children:"${\u53D8\u91CF}"}),"\uFF0C\u8FD4\u56DE\u8F93\u5165\u53C2\u6570\u548C\u8F93\u51FA\u5B57\u6BB5\uFF1B\u4F20\u5165\u53C2\u6570\u503C\u540E\uFF0C\u53EF\u751F\u6210 JDBC ",(0,s.jsx)(r.code,{children:"?"})," \u5360\u4F4D\u7B26 SQL \u4E0E\u6309\u51FA\u73B0\u987A\u5E8F\u6392\u5217\u7684\u7ED1\u5B9A\u503C\u3002"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="ParameterCompileDemo.java"',children:'import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;\nimport com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.parameter.vo.ParseParameterResult;\nimport com.dtstack.sqlparserx.core.parser.base.parameter.vo.PrepareCompileResult;\n\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.Map;\n\nISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\n// \u7B2C\u4E00\u6B65\uFF1A\u63D0\u53D6\u8F93\u5165\u53C2\u6570\u4E0E\u8F93\u51FA\u5B57\u6BB5\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\nparsed.getInputParams().forEach(param ->\n System.out.println(param.getName() + " / " + param.getSqlPart()));\n\n// \u7B2C\u4E8C\u6B65\uFF1A\u4F20\u5165\u53C2\u6570\u503C\u5E76\u751F\u6210\u9884\u7F16\u8BD1 SQL\nMap values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,s.jsx)(r.p,{children:"\u8F93\u51FA\u793A\u4F8B\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,s.jsx)(r.h2,{id:"\u8FD4\u56DE\u5185\u5BB9",children:"\u8FD4\u56DE\u5185\u5BB9"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u9636\u6BB5"}),(0,s.jsx)(r.th,{children:"\u8FD4\u56DE\u5185\u5BB9"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u53C2\u6570\u63D0\u53D6"}),(0,s.jsx)(r.td,{children:"\u8F93\u5165\u53C2\u6570\u540D\u79F0\u3001\u7C7B\u578B\u3001\u662F\u5426\u5FC5\u586B\u3001\u9ED8\u8BA4\u503C\u3001SQL \u7247\u6BB5\u4EE5\u53CA\u8F93\u51FA\u5B57\u6BB5"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u9884\u7F16\u8BD1"}),(0,s.jsx)(r.td,{children:"\u683C\u5F0F\u5316\u540E\u7684\u5360\u4F4D\u7B26 SQL \u4E0E\u6709\u5E8F\u7ED1\u5B9A\u503C\u5217\u8868"})]})]})]}),"\n",(0,s.jsx)(r.p,{children:"\u5F53\u524D\u901A\u7528\u5B9E\u73B0\u9762\u5411 SELECT\uFF1B\u6392\u5E8F\u3001\u5206\u7EC4\u7B49\u6807\u8BC6\u7B26\u4F4D\u7F6E\u7684\u53D8\u91CF\u4F1A\u4EE5\u5185\u8054\u65B9\u5F0F\u5904\u7406\u3002"})]})}function d(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453(e,r,t){t.d(r,{R:()=>l,x:()=>i});var a=t(6540);let s={},n=a.createContext(s);function l(e){let r=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),a.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/26f3b9ac.6771eee5.js b/assets/js/26f3b9ac.6771eee5.js new file mode 100644 index 0000000..d1c6c5f --- /dev/null +++ b/assets/js/26f3b9ac.6771eee5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5342"],{1265(e,r,t){t.r(r),t.d(r,{metadata:()=>a,default:()=>d,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>o});var a=JSON.parse('{"id":"core/parameter-compile","title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","description":"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL","source":"@site/versioned_docs/version-1.0/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/docs/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/parameter-compile.md","tags":[],"version":"1.0","sidebarPosition":6,"frontMatter":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","description":"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL","sidebar_label":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","sidebar_position":6},"sidebar":"docs","previous":{"title":"\u51FD\u6570\u89E3\u6790","permalink":"/SqlParserX/docs/core/function-parse"},"next":{"title":"\u8D21\u732E\u6307\u5357","permalink":"/SqlParserX/docs/contributing"}}'),s=t(4848),n=t(8453);let l={title:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",description:"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL",sidebar_label:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",sidebar_position:6},i="\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",o={},c=[{value:"\u8FD4\u56DE\u5185\u5BB9",id:"\u8FD4\u56DE\u5185\u5BB9",level:2}];function p(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",children:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1"})}),"\n",(0,s.jsxs)(r.p,{children:["SqlParserX \u53EF\u8BC6\u522B SELECT \u4E2D\u7684 ",(0,s.jsx)(r.code,{children:"${\u53D8\u91CF}"}),"\uFF0C\u8FD4\u56DE\u8F93\u5165\u53C2\u6570\u548C\u8F93\u51FA\u5B57\u6BB5\uFF1B\u4F20\u5165\u53C2\u6570\u503C\u540E\uFF0C\u53EF\u751F\u6210 JDBC ",(0,s.jsx)(r.code,{children:"?"})," \u5360\u4F4D\u7B26 SQL \u4E0E\u6309\u51FA\u73B0\u987A\u5E8F\u6392\u5217\u7684\u7ED1\u5B9A\u503C\u3002"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="ParameterCompileDemo.java"',children:'import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;\nimport com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.parameter.vo.ParseParameterResult;\nimport com.dtstack.sqlparserx.core.parser.base.parameter.vo.PrepareCompileResult;\n\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.Map;\n\nISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\n// \u7B2C\u4E00\u6B65\uFF1A\u63D0\u53D6\u8F93\u5165\u53C2\u6570\u4E0E\u8F93\u51FA\u5B57\u6BB5\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\nparsed.getInputParams().forEach(param ->\n System.out.println(param.getName() + " / " + param.getSqlPart()));\n\n// \u7B2C\u4E8C\u6B65\uFF1A\u4F20\u5165\u53C2\u6570\u503C\u5E76\u751F\u6210\u9884\u7F16\u8BD1 SQL\nMap values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,s.jsx)(r.p,{children:"\u8F93\u51FA\u793A\u4F8B\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,s.jsx)(r.h2,{id:"\u8FD4\u56DE\u5185\u5BB9",children:"\u8FD4\u56DE\u5185\u5BB9"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u9636\u6BB5"}),(0,s.jsx)(r.th,{children:"\u8FD4\u56DE\u5185\u5BB9"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u53C2\u6570\u63D0\u53D6"}),(0,s.jsx)(r.td,{children:"\u8F93\u5165\u53C2\u6570\u540D\u79F0\u3001\u7C7B\u578B\u3001\u662F\u5426\u5FC5\u586B\u3001\u9ED8\u8BA4\u503C\u3001SQL \u7247\u6BB5\u4EE5\u53CA\u8F93\u51FA\u5B57\u6BB5"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u9884\u7F16\u8BD1"}),(0,s.jsx)(r.td,{children:"\u683C\u5F0F\u5316\u540E\u7684\u5360\u4F4D\u7B26 SQL \u4E0E\u6709\u5E8F\u7ED1\u5B9A\u503C\u5217\u8868"})]})]})]}),"\n",(0,s.jsx)(r.p,{children:"\u5F53\u524D\u901A\u7528\u5B9E\u73B0\u9762\u5411 SELECT\uFF1B\u6392\u5E8F\u3001\u5206\u7EC4\u7B49\u6807\u8BC6\u7B26\u4F4D\u7F6E\u7684\u53D8\u91CF\u4F1A\u4EE5\u5185\u8054\u65B9\u5F0F\u5904\u7406\u3002"})]})}function d(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453(e,r,t){t.d(r,{R:()=>l,x:()=>i});var a=t(6540);let s={},n=a.createContext(s);function l(e){let r=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),a.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/37f774df.88809e17.js b/assets/js/37f774df.88809e17.js new file mode 100644 index 0000000..fa605f9 --- /dev/null +++ b/assets/js/37f774df.88809e17.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4796"],{7058(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>d,contentTitle:()=>a,toc:()=>i,assets:()=>c});var n=JSON.parse('{"id":"core/table-parse","title":"\u8868\u89E3\u6790","description":"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027","source":"@site/versioned_docs/version-1.0/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/docs/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/table-parse.md","tags":[],"version":"1.0","sidebarPosition":3,"frontMatter":{"title":"\u8868\u89E3\u6790","description":"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027","sidebar_label":"\u8868\u89E3\u6790","sidebar_position":3},"sidebar":"docs","previous":{"title":"\u8868\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/core/table-lineage"},"next":{"title":"\u51FD\u6570\u89E3\u6790","permalink":"/SqlParserX/docs/core/function-parse"}}'),t=s(4848),l=s(8453);let d={title:"\u8868\u89E3\u6790",description:"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027",sidebar_label:"\u8868\u89E3\u6790",sidebar_position:3},a="\u8868\u89E3\u6790",c={},i=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u8868\u89E3\u6790",children:"\u8868\u89E3\u6790"})}),"\n",(0,t.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,t.jsxs)(r.p,{children:["\u540C\u6837\u6CBF\u7528\u5B98\u65B9 ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u6F14\u793A\u300C\u89E3\u6790\u771F\u5B9E\u8868\u300D\u4E0E\u300C\u89E3\u6790\u5EFA\u8868\u8BED\u53E5\u300D\uFF1A"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790 SQL \u4E2D\u7684\u771F\u5B9E\u8868\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("\u4E3B\u8868: " + tableResult.getMainTable().getName());\n System.out.println("\u6240\u6709\u8868: " + tableResult.getAllTableName());\n\n // 3\u3001\u89E3\u6790 CREATE TABLE \u8BED\u53E5\u7ED3\u6784\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("\u5EFA\u8868\u540D: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("\u5B57\u6BB5\u6570: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"\u4E3B\u8868: users\n\u6240\u6709\u8868: [user_order_summary, users, orders]\n\u5EFA\u8868\u540D: null.user_order_summary\n\u5B57\u6BB5\u6570: 4\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,t.jsxs)(r.p,{children:["\u4ECE SQL \u6587\u672C\u4E2D\u8BC6\u522B",(0,t.jsx)(r.strong,{children:"\u771F\u5B9E\u8868"}),"\uFF0C\u5305\u62EC\u666E\u901A\u67E5\u8BE2\u7528\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"})," \u5B9A\u4E49\u3001\u5206\u533A\u4E0E\u8868\u5C5E\u6027\u7B49\u3002"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 \u6536\u96C6\u8868 / CTE / \u5EFA\u8868\u7ED3\u6784 / \u5206\u533A / \u5C5E\u6027\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u9879\u76EE"}),(0,t.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),"\u3001",(0,t.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,t.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ParseTableResult"}),"\u3001",(0,t.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8986\u76D6\u5BF9\u8C61"}),(0,t.jsxs)(r.td,{children:["\u67E5\u8BE2\u7528\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),"\u3001\u5206\u533A\u3001\u8868\u5C5E\u6027"]})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u67E5\u8BE2\u7528\u8868\u8BC6\u522B"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CTE \u8BC6\u522B"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"WITH \u5B9A\u4E49\u7684\u4E34\u65F6\u8868"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u8868\u540D\u3001\u5B57\u6BB5\u3001\u7C7B\u578B\u3001\u6CE8\u91CA"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5206\u533A\u4E0E\u8868\u5C5E\u6027"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u5404\u6570\u636E\u6E90\u65B9\u8A00\u5DEE\u5F02\u5185\u805A\u5728\u8BED\u6CD5\u5C42"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"catalog.db.table"})," \u591A\u7EA7\u547D\u540D"]}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u591A catalog \u573A\u666F"})]})]})]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["\u66F4\u591A\u8868\u89E3\u6790\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u8868\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>d,x:()=>a});var n=s(6540);let t={},l=n.createContext(t);function d(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/37f774df.a36f3fde.js b/assets/js/37f774df.a36f3fde.js deleted file mode 100644 index 4c86139..0000000 --- a/assets/js/37f774df.a36f3fde.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4796"],{7058(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>d,contentTitle:()=>a,toc:()=>i,assets:()=>c});var n=JSON.parse('{"id":"core/table-parse","title":"\u8868\u89E3\u6790","description":"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027","source":"@site/versioned_docs/version-1.0/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/docs/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/table-parse.md","tags":[],"version":"1.0","sidebarPosition":3,"frontMatter":{"title":"\u8868\u89E3\u6790","description":"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027","sidebar_label":"\u8868\u89E3\u6790","sidebar_position":3},"sidebar":"docs","previous":{"title":"\u8868\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/core/table-lineage"},"next":{"title":"\u51FD\u6570\u89E3\u6790","permalink":"/SqlParserX/docs/core/function-parse"}}'),t=s(4848),l=s(8453);let d={title:"\u8868\u89E3\u6790",description:"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027",sidebar_label:"\u8868\u89E3\u6790",sidebar_position:3},a="\u8868\u89E3\u6790",c={},i=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u8868\u89E3\u6790",children:"\u8868\u89E3\u6790"})}),"\n",(0,t.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,t.jsxs)(r.p,{children:["\u540C\u6837\u6CBF\u7528\u5B98\u65B9 ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u6F14\u793A\u300C\u89E3\u6790\u771F\u5B9E\u8868\u300D\u4E0E\u300C\u89E3\u6790\u5EFA\u8868\u8BED\u53E5\u300D\uFF1A"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790 SQL \u4E2D\u7684\u771F\u5B9E\u8868\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("\u4E3B\u8868: " + tableResult.getMainTable().getName());\n System.out.println("\u6240\u6709\u8868: " + tableResult.getAllTableName());\n\n // 3\u3001\u89E3\u6790 CREATE TABLE \u8BED\u53E5\u7ED3\u6784\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("\u5EFA\u8868\u540D: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("\u5B57\u6BB5\u6570: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"\u4E3B\u8868: users\n\u6240\u6709\u8868: [user_order_summary, users, orders]\n\u5EFA\u8868\u540D: null.user_order_summary\n\u5B57\u6BB5\u6570: 4\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,t.jsxs)(r.p,{children:["\u4ECE SQL \u6587\u672C\u4E2D\u8BC6\u522B",(0,t.jsx)(r.strong,{children:"\u771F\u5B9E\u8868"}),"\uFF0C\u5305\u62EC\u666E\u901A\u67E5\u8BE2\u7528\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"})," \u5B9A\u4E49\u3001\u5206\u533A\u4E0E\u8868\u5C5E\u6027\u7B49\u3002"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 \u6536\u96C6\u8868 / CTE / \u5EFA\u8868\u7ED3\u6784 / \u5206\u533A / \u5C5E\u6027\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u9879\u76EE"}),(0,t.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),"\u3001",(0,t.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,t.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ParseTableResult"}),"\u3001",(0,t.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8986\u76D6\u5BF9\u8C61"}),(0,t.jsxs)(r.td,{children:["\u67E5\u8BE2\u7528\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),"\u3001\u5206\u533A\u3001\u8868\u5C5E\u6027"]})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u67E5\u8BE2\u7528\u8868\u8BC6\u522B"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CTE \u8BC6\u522B"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"WITH \u5B9A\u4E49\u7684\u4E34\u65F6\u8868"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u8868\u540D\u3001\u5B57\u6BB5\u3001\u7C7B\u578B\u3001\u6CE8\u91CA"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5206\u533A\u4E0E\u8868\u5C5E\u6027"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u5404\u6570\u636E\u6E90\u65B9\u8A00\u5DEE\u5F02\u5185\u805A\u5728\u8BED\u6CD5\u5C42"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"catalog.db.table"})," \u591A\u7EA7\u547D\u540D"]}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u591A catalog \u573A\u666F"})]})]})]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["\u66F4\u591A\u8868\u89E3\u6790\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u8868\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>d,x:()=>a});var n=s(6540);let t={},l=n.createContext(t);function d(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4277cc0d.0c7523d7.js b/assets/js/4277cc0d.0c7523d7.js deleted file mode 100644 index 85eed50..0000000 --- a/assets/js/4277cc0d.0c7523d7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3658"],{3975(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var s=JSON.parse('{"id":"core/function-parse","title":"\u51FD\u6570\u89E3\u6790","description":"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587","source":"@site/versioned_docs/version-1.0/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/docs/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/function-parse.md","tags":[],"version":"1.0","sidebarPosition":4,"frontMatter":{"title":"\u51FD\u6570\u89E3\u6790","description":"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587","sidebar_label":"\u51FD\u6570\u89E3\u6790","sidebar_position":4},"sidebar":"docs","previous":{"title":"\u8868\u89E3\u6790","permalink":"/SqlParserX/docs/core/table-parse"},"next":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","permalink":"/SqlParserX/docs/core/parameter-compile"}}'),t=n(4848),d=n(8453);let c={title:"\u51FD\u6570\u89E3\u6790",description:"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587",sidebar_label:"\u51FD\u6570\u89E3\u6790",sidebar_position:4},i="\u51FD\u6570\u89E3\u6790",l={},o=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function a(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u51FD\u6570\u89E3\u6790",children:"\u51FD\u6570\u89E3\u6790"})}),"\n",(0,t.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,t.jsxs)(r.p,{children:["\u6CBF\u7528\u5B98\u65B9 ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u63D0\u53D6 SQL \u4E2D\u51FA\u73B0\u7684\u51FD\u6570\u96C6\u5408\uFF1A"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790 SQL \u4E2D\u51FA\u73B0\u7684\u51FD\u6570\n Set functions = parser.parseFunction(sql);\n\n // 3\u3001\u8BFB\u53D6\u7ED3\u679C\n System.out.println("\u51FD\u6570\u96C6\u5408: " + functions);\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"\u51FD\u6570\u96C6\u5408: [sum, count]\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,t.jsxs)(r.p,{children:["\u4ECE SQL \u4E2D\u63D0\u53D6",(0,t.jsx)(r.strong,{children:"\u51FD\u6570\u8C03\u7528"}),"\u4FE1\u606F\uFF0C\u8FD4\u56DE\u53BB\u91CD\u540E\u7684\u51FD\u6570\u540D\u96C6\u5408\uFF0C\u4FBF\u4E8E\u505A\u51FD\u6570\u7EA7\u6CBB\u7406\u4E0E\u4F9D\u8D56\u5206\u6790\u3002"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 \u904D\u5386 AST \u6536\u96C6\u51FD\u6570\u8868\u8FBE\u5F0F\n \u2192 Set \u51FD\u6570\u96C6\u5408\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u9879\u76EE"}),(0,t.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"Set"}),"\uFF08\u51FD\u6570\u540D\u96C6\u5408\uFF0C\u7EDF\u4E00\u5C0F\u5199\uFF09"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8986\u76D6\u8303\u56F4"}),(0,t.jsx)(r.td,{children:"\u5185\u7F6E\u51FD\u6570\u3001\u805A\u5408\u51FD\u6570\u3001\u7A97\u53E3\u51FD\u6570\u3001\u81EA\u5B9A\u4E49\u51FD\u6570"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u666E\u901A\u51FD\u6570\u8C03\u7528"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"substr(name, 1, 3)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u805A\u5408\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"sum"}),"\u3001",(0,t.jsx)(r.code,{children:"count"}),"\u3001",(0,t.jsx)(r.code,{children:"max"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7A97\u53E3\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"row_number() over(...)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5D4C\u5957\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u9012\u5F52\u6536\u96C6\u5185\u5916\u5C42\u51FD\u6570"})]})]})]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["\u66F4\u591A\u51FD\u6570\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u51FD\u6570\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},8453(e,r,n){n.d(r,{R:()=>c,x:()=>i});var s=n(6540);let t={},d=s.createContext(t);function c(e){let r=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4277cc0d.3e705d44.js b/assets/js/4277cc0d.3e705d44.js new file mode 100644 index 0000000..9a141b5 --- /dev/null +++ b/assets/js/4277cc0d.3e705d44.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3658"],{3975(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>c,contentTitle:()=>i,toc:()=>o,assets:()=>l});var s=JSON.parse('{"id":"core/function-parse","title":"\u51FD\u6570\u89E3\u6790","description":"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587","source":"@site/versioned_docs/version-1.0/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/docs/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/function-parse.md","tags":[],"version":"1.0","sidebarPosition":4,"frontMatter":{"title":"\u51FD\u6570\u89E3\u6790","description":"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587","sidebar_label":"\u51FD\u6570\u89E3\u6790","sidebar_position":4},"sidebar":"docs","previous":{"title":"\u8868\u89E3\u6790","permalink":"/SqlParserX/docs/core/table-parse"},"next":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","permalink":"/SqlParserX/docs/core/parameter-compile"}}'),t=n(4848),d=n(8453);let c={title:"\u51FD\u6570\u89E3\u6790",description:"\u63D0\u53D6 SQL \u4E2D\u4F7F\u7528\u7684\u51FD\u6570\u53CA\u5176\u53C2\u6570\u4E0E\u4E0A\u4E0B\u6587",sidebar_label:"\u51FD\u6570\u89E3\u6790",sidebar_position:4},i="\u51FD\u6570\u89E3\u6790",l={},o=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function a(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u51FD\u6570\u89E3\u6790",children:"\u51FD\u6570\u89E3\u6790"})}),"\n",(0,t.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,t.jsxs)(r.p,{children:["\u6CBF\u7528\u5B98\u65B9 ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u63D0\u53D6 SQL \u4E2D\u51FA\u73B0\u7684\u51FD\u6570\u96C6\u5408\uFF1A"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790 SQL \u4E2D\u51FA\u73B0\u7684\u51FD\u6570\n Set functions = parser.parseFunction(sql);\n\n // 3\u3001\u8BFB\u53D6\u7ED3\u679C\n System.out.println("\u51FD\u6570\u96C6\u5408: " + functions);\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"\u51FD\u6570\u96C6\u5408: [sum, count]\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,t.jsxs)(r.p,{children:["\u4ECE SQL \u4E2D\u63D0\u53D6",(0,t.jsx)(r.strong,{children:"\u51FD\u6570\u8C03\u7528"}),"\u4FE1\u606F\uFF0C\u8FD4\u56DE\u53BB\u91CD\u540E\u7684\u51FD\u6570\u540D\u96C6\u5408\uFF0C\u4FBF\u4E8E\u505A\u51FD\u6570\u7EA7\u6CBB\u7406\u4E0E\u4F9D\u8D56\u5206\u6790\u3002"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 \u904D\u5386 AST \u6536\u96C6\u51FD\u6570\u8868\u8FBE\u5F0F\n \u2192 Set \u51FD\u6570\u96C6\u5408\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u9879\u76EE"}),(0,t.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"Set"}),"\uFF08\u51FD\u6570\u540D\u96C6\u5408\uFF0C\u7EDF\u4E00\u5C0F\u5199\uFF09"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8986\u76D6\u8303\u56F4"}),(0,t.jsx)(r.td,{children:"\u5185\u7F6E\u51FD\u6570\u3001\u805A\u5408\u51FD\u6570\u3001\u7A97\u53E3\u51FD\u6570\u3001\u81EA\u5B9A\u4E49\u51FD\u6570"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u666E\u901A\u51FD\u6570\u8C03\u7528"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"substr(name, 1, 3)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u805A\u5408\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"sum"}),"\u3001",(0,t.jsx)(r.code,{children:"count"}),"\u3001",(0,t.jsx)(r.code,{children:"max"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7A97\u53E3\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsxs)(r.td,{children:["\u5982 ",(0,t.jsx)(r.code,{children:"row_number() over(...)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5D4C\u5957\u51FD\u6570"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u9012\u5F52\u6536\u96C6\u5185\u5916\u5C42\u51FD\u6570"})]})]})]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["\u66F4\u591A\u51FD\u6570\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u51FD\u6570\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},8453(e,r,n){n.d(r,{R:()=>c,x:()=>i});var s=n(6540);let t={},d=s.createContext(t);function c(e){let r=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:c(e.components),s.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4a65a190.8608128b.js b/assets/js/4a65a190.37a16155.js similarity index 83% rename from assets/js/4a65a190.8608128b.js rename to assets/js/4a65a190.37a16155.js index ade551a..1b3be4b 100644 --- a/assets/js/4a65a190.8608128b.js +++ b/assets/js/4a65a190.37a16155.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2705"],{670(e,n,s){s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>a});var r=s(5816),l=s(4848),i=s(8453);let d={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},c,t={authorsImageUrls:[void 0]},a=[{value:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",level:2},{value:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668",id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",level:3},{value:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",level:3},{value:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668",id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",level:3},{value:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",level:3},{value:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848",id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",level:2},{value:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4",id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",level:3},{value:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec",id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",level:3},{value:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid",id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",level:3},{value:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",level:3},{value:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4",id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",level:3},{value:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",level:2},{value:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",level:3},{value:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",level:3},{value:"3.3 \u4E3B\u8981\u95EE\u9898",id:"33-\u4E3B\u8981\u95EE\u9898",level:3},{value:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42",id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",level:2},{value:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09",id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",level:3},{value:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42",id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",level:3},{value:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",level:3},{value:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",level:2},{value:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790",id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",level:3},{value:"5.2 \u8868\u8840\u7F18\u89E3\u6790",id:"52-\u8868\u8840\u7F18\u89E3\u6790",level:3},{value:"5.3 \u8868\u89E3\u6790",id:"53-\u8868\u89E3\u6790",level:3},{value:"5.4 \u51FD\u6570\u89E3\u6790",id:"54-\u51FD\u6570\u89E3\u6790",level:3},{value:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",level:3},{value:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F",id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",level:2},{value:"6.1 \u53CC\u5C42\u67B6\u6784",id:"61-\u53CC\u5C42\u67B6\u6784",level:3},{value:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid",id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",level:3},{value:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",level:3},{value:"6.4 \u76EE\u6807",id:"64-\u76EE\u6807",level:3},{value:"\u4E03\u3001\u7ED3\u8BED",id:"\u4E03\u7ED3\u8BED",level:2}];function h(e){let n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]}),"\n","\n",(0,l.jsx)(n.h2,{id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",children:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668"}),"\n",(0,l.jsx)(n.h3,{id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",children:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F",(0,l.jsx)(n.strong,{children:"\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784"}),"\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F",(0,l.jsx)(n.strong,{children:"\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32"}),"\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 ",(0,l.jsx)(n.code,{children:"x = (a + b) * 3"})," \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 ",(0,l.jsx)(n.code,{children:"a + b"}),"\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 ",(0,l.jsx)(n.code,{children:"x"}),"\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n\n [=]\n / \\\n [x] [*]\n / \\\n [+] [3]\n / \\\n [a] [b]\n\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n [if]\n / \\\n [>] [block]\n / \\ \\\n[x] [0] [=]\n / \\\n [y] [10]\n\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5668\u7684\u4F5C\u7528"}),"\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",children:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F",(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790"}),"\uFF1A"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790"}),"\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u5206\u6790"}),"\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\n\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\n1 INTEGER \u6574\u6570 1\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\n2 INTEGER \u6574\u6570 2\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\n3 INTEGER \u6574\u6570 3\n\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\n\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\n [+]\n / \\\n 1 [*]\n / \\\n 2 3\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E00"}),"\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E8C"}),"\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",children:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["SQL \u89E3\u6790\u5668\u662F",(0,l.jsx)(n.strong,{children:"\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6"}),"\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"# \u67E5\u8BE2\nSELECT * FROM users WHERE status = 'active';\n# \u63D2\u5165\nINSERT INTO customers (name, email) VALUES ('\u674E\u56DB', 'lisi@example.com');\n# \u66F4\u65B0\nUPDATE products SET price = 5999 WHERE id = 1001;\n# \u5220\u9664\nDELETE FROM logs WHERE create_time < '2024-01-01';\n# \u521B\u5EFA\u8868\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\n# \u4FEE\u6539\u8868\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\n# \u5220\u9664\u8868\nDROP TABLE temp_data;\n# \u6388\u6743\nGRANT SELECT ON customers TO user1;\n"})}),"\n",(0,l.jsx)(n.h3,{id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",children:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E"}),"\n",(0,l.jsx)(n.p,{children:"\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D"}),"\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",children:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848"}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD",src:s(3519).A+"",width:"2884",height:"1540"})}),"\n",(0,l.jsx)(n.h3,{id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",children:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u7279\u6027"}),(0,l.jsx)(n.th,{children:"JavaCC"}),(0,l.jsx)(n.th,{children:"ANTLR 3"}),(0,l.jsx)(n.th,{children:"ANTLR 4"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u5206\u6790\u7B97\u6CD5"}),(0,l.jsx)(n.td,{children:"LL(k)"}),(0,l.jsx)(n.td,{children:"LL(*)"}),(0,l.jsx)(n.td,{children:"LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5DE6\u9012\u5F52\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u81EA\u52A8\u5904\u7406"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u76EE\u6807\u8BED\u8A00"}),(0,l.jsx)(n.td,{children:"Java"}),(0,l.jsx)(n.td,{children:"Java\u3001C#\u3001Python \u7B49"}),(0,l.jsx)(n.td,{children:"\u540C ANTLR 3"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9519\u8BEF\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u57FA\u7840\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u590D\u6742\u5EA6"}),(0,l.jsx)(n.td,{children:"\u7B80\u5355\u76F4\u89C2"}),(0,l.jsx)(n.td,{children:"\u8F83\u590D\u6742"}),(0,l.jsx)(n.td,{children:"\u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5E94\u7528\u573A\u666F"}),(0,l.jsx)(n.td,{children:"\u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2"}),(0,l.jsx)(n.td,{children:"\u4E2D\u5927\u578B\u9879\u76EE"}),(0,l.jsx)(n.td,{children:"\u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5"})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",children:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec"}),"\n",(0,l.jsx)(n.p,{children:"\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09"}),"\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09"}),"\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",children:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"JSqlParser"}),"\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"select"})," \u2192 ",(0,l.jsx)(n.code,{children:"SelectStatement"}),"\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 ",(0,l.jsx)(n.strong,{children:"API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31"}),"\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Druid"}),"\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F",(0,l.jsx)(n.strong,{children:"\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09"}),"\uFF0C\u5E76\u4E14",(0,l.jsx)(n.strong,{children:"\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55"}),"\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",children:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u4F9D\u8D56\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u89E3\u6790 SQL \u80FD\u529B"}),(0,l.jsx)(n.th,{children:"\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F"}),(0,l.jsx)(n.th,{children:"\u4F18\u7F3A\u70B9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JavaCC"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"ANTLR4"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Calcite"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"hive-exec"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E ANTLR3"}),(0,l.jsx)(n.td,{children:"\u4EC5 Hive\u3001Spark"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JSqlParser"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Druid"})}),(0,l.jsx)(n.td,{children:"\u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6"}),(0,l.jsx)(n.td,{children:"\u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u6709\uFF08\u6781\u5F3A\uFF09"})}),(0,l.jsx)(n.td,{children:"\u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6"})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:["\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 ",(0,l.jsx)(n.code,{children:"Insert"}),"\u3001",(0,l.jsx)(n.code,{children:"Select"}),"\u3001",(0,l.jsx)(n.code,{children:"Update"}),"\u3001",(0,l.jsx)(n.code,{children:"Delete"})," \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002"})," \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",children:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4"}),"\n",(0,l.jsxs)(n.p,{children:["ANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811",(0,l.jsx)(n.strong,{children:"\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"}),"\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",children:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4"}),"\n",(0,l.jsx)(n.h3,{id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",children:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\n\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\n\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\n \u5B9E\u73B0\uFF1Acalcite\n\n\u5B9E\u65F6 streamparser\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u95EE\u9898\u662F\uFF1A",(0,l.jsx)(n.strong,{children:"\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11"}),"\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",children:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",src:s(6809).A+"",width:"16384",height:"5838"})}),"\n",(0,l.jsx)(n.p,{children:"\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsx)(n.li,{children:"\u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811"}),"\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002"}),"\n"]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22",src:s(3784).A+"",width:"1710",height:"852"})}),"\n",(0,l.jsx)(n.h3,{id:"33-\u4E3B\u8981\u95EE\u9898",children:"3.3 \u4E3B\u8981\u95EE\u9898"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31"}),"\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE"}),"\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F ",(0,l.jsx)(n.code,{children:"if"})," \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8"}),"\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",children:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42"}),"\n",(0,l.jsxs)(n.p,{children:["\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A",(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"})," \u4E0E ",(0,l.jsx)(n.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",children:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42",src:s(3130).A+"",width:"2120",height:"712"})}),"\n",(0,l.jsx)(n.p,{children:"\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Druid \u5206\u5C42\u7ED3\u6784\u7C7B",src:s(4037).A+"",width:"3080",height:"1824"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\nSQLStatement statement = parser.parseStatement();\n\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\nDorisStatementParser statementParser = new DorisStatementParser(sql);\nSQLStatement sqlStatement = statementParser.parseStatement();\n"})}),"\n",(0,l.jsx)(n.h3,{id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",children:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5C42"}),"\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u5E94\u7528\u5C42"}),"\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u4E1A\u52A1\u89E3\u6790\u5206\u5C42",src:s(3042).A+"",width:"3972",height:"2296"})}),"\n",(0,l.jsx)(n.p,{children:"\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6",src:s(4560).A+"",width:"9256",height:"1888"})}),"\n",(0,l.jsxs)(n.p,{children:["\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F ",(0,l.jsx)(n.code,{children:"BaseXxxClient"}),"\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u7EE7\u627F BaseXxxClient \u6269\u5C55",src:s(3694).A+"",width:"2324",height:"1252"})}),"\n",(0,l.jsxs)(n.p,{children:["\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 ",(0,l.jsx)(n.code,{children:"XxxSqlParser"})," \u4E2D\u6CE8\u518C\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client",src:s(3220).A+"",width:"2100",height:"648"})}),"\n",(0,l.jsx)(n.p,{children:"\u793A\u4F8B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u51C6\u5907 SQL\nString sql = getSql();\n\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n// 2.1\u3001\u89E3\u6790\u8868\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\n\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\n\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\n\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\nSet functions = sqlParser.parseFunction(sql);\n"})}),"\n",(0,l.jsx)(n.h3,{id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",children:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",src:s(4778).A+"",width:"5684",height:"2764"})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",children:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002"}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B"}),"\uFF1A",(0,l.jsx)(n.code,{children:"insert into/overwrite ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"create ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"with as ... insert"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\u662F",(0,l.jsx)(n.strong,{children:"\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868"}),"\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EE5\u4E00\u6761 ",(0,l.jsx)(n.code,{children:"insert select"})," \u4E3A\u4F8B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"insert into new_table (id, name)\nselect a.id as aid, b.name as bname\nfrom old_table as a\nleft join old_table2 b on a.id = b.id\n"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u7AEF\u3001",(0,l.jsx)(n.code,{children:"select"})," \u6765\u6E90\u7AEF\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u76EE\u6807\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id id new_table\n name name new_table\n\n# \u6765\u6E90\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id aid old_table\n name bname old_table2\n"})}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsx)(n.li,{children:"\u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u7B2C\u4E00\u6761\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\n# \u7B2C\u4E8C\u6761\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002"}),"\n",(0,l.jsxs)(n.p,{children:["\u5BF9\u4E8E ",(0,l.jsx)(n.code,{children:"with as"})," \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 ",(0,l.jsx)(n.code,{children:"()"})," \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E",(0,l.jsx)(n.strong,{children:"\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5"}),"\u7684\u573A\u666F\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"concat(t1.name, t2.name)"}),"\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 ",(0,l.jsx)(n.code,{children:","})," \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"52-\u8868\u8840\u7F18\u89E3\u6790",children:"5.2 \u8868\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A ",(0,l.jsx)(n.code,{children:"select"})," \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E ",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"53-\u8868\u89E3\u6790",children:"5.3 \u8868\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08",(0,l.jsx)(n.code,{children:"select"}),"\u3001",(0,l.jsx)(n.code,{children:"update"}),"\u3001",(0,l.jsx)(n.code,{children:"delete"}),"\u3001",(0,l.jsx)(n.code,{children:"insert"}),"\u3001",(0,l.jsx)(n.code,{children:"drop"}),"\u3001",(0,l.jsx)(n.code,{children:"rename"})," \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"54-\u51FD\u6570\u89E3\u6790",children:"5.4 \u51FD\u6570\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 ",(0,l.jsx)(n.strong,{children:"Visitor \u6A21\u5F0F"}),"\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790",src:s(593).A+"",width:"2150",height:"1224"})}),"\n",(0,l.jsx)(n.h3,{id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",children:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09"}),"\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL"}),"\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",children:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A",(0,l.jsx)(n.strong,{children:"\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E8E\u662F\u6709\u4E86 ",(0,l.jsx)(n.strong,{children:"SqlParserX"})," \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790"}),"\u7684\u5F00\u6E90\u9879\u76EE\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"61-\u53CC\u5C42\u67B6\u6784",children:"6.1 \u53CC\u5C42\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SqlParserX\uFF08\u6839 Reactor\uFF09\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\n"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002"]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E24\u5C42\u4EE5 ",(0,l.jsx)(n.code,{children:"DbType + SQLStatement AST"})," \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C",(0,l.jsx)(n.strong,{children:"\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST"}),"\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",children:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid"}),"\n",(0,l.jsxs)(n.p,{children:["\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A",(0,l.jsx)(n.strong,{children:"\u5B98\u65B9 Druid 1.2.28"}),"\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C",(0,l.jsx)(n.strong,{children:"\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898"}),"\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",children:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/01%E3%80%81SQL%E8%AF%AD%E6%B3%95%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/Druid%E7%89%88%E6%9C%AC%E4%B8%8ESQL%E8%AF%AD%E6%B3%95%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5.md",children:"Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/tree/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E8%83%BD%E5%8A%9B%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5",children:"\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%96%87%E6%A1%A3/SqlParserX%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%8C%87%E5%8D%97.md",children:"\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357"})}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"64-\u76EE\u6807",children:"6.4 \u76EE\u6807"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid"})," \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX"}),"\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:["\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,l.jsx)(n.code,{children:"DbType"})," \u4E0E AST \u5BF9\u9F50\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E03\u7ED3\u8BED",children:"\u4E03\u3001\u7ED3\u8BED"}),"\n",(0,l.jsx)(n.p,{children:"\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002"})}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u6587\u56FE\u7247\u4F4D\u4E8E ",(0,l.jsx)(n.code,{children:"assets/"})," \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"]}),"\n"]})]})}function x(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},3519(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png"},6809(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png"},3784(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png"},3130(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/04-druid-syntax-layer-815515eac5295f9f772e1beb97f04c11.png"},4037(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/05-druid-layer-structure-5737c5a7826cff1a2874cf2b927ccd34.png"},3042(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png"},4560(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/07-application-components-3fa01967e1605c21791788f2a06212eb.png"},3694(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png"},3220(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/09-register-client-c6216b08439b96af51fda129de838a4e.png"},4778(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/10-after-refactor-c8b89cd447d9cea7894354ffea6a2fdf.png"},593(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/11-function-visitor-43a9830686ce367f536545b5691f504f.png"},8453(e,n,s){s.d(n,{R:()=>d,x:()=>c});var r=s(6540);let l={},i=r.createContext(l);function d(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),r.createElement(i.Provider,{value:n},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2705"],{670(e,n,s){s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>a});var r=s(5816),l=s(4848),i=s(8453);let d={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},c,t={authorsImageUrls:[void 0]},a=[{value:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",level:2},{value:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668",id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",level:3},{value:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",level:3},{value:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668",id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",level:3},{value:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",level:3},{value:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848",id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",level:2},{value:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4",id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",level:3},{value:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec",id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",level:3},{value:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid",id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",level:3},{value:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",level:3},{value:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4",id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",level:3},{value:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",level:2},{value:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",level:3},{value:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",level:3},{value:"3.3 \u4E3B\u8981\u95EE\u9898",id:"33-\u4E3B\u8981\u95EE\u9898",level:3},{value:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42",id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",level:2},{value:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09",id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",level:3},{value:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42",id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",level:3},{value:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",level:3},{value:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",level:2},{value:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790",id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",level:3},{value:"5.2 \u8868\u8840\u7F18\u89E3\u6790",id:"52-\u8868\u8840\u7F18\u89E3\u6790",level:3},{value:"5.3 \u8868\u89E3\u6790",id:"53-\u8868\u89E3\u6790",level:3},{value:"5.4 \u51FD\u6570\u89E3\u6790",id:"54-\u51FD\u6570\u89E3\u6790",level:3},{value:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",level:3},{value:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F",id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",level:2},{value:"6.1 \u53CC\u5C42\u67B6\u6784",id:"61-\u53CC\u5C42\u67B6\u6784",level:3},{value:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid",id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",level:3},{value:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",level:3},{value:"6.4 \u76EE\u6807",id:"64-\u76EE\u6807",level:3},{value:"\u4E03\u3001\u7ED3\u8BED",id:"\u4E03\u7ED3\u8BED",level:2}];function h(e){let n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]}),"\n","\n",(0,l.jsx)(n.h2,{id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",children:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668"}),"\n",(0,l.jsx)(n.h3,{id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",children:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F",(0,l.jsx)(n.strong,{children:"\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784"}),"\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F",(0,l.jsx)(n.strong,{children:"\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32"}),"\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 ",(0,l.jsx)(n.code,{children:"x = (a + b) * 3"})," \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 ",(0,l.jsx)(n.code,{children:"a + b"}),"\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 ",(0,l.jsx)(n.code,{children:"x"}),"\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n\n [=]\n / \\\n [x] [*]\n / \\\n [+] [3]\n / \\\n [a] [b]\n\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n [if]\n / \\\n [>] [block]\n / \\ \\\n[x] [0] [=]\n / \\\n [y] [10]\n\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5668\u7684\u4F5C\u7528"}),"\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",children:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F",(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790"}),"\uFF1A"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790"}),"\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u5206\u6790"}),"\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\n\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\n1 INTEGER \u6574\u6570 1\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\n2 INTEGER \u6574\u6570 2\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\n3 INTEGER \u6574\u6570 3\n\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\n\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\n [+]\n / \\\n 1 [*]\n / \\\n 2 3\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E00"}),"\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E8C"}),"\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",children:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["SQL \u89E3\u6790\u5668\u662F",(0,l.jsx)(n.strong,{children:"\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6"}),"\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"# \u67E5\u8BE2\nSELECT * FROM users WHERE status = 'active';\n# \u63D2\u5165\nINSERT INTO customers (name, email) VALUES ('\u674E\u56DB', 'lisi@example.com');\n# \u66F4\u65B0\nUPDATE products SET price = 5999 WHERE id = 1001;\n# \u5220\u9664\nDELETE FROM logs WHERE create_time < '2024-01-01';\n# \u521B\u5EFA\u8868\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\n# \u4FEE\u6539\u8868\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\n# \u5220\u9664\u8868\nDROP TABLE temp_data;\n# \u6388\u6743\nGRANT SELECT ON customers TO user1;\n"})}),"\n",(0,l.jsx)(n.h3,{id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",children:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E"}),"\n",(0,l.jsx)(n.p,{children:"\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D"}),"\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",children:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848"}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD",src:s(3519).A+"",width:"2884",height:"1540"})}),"\n",(0,l.jsx)(n.h3,{id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",children:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u7279\u6027"}),(0,l.jsx)(n.th,{children:"JavaCC"}),(0,l.jsx)(n.th,{children:"ANTLR 3"}),(0,l.jsx)(n.th,{children:"ANTLR 4"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u5206\u6790\u7B97\u6CD5"}),(0,l.jsx)(n.td,{children:"LL(k)"}),(0,l.jsx)(n.td,{children:"LL(*)"}),(0,l.jsx)(n.td,{children:"LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5DE6\u9012\u5F52\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u81EA\u52A8\u5904\u7406"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u76EE\u6807\u8BED\u8A00"}),(0,l.jsx)(n.td,{children:"Java"}),(0,l.jsx)(n.td,{children:"Java\u3001C#\u3001Python \u7B49"}),(0,l.jsx)(n.td,{children:"\u540C ANTLR 3"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9519\u8BEF\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u57FA\u7840\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u590D\u6742\u5EA6"}),(0,l.jsx)(n.td,{children:"\u7B80\u5355\u76F4\u89C2"}),(0,l.jsx)(n.td,{children:"\u8F83\u590D\u6742"}),(0,l.jsx)(n.td,{children:"\u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5E94\u7528\u573A\u666F"}),(0,l.jsx)(n.td,{children:"\u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2"}),(0,l.jsx)(n.td,{children:"\u4E2D\u5927\u578B\u9879\u76EE"}),(0,l.jsx)(n.td,{children:"\u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5"})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",children:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec"}),"\n",(0,l.jsx)(n.p,{children:"\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09"}),"\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09"}),"\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",children:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"JSqlParser"}),"\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"select"})," \u2192 ",(0,l.jsx)(n.code,{children:"SelectStatement"}),"\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 ",(0,l.jsx)(n.strong,{children:"API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31"}),"\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Druid"}),"\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F",(0,l.jsx)(n.strong,{children:"\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09"}),"\uFF0C\u5E76\u4E14",(0,l.jsx)(n.strong,{children:"\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55"}),"\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",children:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u4F9D\u8D56\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u89E3\u6790 SQL \u80FD\u529B"}),(0,l.jsx)(n.th,{children:"\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F"}),(0,l.jsx)(n.th,{children:"\u4F18\u7F3A\u70B9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JavaCC"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"ANTLR4"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Calcite"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"hive-exec"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E ANTLR3"}),(0,l.jsx)(n.td,{children:"\u4EC5 Hive\u3001Spark"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JSqlParser"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Druid"})}),(0,l.jsx)(n.td,{children:"\u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6"}),(0,l.jsx)(n.td,{children:"\u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u6709\uFF08\u6781\u5F3A\uFF09"})}),(0,l.jsx)(n.td,{children:"\u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6"})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:["\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 ",(0,l.jsx)(n.code,{children:"Insert"}),"\u3001",(0,l.jsx)(n.code,{children:"Select"}),"\u3001",(0,l.jsx)(n.code,{children:"Update"}),"\u3001",(0,l.jsx)(n.code,{children:"Delete"})," \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002"})," \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",children:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4"}),"\n",(0,l.jsxs)(n.p,{children:["ANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811",(0,l.jsx)(n.strong,{children:"\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"}),"\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",children:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4"}),"\n",(0,l.jsx)(n.h3,{id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",children:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\n\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\n\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\n \u5B9E\u73B0\uFF1Acalcite\n\n\u5B9E\u65F6 streamparser\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u95EE\u9898\u662F\uFF1A",(0,l.jsx)(n.strong,{children:"\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11"}),"\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",children:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",src:s(6809).A+"",width:"16384",height:"5838"})}),"\n",(0,l.jsx)(n.p,{children:"\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsx)(n.li,{children:"\u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811"}),"\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002"}),"\n"]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22",src:s(3784).A+"",width:"1710",height:"852"})}),"\n",(0,l.jsx)(n.h3,{id:"33-\u4E3B\u8981\u95EE\u9898",children:"3.3 \u4E3B\u8981\u95EE\u9898"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31"}),"\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE"}),"\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F ",(0,l.jsx)(n.code,{children:"if"})," \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8"}),"\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",children:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42"}),"\n",(0,l.jsxs)(n.p,{children:["\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A",(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"})," \u4E0E ",(0,l.jsx)(n.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",children:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42",src:s(3130).A+"",width:"2120",height:"712"})}),"\n",(0,l.jsx)(n.p,{children:"\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Druid \u5206\u5C42\u7ED3\u6784\u7C7B",src:s(4037).A+"",width:"3080",height:"1824"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\nSQLStatement statement = parser.parseStatement();\n\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\nDorisStatementParser statementParser = new DorisStatementParser(sql);\nSQLStatement sqlStatement = statementParser.parseStatement();\n"})}),"\n",(0,l.jsx)(n.h3,{id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",children:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5C42"}),"\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u5E94\u7528\u5C42"}),"\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u4E1A\u52A1\u89E3\u6790\u5206\u5C42",src:s(3042).A+"",width:"3972",height:"2296"})}),"\n",(0,l.jsx)(n.p,{children:"\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6",src:s(4560).A+"",width:"9256",height:"1888"})}),"\n",(0,l.jsxs)(n.p,{children:["\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F ",(0,l.jsx)(n.code,{children:"BaseXxxClient"}),"\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u7EE7\u627F BaseXxxClient \u6269\u5C55",src:s(3694).A+"",width:"2324",height:"1252"})}),"\n",(0,l.jsxs)(n.p,{children:["\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 ",(0,l.jsx)(n.code,{children:"XxxSqlParser"})," \u4E2D\u6CE8\u518C\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client",src:s(3220).A+"",width:"2100",height:"648"})}),"\n",(0,l.jsx)(n.p,{children:"\u793A\u4F8B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u51C6\u5907 SQL\nString sql = getSql();\n\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n// 2.1\u3001\u89E3\u6790\u8868\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\n\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\n\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\n\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\nSet functions = sqlParser.parseFunction(sql);\n"})}),"\n",(0,l.jsx)(n.h3,{id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",children:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",src:s(4778).A+"",width:"5684",height:"2764"})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",children:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002"}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B"}),"\uFF1A",(0,l.jsx)(n.code,{children:"insert into/overwrite ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"create ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"with as ... insert"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\u662F",(0,l.jsx)(n.strong,{children:"\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868"}),"\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EE5\u4E00\u6761 ",(0,l.jsx)(n.code,{children:"insert select"})," \u4E3A\u4F8B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"insert into new_table (id, name)\nselect a.id as aid, b.name as bname\nfrom old_table as a\nleft join old_table2 b on a.id = b.id\n"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u7AEF\u3001",(0,l.jsx)(n.code,{children:"select"})," \u6765\u6E90\u7AEF\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u76EE\u6807\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id id new_table\n name name new_table\n\n# \u6765\u6E90\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id aid old_table\n name bname old_table2\n"})}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsx)(n.li,{children:"\u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u7B2C\u4E00\u6761\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\n# \u7B2C\u4E8C\u6761\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002"}),"\n",(0,l.jsxs)(n.p,{children:["\u5BF9\u4E8E ",(0,l.jsx)(n.code,{children:"with as"})," \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 ",(0,l.jsx)(n.code,{children:"()"})," \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E",(0,l.jsx)(n.strong,{children:"\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5"}),"\u7684\u573A\u666F\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"concat(t1.name, t2.name)"}),"\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 ",(0,l.jsx)(n.code,{children:","})," \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"52-\u8868\u8840\u7F18\u89E3\u6790",children:"5.2 \u8868\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A ",(0,l.jsx)(n.code,{children:"select"})," \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E ",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"53-\u8868\u89E3\u6790",children:"5.3 \u8868\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08",(0,l.jsx)(n.code,{children:"select"}),"\u3001",(0,l.jsx)(n.code,{children:"update"}),"\u3001",(0,l.jsx)(n.code,{children:"delete"}),"\u3001",(0,l.jsx)(n.code,{children:"insert"}),"\u3001",(0,l.jsx)(n.code,{children:"drop"}),"\u3001",(0,l.jsx)(n.code,{children:"rename"})," \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"54-\u51FD\u6570\u89E3\u6790",children:"5.4 \u51FD\u6570\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 ",(0,l.jsx)(n.strong,{children:"Visitor \u6A21\u5F0F"}),"\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790",src:s(593).A+"",width:"2150",height:"1224"})}),"\n",(0,l.jsx)(n.h3,{id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",children:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09"}),"\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL"}),"\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",children:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A",(0,l.jsx)(n.strong,{children:"\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E8E\u662F\u6709\u4E86 ",(0,l.jsx)(n.strong,{children:"SqlParserX"})," \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790"}),"\u7684\u5F00\u6E90\u9879\u76EE\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"61-\u53CC\u5C42\u67B6\u6784",children:"6.1 \u53CC\u5C42\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SqlParserX\uFF08\u6839 Reactor\uFF09\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\n"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002"]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E24\u5C42\u4EE5 ",(0,l.jsx)(n.code,{children:"DbType + SQLStatement AST"})," \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C",(0,l.jsx)(n.strong,{children:"\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST"}),"\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/master/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",children:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid"}),"\n",(0,l.jsxs)(n.p,{children:["\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A",(0,l.jsx)(n.strong,{children:"\u5B98\u65B9 Druid 1.2.28"}),"\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C",(0,l.jsx)(n.strong,{children:"\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898"}),"\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",children:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/master/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/master/docs/01%E3%80%81SQL%E8%AF%AD%E6%B3%95%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/Druid%E7%89%88%E6%9C%AC%E4%B8%8ESQL%E8%AF%AD%E6%B3%95%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5.md",children:"Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/tree/master/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E8%83%BD%E5%8A%9B%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5",children:"\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/master/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%96%87%E6%A1%A3/SqlParserX%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%8C%87%E5%8D%97.md",children:"\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357"})}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"64-\u76EE\u6807",children:"6.4 \u76EE\u6807"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid"})," \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX"}),"\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:["\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,l.jsx)(n.code,{children:"DbType"})," \u4E0E AST \u5BF9\u9F50\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E03\u7ED3\u8BED",children:"\u4E03\u3001\u7ED3\u8BED"}),"\n",(0,l.jsx)(n.p,{children:"\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002"})}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u6587\u56FE\u7247\u4F4D\u4E8E ",(0,l.jsx)(n.code,{children:"assets/"})," \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"]}),"\n"]})]})}function x(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},3519(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png"},6809(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png"},3784(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png"},3130(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/04-druid-syntax-layer-815515eac5295f9f772e1beb97f04c11.png"},4037(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/05-druid-layer-structure-5737c5a7826cff1a2874cf2b927ccd34.png"},3042(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png"},4560(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/07-application-components-3fa01967e1605c21791788f2a06212eb.png"},3694(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png"},3220(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/09-register-client-c6216b08439b96af51fda129de838a4e.png"},4778(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/10-after-refactor-c8b89cd447d9cea7894354ffea6a2fdf.png"},593(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/11-function-visitor-43a9830686ce367f536545b5691f504f.png"},8453(e,n,s){s.d(n,{R:()=>d,x:()=>c});var r=s(6540);let l={},i=r.createContext(l);function d(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),r.createElement(i.Provider,{value:n},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/4b0ae1c1.b207de64.js b/assets/js/4b0ae1c1.d8b39644.js similarity index 52% rename from assets/js/4b0ae1c1.b207de64.js rename to assets/js/4b0ae1c1.d8b39644.js index 873af75..b4b302a 100644 --- a/assets/js/4b0ae1c1.b207de64.js +++ b/assets/js/4b0ae1c1.d8b39644.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9375"],{8786(e,r,t){t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var s=t(5816),a=t(4848),n=t(8453);let o={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},i,l={authorsImageUrls:[void 0]},c=[];function u(e){let r={a:"a",blockquote:"blockquote",p:"p",...(0,n.R)(),...e.components};return(0,a.jsxs)(r.blockquote,{children:["\n",(0,a.jsx)(r.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,a.jsxs)(r.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,a.jsx)(r.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,a.jsx)(r.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]})}function p(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},8453(e,r,t){t.d(r,{R:()=>o,x:()=>i});var s=t(6540);let a={},n=s.createContext(a);function o(e){let r=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(n.Provider,{value:r},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9375"],{8786(e,r,t){t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var s=t(5816),a=t(4848),n=t(8453);let o={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},l,i={authorsImageUrls:[void 0]},c=[];function u(e){let r={a:"a",blockquote:"blockquote",p:"p",...(0,n.R)(),...e.components};return(0,a.jsxs)(r.blockquote,{children:["\n",(0,a.jsx)(r.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,a.jsxs)(r.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,a.jsx)(r.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,a.jsx)(r.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]})}function p(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},8453(e,r,t){t.d(r,{R:()=>o,x:()=>l});var s=t(6540);let a={},n=s.createContext(a);function o(e){let r=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(n.Provider,{value:r},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/4d54d076.7e9344e4.js b/assets/js/4d54d076.7e9344e4.js deleted file mode 100644 index a3f7151..0000000 --- a/assets/js/4d54d076.7e9344e4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5936"],{7396(e,s,n){n.r(s),n.d(s,{metadata:()=>r,default:()=>h,frontMatter:()=>t,contentTitle:()=>c,toc:()=>o,assets:()=>d});var r=JSON.parse('{"id":"contributing","title":"\u8D21\u732E\u6307\u5357","description":"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303","source":"@site/docs/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/docs/next/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/contributing.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"\u8D21\u732E\u6307\u5357","description":"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303","sidebar_label":"\u8D21\u732E\u6307\u5357","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","permalink":"/SqlParserX/docs/next/core/parameter-compile"}}'),i=n(4848),l=n(8453);let t={title:"\u8D21\u732E\u6307\u5357",description:"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303",sidebar_label:"\u8D21\u732E\u6307\u5357",sidebar_position:1},c="\u8D21\u732E\u6307\u5357",d={},o=[{value:"\u53C2\u4E0E\u65B9\u5F0F",id:"\u53C2\u4E0E\u65B9\u5F0F",level:2},{value:"\u5F00\u53D1\u6D41\u7A0B",id:"\u5F00\u53D1\u6D41\u7A0B",level:2},{value:"\u4EE3\u7801\u7EA6\u5B9A",id:"\u4EE3\u7801\u7EA6\u5B9A",level:2},{value:"\u6587\u6863\u7EA6\u5B9A",id:"\u6587\u6863\u7EA6\u5B9A",level:2}];function a(e){let s={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"\u8D21\u732E\u6307\u5357",children:"\u8D21\u732E\u6307\u5357"})}),"\n",(0,i.jsx)(s.p,{children:"\u611F\u8C22\u4F60\u5BF9 SqlParserX \u7684\u5173\u6CE8\uFF01\u6B22\u8FCE\u901A\u8FC7 Issue\u3001Pull Request \u53C2\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,i.jsx)(s.h2,{id:"\u53C2\u4E0E\u65B9\u5F0F",children:"\u53C2\u4E0E\u65B9\u5F0F"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u63D0\u4EA4 Bug \u6216\u9700\u6C42\uFF1A",(0,i.jsx)(s.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u63D0\u4EA4\u4EE3\u7801\uFF1A",(0,i.jsx)(s.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u8BA8\u8BBA\u4EA4\u6D41\uFF1A\u89C1",(0,i.jsx)(s.a,{href:"/community",children:"\u793E\u533A"})]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u5F00\u53D1\u6D41\u7A0B",children:"\u5F00\u53D1\u6D41\u7A0B"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["Fork \u4ED3\u5E93\u5E76\u521B\u5EFA\u7279\u6027\u5206\u652F\uFF1A",(0,i.jsx)(s.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u672C\u5730\u6784\u5EFA\uFF1A",(0,i.jsx)(s.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u7F16\u5199\u4EE3\u7801\u4E0E\u6D4B\u8BD5\uFF0C\u786E\u4FDD ",(0,i.jsx)(s.code,{children:"mvn test"})," \u901A\u8FC7"]}),"\n",(0,i.jsx)(s.li,{children:"\u63D0\u4EA4\u5E76\u63A8\u9001\u5206\u652F\uFF0C\u53D1\u8D77 Pull Request"}),"\n",(0,i.jsx)(s.li,{children:"\u901A\u8FC7 CI \u4E0E Review \u540E\u5408\u5E76"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u4EE3\u7801\u7EA6\u5B9A",children:"\u4EE3\u7801\u7EA6\u5B9A"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u9075\u5FAA\u73B0\u6709\u6A21\u5757\u5206\u5C42\uFF1A\u8BED\u6CD5\u5DEE\u5F02\u6539 ",(0,i.jsx)(s.code,{children:"sqlparserx-syntax"}),"\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u6539 ",(0,i.jsx)(s.code,{children:"sqlparserx-core"})]}),"\n",(0,i.jsx)(s.li,{children:"\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u540C\u6B65\u8865\u5145\u80FD\u529B\u652F\u6301\u6587\u6863\u4E0E\u56DE\u5F52\u6D4B\u8BD5"}),"\n",(0,i.jsx)(s.li,{children:"\u4FDD\u6301\u4E0E\u73B0\u6709\u4EE3\u7801\u98CE\u683C\u4E00\u81F4\uFF0C\u4E0D\u5F15\u5165\u65E0\u5173\u4F9D\u8D56"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u6587\u6863\u7EA6\u5B9A",children:"\u6587\u6863\u7EA6\u5B9A"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u6587\u6863\u7EDF\u4E00\u7EF4\u62A4\u5728\u9879\u76EE\u6839\u76EE\u5F55 ",(0,i.jsx)(s.code,{children:"docs/"}),"\uFF0C\u672C\u7AD9\u6587\u6863\u4ECE\u4E2D\u540C\u6B65"]}),"\n",(0,i.jsx)(s.li,{children:"\u65B0\u589E\u89E3\u6790\u80FD\u529B\u65F6\uFF0C\u66F4\u65B0\u5BF9\u5E94\u300C\u80FD\u529B\u652F\u6301\u60C5\u51B5\u300D\u6587\u6863"}),"\n",(0,i.jsxs)(s.li,{children:["\u53C2\u8003",(0,i.jsx)(s.a,{href:"/SqlParserX/docs/next/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u7406\u89E3\u4E24\u5C42\u6269\u5C55\u6A21\u5F0F"]}),"\n"]})]})}function h(e={}){let{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453(e,s,n){n.d(s,{R:()=>t,x:()=>c});var r=n(6540);let i={},l=r.createContext(i);function t(e){let s=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4d54d076.da3daff2.js b/assets/js/4d54d076.da3daff2.js new file mode 100644 index 0000000..c31186a --- /dev/null +++ b/assets/js/4d54d076.da3daff2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5936"],{7396(e,s,n){n.r(s),n.d(s,{metadata:()=>r,default:()=>h,frontMatter:()=>t,contentTitle:()=>c,toc:()=>o,assets:()=>d});var r=JSON.parse('{"id":"contributing","title":"\u8D21\u732E\u6307\u5357","description":"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303","source":"@site/docs/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/docs/next/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/contributing.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"\u8D21\u732E\u6307\u5357","description":"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303","sidebar_label":"\u8D21\u732E\u6307\u5357","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","permalink":"/SqlParserX/docs/next/core/parameter-compile"}}'),i=n(4848),l=n(8453);let t={title:"\u8D21\u732E\u6307\u5357",description:"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303",sidebar_label:"\u8D21\u732E\u6307\u5357",sidebar_position:1},c="\u8D21\u732E\u6307\u5357",d={},o=[{value:"\u53C2\u4E0E\u65B9\u5F0F",id:"\u53C2\u4E0E\u65B9\u5F0F",level:2},{value:"\u5F00\u53D1\u6D41\u7A0B",id:"\u5F00\u53D1\u6D41\u7A0B",level:2},{value:"\u4EE3\u7801\u7EA6\u5B9A",id:"\u4EE3\u7801\u7EA6\u5B9A",level:2},{value:"\u6587\u6863\u7EA6\u5B9A",id:"\u6587\u6863\u7EA6\u5B9A",level:2}];function a(e){let s={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"\u8D21\u732E\u6307\u5357",children:"\u8D21\u732E\u6307\u5357"})}),"\n",(0,i.jsx)(s.p,{children:"\u611F\u8C22\u4F60\u5BF9 SqlParserX \u7684\u5173\u6CE8\uFF01\u6B22\u8FCE\u901A\u8FC7 Issue\u3001Pull Request \u53C2\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,i.jsx)(s.h2,{id:"\u53C2\u4E0E\u65B9\u5F0F",children:"\u53C2\u4E0E\u65B9\u5F0F"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u63D0\u4EA4 Bug \u6216\u9700\u6C42\uFF1A",(0,i.jsx)(s.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u63D0\u4EA4\u4EE3\u7801\uFF1A",(0,i.jsx)(s.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u8BA8\u8BBA\u4EA4\u6D41\uFF1A\u89C1",(0,i.jsx)(s.a,{href:"/community",children:"\u793E\u533A"})]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u5F00\u53D1\u6D41\u7A0B",children:"\u5F00\u53D1\u6D41\u7A0B"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["Fork \u4ED3\u5E93\u5E76\u521B\u5EFA\u7279\u6027\u5206\u652F\uFF1A",(0,i.jsx)(s.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u672C\u5730\u6784\u5EFA\uFF1A",(0,i.jsx)(s.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u7F16\u5199\u4EE3\u7801\u4E0E\u6D4B\u8BD5\uFF0C\u786E\u4FDD ",(0,i.jsx)(s.code,{children:"mvn test"})," \u901A\u8FC7"]}),"\n",(0,i.jsx)(s.li,{children:"\u63D0\u4EA4\u5E76\u63A8\u9001\u5206\u652F\uFF0C\u53D1\u8D77 Pull Request"}),"\n",(0,i.jsx)(s.li,{children:"\u901A\u8FC7 CI \u4E0E Review \u540E\u5408\u5E76"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u4EE3\u7801\u7EA6\u5B9A",children:"\u4EE3\u7801\u7EA6\u5B9A"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u9075\u5FAA\u73B0\u6709\u6A21\u5757\u5206\u5C42\uFF1A\u8BED\u6CD5\u5DEE\u5F02\u6539 ",(0,i.jsx)(s.code,{children:"sqlparserx-syntax"}),"\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u6539 ",(0,i.jsx)(s.code,{children:"sqlparserx-core"})]}),"\n",(0,i.jsx)(s.li,{children:"\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u540C\u6B65\u8865\u5145\u80FD\u529B\u652F\u6301\u6587\u6863\u4E0E\u56DE\u5F52\u6D4B\u8BD5"}),"\n",(0,i.jsx)(s.li,{children:"\u4FDD\u6301\u4E0E\u73B0\u6709\u4EE3\u7801\u98CE\u683C\u4E00\u81F4\uFF0C\u4E0D\u5F15\u5165\u65E0\u5173\u4F9D\u8D56"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u6587\u6863\u7EA6\u5B9A",children:"\u6587\u6863\u7EA6\u5B9A"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u6587\u6863\u7EDF\u4E00\u7EF4\u62A4\u5728\u9879\u76EE\u6839\u76EE\u5F55 ",(0,i.jsx)(s.code,{children:"docs/"}),"\uFF0C\u672C\u7AD9\u6587\u6863\u4ECE\u4E2D\u540C\u6B65"]}),"\n",(0,i.jsx)(s.li,{children:"\u65B0\u589E\u89E3\u6790\u80FD\u529B\u65F6\uFF0C\u66F4\u65B0\u5BF9\u5E94\u300C\u80FD\u529B\u652F\u6301\u60C5\u51B5\u300D\u6587\u6863"}),"\n",(0,i.jsxs)(s.li,{children:["\u53C2\u8003",(0,i.jsx)(s.a,{href:"/SqlParserX/docs/next/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u7406\u89E3\u4E24\u5C42\u6269\u5C55\u6A21\u5F0F"]}),"\n"]})]})}function h(e={}){let{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453(e,s,n){n.d(s,{R:()=>t,x:()=>c});var r=n(6540);let i={},l=r.createContext(i);function t(e){let s=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51515e66.b5eae504.js b/assets/js/51515e66.b5eae504.js deleted file mode 100644 index 87399d2..0000000 --- a/assets/js/51515e66.b5eae504.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4522"],{3817(e,r,s){s.r(r),s.d(r,{metadata:()=>d,default:()=>a,frontMatter:()=>i,contentTitle:()=>l,toc:()=>h,assets:()=>c});var d=JSON.parse('{"id":"about/introduction","title":"SqlParserX \u4ECB\u7ECD","description":"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210","source":"@site/docs/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/docs/next/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/about/introduction.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SqlParserX \u4ECB\u7ECD","description":"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210","sidebar_label":"SqlParserX\u4ECB\u7ECD","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u6587\u6863\u5BFC\u8BFB","permalink":"/SqlParserX/docs/next/intro"},"next":{"title":"\u67B6\u6784\u8BBE\u8BA1","permalink":"/SqlParserX/docs/next/about/architecture"}}'),t=s(4848),n=s(8453);let i={title:"SqlParserX \u4ECB\u7ECD",description:"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210",sidebar_label:"SqlParserX\u4ECB\u7ECD",sidebar_position:1},l="SqlParserX \u4ECB\u7ECD",c={},h=[{value:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",id:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",level:2},{value:"\u6A21\u5757\u7EC4\u6210",id:"\u6A21\u5757\u7EC4\u6210",level:2},{value:"\u6570\u636E\u6E90\u652F\u6301",id:"\u6570\u636E\u6E90\u652F\u6301",level:2},{value:"\u5EF6\u4F38\u9605\u8BFB",id:"\u5EF6\u4F38\u9605\u8BFB",level:2}];function x(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"sqlparserx-\u4ECB\u7ECD",children:"SqlParserX \u4ECB\u7ECD"})}),"\n",(0,t.jsxs)(r.p,{children:["SqlParserX \u662F\u4E00\u4E2A",(0,t.jsx)(r.strong,{children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"}),"\uFF0C\u63D0\u4F9B SQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868/DDL \u89E3\u6790\u3001\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u63D0\u53D6\u4EE5\u53CA\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1\u80FD\u529B\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",children:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u95EE\u9898"}),(0,t.jsx)(r.th,{children:"\u65B9\u6848"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u4E0D\u540C SQL \u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u5927"}),(0,t.jsxs)(r.td,{children:["\u901A\u8FC7 ",(0,t.jsx)(r.code,{children:"DbType"})," \u8DEF\u7531 Druid \u65B9\u8A00\uFF0C\u7EDF\u4E00 AST"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u771F\u5B9E\u8868\u4E0E DDL \u85CF\u5728 SQL \u6587\u672C\u4E2D"}),(0,t.jsxs)(r.td,{children:["\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),"\u3001\u5206\u533A\u4E0E\u5C5E\u6027\u89E3\u6790"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6570\u636E\u4F9D\u8D56\u96BE\u4EE5\u8FFD\u8E2A"}),(0,t.jsx)(r.td,{children:"\u8986\u76D6 JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u4E0E CTE \u7684\u8868/\u5B57\u6BB5\u8840\u7F18"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u811A\u672C\u4E2D\u5305\u542B\u591A\u6761\u8BED\u53E5"}),(0,t.jsx)(r.td,{children:"SQL \u62C6\u5206\u4E0E\u8BED\u6CD5\u6821\u9A8C"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6743\u9650\u8C13\u8BCD\u96BE\u4EE5\u7EF4\u62A4"}),(0,t.jsx)(r.td,{children:"\u884C\u7EA7\u6743\u9650 SQL \u6539\u5199"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6A21\u5757\u7EC4\u6210",children:"\u6A21\u5757\u7EC4\u6210"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u6A21\u5757"}),(0,t.jsx)(r.th,{children:"\u5C42\u6B21"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"}),(0,t.jsx)(r.th,{children:"\u6280\u672F\u6808"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})}),(0,t.jsx)(r.td,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"}),(0,t.jsx)(r.td,{children:"SQL \u8F6C AST\u3001\u6821\u9A8C\u3001\u62C6\u5206\u4E0E Druid \u65B9\u8A00\u6269\u5C55"}),(0,t.jsx)(r.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-core"})}),(0,t.jsx)(r.td,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),(0,t.jsx)(r.td,{children:"\u8868\u3001\u8840\u7F18\u3001DDL\u3001\u51FD\u6570\u4E0E SQL \u6539\u5199"}),(0,t.jsxs)(r.td,{children:["Java 8 + ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-web"})}),(0,t.jsx)(r.td,{children:"\u8BBF\u95EE\u5C42"}),(0,t.jsx)(r.td,{children:"Spring Boot REST \u670D\u52A1"}),(0,t.jsx)(r.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-ui"})}),(0,t.jsx)(r.td,{children:"\u8BBF\u95EE\u5C42"}),(0,t.jsx)(r.td,{children:"\u8840\u7F18\u53EF\u89C6\u5316\u4E0E\u5728\u7EBF\u89E3\u6790\u5DE5\u5177"}),(0,t.jsx)(r.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6570\u636E\u6E90\u652F\u6301",children:"\u6570\u636E\u6E90\u652F\u6301"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u6570\u636E\u6E90"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"MySQL"}),(0,t.jsxs)(r.td,{children:["\u91CD\u70B9\u652F\u6301\uFF0C\u589E\u5F3A ",(0,t.jsx)(r.code,{children:"RENAME TABLE"})," \u5904\u7406"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Doris"}),(0,t.jsx)(r.td,{children:"\u91CD\u5EA6\u652F\u6301\uFF0CDDL \u4E0E\u8840\u7F18\u6709\u4E13\u9879\u6D4B\u8BD5"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"StarRocks"}),(0,t.jsxs)(r.td,{children:["\u652F\u6301\u72EC\u7ACB\u7684 ",(0,t.jsx)(r.code,{children:"DISTRIBUTED BY"})," \u4E0E\u5173\u952E DDL"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,t.jsx)(r.td,{children:"\u5DF2\u6CE8\u518C\u89E3\u6790\u5668\uFF0C\u901A\u7528\u4E1A\u52A1\u5B9E\u73B0"})]})]})]}),"\n",(0,t.jsxs)(r.p,{children:["\u5B8C\u6574\u7684\u8BED\u6CD5\u5C42\u4E0E\u4E1A\u52A1\u5C42\u652F\u6491\u77E9\u9635\u89C1",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/core/field-lineage",children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528"}),"\u4E0E\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/"})," \u76EE\u5F55\u4E0B\u7684\u80FD\u529B\u652F\u6301\u6587\u6863\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u5EF6\u4F38\u9605\u8BFB",children:"\u5EF6\u4F38\u9605\u8BFB"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,t.jsxs)(r.li,{children:["\u9879\u76EE\u80CC\u666F\uFF1A",(0,t.jsx)(r.a,{href:"/blog/origin-of-sqlparserx",children:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F"})]}),"\n"]})]})}function a(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(x,{...e})}):x(e)}},8453(e,r,s){s.d(r,{R:()=>i,x:()=>l});var d=s(6540);let t={},n=d.createContext(t);function i(e){let r=d.useContext(n);return d.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),d.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/51515e66.dde2f931.js b/assets/js/51515e66.dde2f931.js new file mode 100644 index 0000000..8163971 --- /dev/null +++ b/assets/js/51515e66.dde2f931.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4522"],{3817(e,r,s){s.r(r),s.d(r,{metadata:()=>d,default:()=>a,frontMatter:()=>l,contentTitle:()=>i,toc:()=>h,assets:()=>c});var d=JSON.parse('{"id":"about/introduction","title":"SqlParserX \u4ECB\u7ECD","description":"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210","source":"@site/docs/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/docs/next/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/about/introduction.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SqlParserX \u4ECB\u7ECD","description":"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210","sidebar_label":"SqlParserX\u4ECB\u7ECD","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u6587\u6863\u5BFC\u8BFB","permalink":"/SqlParserX/docs/next/intro"},"next":{"title":"\u67B6\u6784\u8BBE\u8BA1","permalink":"/SqlParserX/docs/next/about/architecture"}}'),t=s(4848),n=s(8453);let l={title:"SqlParserX \u4ECB\u7ECD",description:"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210",sidebar_label:"SqlParserX\u4ECB\u7ECD",sidebar_position:1},i="SqlParserX \u4ECB\u7ECD",c={},h=[{value:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",id:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",level:2},{value:"\u6A21\u5757\u7EC4\u6210",id:"\u6A21\u5757\u7EC4\u6210",level:2},{value:"\u6570\u636E\u6E90\u652F\u6301",id:"\u6570\u636E\u6E90\u652F\u6301",level:2},{value:"\u5EF6\u4F38\u9605\u8BFB",id:"\u5EF6\u4F38\u9605\u8BFB",level:2}];function x(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"sqlparserx-\u4ECB\u7ECD",children:"SqlParserX \u4ECB\u7ECD"})}),"\n",(0,t.jsxs)(r.p,{children:["SqlParserX \u662F\u4E00\u4E2A",(0,t.jsx)(r.strong,{children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"}),"\uFF0C\u63D0\u4F9B SQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868/DDL \u89E3\u6790\u3001\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u63D0\u53D6\u4EE5\u53CA\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1\u80FD\u529B\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",children:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u95EE\u9898"}),(0,t.jsx)(r.th,{children:"\u65B9\u6848"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u4E0D\u540C SQL \u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u5927"}),(0,t.jsxs)(r.td,{children:["\u901A\u8FC7 ",(0,t.jsx)(r.code,{children:"DbType"})," \u8DEF\u7531 Druid \u65B9\u8A00\uFF0C\u7EDF\u4E00 AST"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u771F\u5B9E\u8868\u4E0E DDL \u85CF\u5728 SQL \u6587\u672C\u4E2D"}),(0,t.jsxs)(r.td,{children:["\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),"\u3001\u5206\u533A\u4E0E\u5C5E\u6027\u89E3\u6790"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6570\u636E\u4F9D\u8D56\u96BE\u4EE5\u8FFD\u8E2A"}),(0,t.jsx)(r.td,{children:"\u8986\u76D6 JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u4E0E CTE \u7684\u8868/\u5B57\u6BB5\u8840\u7F18"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u811A\u672C\u4E2D\u5305\u542B\u591A\u6761\u8BED\u53E5"}),(0,t.jsx)(r.td,{children:"SQL \u62C6\u5206\u4E0E\u8BED\u6CD5\u6821\u9A8C"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6743\u9650\u8C13\u8BCD\u96BE\u4EE5\u7EF4\u62A4"}),(0,t.jsx)(r.td,{children:"\u884C\u7EA7\u6743\u9650 SQL \u6539\u5199"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6A21\u5757\u7EC4\u6210",children:"\u6A21\u5757\u7EC4\u6210"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u6A21\u5757"}),(0,t.jsx)(r.th,{children:"\u5C42\u6B21"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"}),(0,t.jsx)(r.th,{children:"\u6280\u672F\u6808"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})}),(0,t.jsx)(r.td,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"}),(0,t.jsx)(r.td,{children:"SQL \u8F6C AST\u3001\u6821\u9A8C\u3001\u62C6\u5206\u4E0E Druid \u65B9\u8A00\u6269\u5C55"}),(0,t.jsx)(r.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-core"})}),(0,t.jsx)(r.td,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),(0,t.jsx)(r.td,{children:"\u8868\u3001\u8840\u7F18\u3001DDL\u3001\u51FD\u6570\u4E0E SQL \u6539\u5199"}),(0,t.jsxs)(r.td,{children:["Java 8 + ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-web"})}),(0,t.jsx)(r.td,{children:"\u8BBF\u95EE\u5C42"}),(0,t.jsx)(r.td,{children:"Spring Boot REST \u670D\u52A1"}),(0,t.jsx)(r.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-ui"})}),(0,t.jsx)(r.td,{children:"\u8BBF\u95EE\u5C42"}),(0,t.jsx)(r.td,{children:"\u8840\u7F18\u53EF\u89C6\u5316\u4E0E\u5728\u7EBF\u89E3\u6790\u5DE5\u5177"}),(0,t.jsx)(r.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6570\u636E\u6E90\u652F\u6301",children:"\u6570\u636E\u6E90\u652F\u6301"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u6570\u636E\u6E90"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"MySQL"}),(0,t.jsxs)(r.td,{children:["\u91CD\u70B9\u652F\u6301\uFF0C\u589E\u5F3A ",(0,t.jsx)(r.code,{children:"RENAME TABLE"})," \u5904\u7406"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Doris"}),(0,t.jsx)(r.td,{children:"\u91CD\u5EA6\u652F\u6301\uFF0CDDL \u4E0E\u8840\u7F18\u6709\u4E13\u9879\u6D4B\u8BD5"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"StarRocks"}),(0,t.jsxs)(r.td,{children:["\u652F\u6301\u72EC\u7ACB\u7684 ",(0,t.jsx)(r.code,{children:"DISTRIBUTED BY"})," \u4E0E\u5173\u952E DDL"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,t.jsx)(r.td,{children:"\u5DF2\u6CE8\u518C\u89E3\u6790\u5668\uFF0C\u901A\u7528\u4E1A\u52A1\u5B9E\u73B0"})]})]})]}),"\n",(0,t.jsxs)(r.p,{children:["\u5B8C\u6574\u7684\u8BED\u6CD5\u5C42\u4E0E\u4E1A\u52A1\u5C42\u652F\u6491\u77E9\u9635\u89C1",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/core/field-lineage",children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528"}),"\u4E0E\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/"})," \u76EE\u5F55\u4E0B\u7684\u80FD\u529B\u652F\u6301\u6587\u6863\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u5EF6\u4F38\u9605\u8BFB",children:"\u5EF6\u4F38\u9605\u8BFB"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"/SqlParserX/docs/next/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,t.jsxs)(r.li,{children:["\u9879\u76EE\u80CC\u666F\uFF1A",(0,t.jsx)(r.a,{href:"/blog/origin-of-sqlparserx",children:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F"})]}),"\n"]})]})}function a(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(x,{...e})}):x(e)}},8453(e,r,s){s.d(r,{R:()=>l,x:()=>i});var d=s(6540);let t={},n=d.createContext(t);function l(e){let r=d.useContext(n);return d.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),d.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6badde6a.c6a1d033.js b/assets/js/6badde6a.c6a1d033.js deleted file mode 100644 index c06b57b..0000000 --- a/assets/js/6badde6a.c6a1d033.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4063"],{2426(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>o,assets:()=>i});var t=JSON.parse('{"id":"core/sql-type","title":"SQL \u7C7B\u578B\u8BC6\u522B","description":"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B","source":"@site/docs/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/docs/next/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/sql-type.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","description":"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B","sidebar_label":"SQL \u7C7B\u578B\u8BC6\u522B","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","permalink":"/SqlParserX/docs/next/quickstart/setup"},"next":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/field-lineage"}}'),n=s(4848),c=s(8453);let d={title:"SQL \u7C7B\u578B\u8BC6\u522B",description:"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B",sidebar_label:"SQL \u7C7B\u578B\u8BC6\u522B",sidebar_position:1},l="SQL \u7C7B\u578B\u8BC6\u522B",i={},o=[{value:"\u652F\u6301\u8303\u56F4",id:"\u652F\u6301\u8303\u56F4",level:2}];function a(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,c.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"sql-\u7C7B\u578B\u8BC6\u522B",children:"SQL \u7C7B\u578B\u8BC6\u522B"})}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"parseSqlType"})," \u5148\u6309\u6240\u9009\u6570\u636E\u6E90\u65B9\u8A00\u6784\u5EFA Druid AST\uFF0C\u518D\u8FD4\u56DE\u7EDF\u4E00\u7684 ",(0,n.jsx)(r.code,{children:"SqlType"}),"\uFF0C\u9002\u5408\u8BED\u53E5\u8DEF\u7531\u3001\u5BA1\u8BA1\u5206\u7C7B\u548C\u6267\u884C\u7B56\u7565\u9009\u62E9\u3002"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="SqlTypeDemo.java"',children:'import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;\nimport com.dtstack.sqlparserx.core.enums.SqlType;\nimport com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,n.jsx)(r.h2,{id:"\u652F\u6301\u8303\u56F4",children:"\u652F\u6301\u8303\u56F4"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"\u5206\u7C7B"}),(0,n.jsx)(r.th,{children:"\u5178\u578B\u7C7B\u578B"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u67E5\u8BE2"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"QUERY"}),"\u3001",(0,n.jsx)(r.code,{children:"WITH_QUERY"}),"\u3001",(0,n.jsx)(r.code,{children:"QUERY_NO_FROM"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"DML"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"INSERT"}),"\u3001",(0,n.jsx)(r.code,{children:"UPDATE"}),"\u3001",(0,n.jsx)(r.code,{children:"DELETE"}),"\u3001",(0,n.jsx)(r.code,{children:"MERGE_INTO"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"DDL"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE"}),"\u3001",(0,n.jsx)(r.code,{children:"CREATE_AS"}),"\u3001",(0,n.jsx)(r.code,{children:"ALTER"}),"\u3001",(0,n.jsx)(r.code,{children:"DROP"}),"\u3001",(0,n.jsx)(r.code,{children:"TRUNCATE"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u7BA1\u7406\u4E0E\u67E5\u770B"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"SHOW_TABLES"}),"\u3001",(0,n.jsx)(r.code,{children:"SHOW_COLUMNS"}),"\u3001",(0,n.jsx)(r.code,{children:"DESC_TABLE"}),"\u3001",(0,n.jsx)(r.code,{children:"EXPLAIN"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u5176\u4ED6"}),(0,n.jsxs)(r.td,{children:["\u65E0\u6CD5\u5F52\u7C7B\u7684 AST \u8FD4\u56DE ",(0,n.jsx)(r.code,{children:"OTHER"})]})]})]})]}),"\n",(0,n.jsx)(r.p,{children:"\u5177\u4F53 SQL \u80FD\u5426\u6784\u5EFA AST\uFF0C\u4ECD\u53D6\u51B3\u4E8E\u6240\u9009\u6570\u636E\u6E90\u7684\u65B9\u8A00\u652F\u6301\u60C5\u51B5\u3002"})]})}function h(e={}){let{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453(e,r,s){s.d(r,{R:()=>d,x:()=>l});var t=s(6540);let n={},c=t.createContext(n);function d(e){let r=t.useContext(c);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),t.createElement(c.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6badde6a.ff0c6a4f.js b/assets/js/6badde6a.ff0c6a4f.js new file mode 100644 index 0000000..fe08444 --- /dev/null +++ b/assets/js/6badde6a.ff0c6a4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4063"],{2426(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>o,assets:()=>i});var t=JSON.parse('{"id":"core/sql-type","title":"SQL \u7C7B\u578B\u8BC6\u522B","description":"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B","source":"@site/docs/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/docs/next/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/sql-type.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","description":"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B","sidebar_label":"SQL \u7C7B\u578B\u8BC6\u522B","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","permalink":"/SqlParserX/docs/next/quickstart/setup"},"next":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/field-lineage"}}'),n=s(4848),c=s(8453);let d={title:"SQL \u7C7B\u578B\u8BC6\u522B",description:"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B",sidebar_label:"SQL \u7C7B\u578B\u8BC6\u522B",sidebar_position:1},l="SQL \u7C7B\u578B\u8BC6\u522B",i={},o=[{value:"\u652F\u6301\u8303\u56F4",id:"\u652F\u6301\u8303\u56F4",level:2}];function a(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,c.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"sql-\u7C7B\u578B\u8BC6\u522B",children:"SQL \u7C7B\u578B\u8BC6\u522B"})}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"parseSqlType"})," \u5148\u6309\u6240\u9009\u6570\u636E\u6E90\u65B9\u8A00\u6784\u5EFA Druid AST\uFF0C\u518D\u8FD4\u56DE\u7EDF\u4E00\u7684 ",(0,n.jsx)(r.code,{children:"SqlType"}),"\uFF0C\u9002\u5408\u8BED\u53E5\u8DEF\u7531\u3001\u5BA1\u8BA1\u5206\u7C7B\u548C\u6267\u884C\u7B56\u7565\u9009\u62E9\u3002"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="SqlTypeDemo.java"',children:'import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;\nimport com.dtstack.sqlparserx.core.enums.SqlType;\nimport com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,n.jsx)(r.h2,{id:"\u652F\u6301\u8303\u56F4",children:"\u652F\u6301\u8303\u56F4"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"\u5206\u7C7B"}),(0,n.jsx)(r.th,{children:"\u5178\u578B\u7C7B\u578B"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u67E5\u8BE2"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"QUERY"}),"\u3001",(0,n.jsx)(r.code,{children:"WITH_QUERY"}),"\u3001",(0,n.jsx)(r.code,{children:"QUERY_NO_FROM"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"DML"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"INSERT"}),"\u3001",(0,n.jsx)(r.code,{children:"UPDATE"}),"\u3001",(0,n.jsx)(r.code,{children:"DELETE"}),"\u3001",(0,n.jsx)(r.code,{children:"MERGE_INTO"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"DDL"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE"}),"\u3001",(0,n.jsx)(r.code,{children:"CREATE_AS"}),"\u3001",(0,n.jsx)(r.code,{children:"ALTER"}),"\u3001",(0,n.jsx)(r.code,{children:"DROP"}),"\u3001",(0,n.jsx)(r.code,{children:"TRUNCATE"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u7BA1\u7406\u4E0E\u67E5\u770B"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"SHOW_TABLES"}),"\u3001",(0,n.jsx)(r.code,{children:"SHOW_COLUMNS"}),"\u3001",(0,n.jsx)(r.code,{children:"DESC_TABLE"}),"\u3001",(0,n.jsx)(r.code,{children:"EXPLAIN"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u5176\u4ED6"}),(0,n.jsxs)(r.td,{children:["\u65E0\u6CD5\u5F52\u7C7B\u7684 AST \u8FD4\u56DE ",(0,n.jsx)(r.code,{children:"OTHER"})]})]})]})]}),"\n",(0,n.jsx)(r.p,{children:"\u5177\u4F53 SQL \u80FD\u5426\u6784\u5EFA AST\uFF0C\u4ECD\u53D6\u51B3\u4E8E\u6240\u9009\u6570\u636E\u6E90\u7684\u65B9\u8A00\u652F\u6301\u60C5\u51B5\u3002"})]})}function h(e={}){let{wrapper:r}={...(0,c.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453(e,r,s){s.d(r,{R:()=>d,x:()=>l});var t=s(6540);let n={},c=t.createContext(n);function d(e){let r=t.useContext(c);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),t.createElement(c.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/78900b38.61168a60.js b/assets/js/78900b38.61168a60.js new file mode 100644 index 0000000..e8d7a20 --- /dev/null +++ b/assets/js/78900b38.61168a60.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["6235"],{6170(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>a,contentTitle:()=>d,toc:()=>i,assets:()=>c});var n=JSON.parse('{"id":"core/table-parse","title":"\u8868\u89E3\u6790","description":"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027","source":"@site/docs/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/docs/next/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/table-parse.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"\u8868\u89E3\u6790","description":"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027","sidebar_label":"\u8868\u89E3\u6790","sidebar_position":3},"sidebar":"docs","previous":{"title":"\u8868\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/table-lineage"},"next":{"title":"\u51FD\u6570\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/function-parse"}}'),t=s(4848),l=s(8453);let a={title:"\u8868\u89E3\u6790",description:"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027",sidebar_label:"\u8868\u89E3\u6790",sidebar_position:3},d="\u8868\u89E3\u6790",c={},i=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u8868\u89E3\u6790",children:"\u8868\u89E3\u6790"})}),"\n",(0,t.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,t.jsxs)(r.p,{children:["\u540C\u6837\u6CBF\u7528\u5B98\u65B9 ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u6F14\u793A\u300C\u89E3\u6790\u771F\u5B9E\u8868\u300D\u4E0E\u300C\u89E3\u6790\u5EFA\u8868\u8BED\u53E5\u300D\uFF1A"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790 SQL \u4E2D\u7684\u771F\u5B9E\u8868\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("\u4E3B\u8868: " + tableResult.getMainTable().getName());\n System.out.println("\u6240\u6709\u8868: " + tableResult.getAllTableName());\n\n // 3\u3001\u89E3\u6790 CREATE TABLE \u8BED\u53E5\u7ED3\u6784\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("\u5EFA\u8868\u540D: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("\u5B57\u6BB5\u6570: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"\u4E3B\u8868: users\n\u6240\u6709\u8868: [user_order_summary, users, orders]\n\u5EFA\u8868\u540D: null.user_order_summary\n\u5B57\u6BB5\u6570: 4\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,t.jsxs)(r.p,{children:["\u4ECE SQL \u6587\u672C\u4E2D\u8BC6\u522B",(0,t.jsx)(r.strong,{children:"\u771F\u5B9E\u8868"}),"\uFF0C\u5305\u62EC\u666E\u901A\u67E5\u8BE2\u7528\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"})," \u5B9A\u4E49\u3001\u5206\u533A\u4E0E\u8868\u5C5E\u6027\u7B49\u3002"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 \u6536\u96C6\u8868 / CTE / \u5EFA\u8868\u7ED3\u6784 / \u5206\u533A / \u5C5E\u6027\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u9879\u76EE"}),(0,t.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),"\u3001",(0,t.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,t.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ParseTableResult"}),"\u3001",(0,t.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8986\u76D6\u5BF9\u8C61"}),(0,t.jsxs)(r.td,{children:["\u67E5\u8BE2\u7528\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),"\u3001\u5206\u533A\u3001\u8868\u5C5E\u6027"]})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u67E5\u8BE2\u7528\u8868\u8BC6\u522B"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CTE \u8BC6\u522B"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"WITH \u5B9A\u4E49\u7684\u4E34\u65F6\u8868"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u8868\u540D\u3001\u5B57\u6BB5\u3001\u7C7B\u578B\u3001\u6CE8\u91CA"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5206\u533A\u4E0E\u8868\u5C5E\u6027"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u5404\u6570\u636E\u6E90\u65B9\u8A00\u5DEE\u5F02\u5185\u805A\u5728\u8BED\u6CD5\u5C42"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"catalog.db.table"})," \u591A\u7EA7\u547D\u540D"]}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u591A catalog \u573A\u666F"})]})]})]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["\u66F4\u591A\u8868\u89E3\u6790\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u8868\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>a,x:()=>d});var n=s(6540);let t={},l=n.createContext(t);function a(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/78900b38.9a9c1962.js b/assets/js/78900b38.9a9c1962.js deleted file mode 100644 index ac1fd16..0000000 --- a/assets/js/78900b38.9a9c1962.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["6235"],{6170(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>a,contentTitle:()=>d,toc:()=>i,assets:()=>c});var n=JSON.parse('{"id":"core/table-parse","title":"\u8868\u89E3\u6790","description":"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027","source":"@site/docs/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/docs/next/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/table-parse.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"\u8868\u89E3\u6790","description":"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027","sidebar_label":"\u8868\u89E3\u6790","sidebar_position":3},"sidebar":"docs","previous":{"title":"\u8868\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/table-lineage"},"next":{"title":"\u51FD\u6570\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/function-parse"}}'),t=s(4848),l=s(8453);let a={title:"\u8868\u89E3\u6790",description:"\u4ECE SQL \u6587\u672C\u4E2D\u89E3\u6790\u771F\u5B9E\u8868\u3001CTE\u3001CREATE TABLE\u3001\u5206\u533A\u4E0E\u5C5E\u6027",sidebar_label:"\u8868\u89E3\u6790",sidebar_position:3},d="\u8868\u89E3\u6790",c={},i=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u8868\u89E3\u6790",children:"\u8868\u89E3\u6790"})}),"\n",(0,t.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,t.jsxs)(r.p,{children:["\u540C\u6837\u6CBF\u7528\u5B98\u65B9 ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u6F14\u793A\u300C\u89E3\u6790\u771F\u5B9E\u8868\u300D\u4E0E\u300C\u89E3\u6790\u5EFA\u8868\u8BED\u53E5\u300D\uFF1A"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790 SQL \u4E2D\u7684\u771F\u5B9E\u8868\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("\u4E3B\u8868: " + tableResult.getMainTable().getName());\n System.out.println("\u6240\u6709\u8868: " + tableResult.getAllTableName());\n\n // 3\u3001\u89E3\u6790 CREATE TABLE \u8BED\u53E5\u7ED3\u6784\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("\u5EFA\u8868\u540D: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("\u5B57\u6BB5\u6570: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"\u4E3B\u8868: users\n\u6240\u6709\u8868: [user_order_summary, users, orders]\n\u5EFA\u8868\u540D: null.user_order_summary\n\u5B57\u6BB5\u6570: 4\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,t.jsxs)(r.p,{children:["\u4ECE SQL \u6587\u672C\u4E2D\u8BC6\u522B",(0,t.jsx)(r.strong,{children:"\u771F\u5B9E\u8868"}),"\uFF0C\u5305\u62EC\u666E\u901A\u67E5\u8BE2\u7528\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"})," \u5B9A\u4E49\u3001\u5206\u533A\u4E0E\u8868\u5C5E\u6027\u7B49\u3002"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 \u6536\u96C6\u8868 / CTE / \u5EFA\u8868\u7ED3\u6784 / \u5206\u533A / \u5C5E\u6027\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u9879\u76EE"}),(0,t.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),"\u3001",(0,t.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,t.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ParseTableResult"}),"\u3001",(0,t.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8986\u76D6\u5BF9\u8C61"}),(0,t.jsxs)(r.td,{children:["\u67E5\u8BE2\u7528\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),"\u3001\u5206\u533A\u3001\u8868\u5C5E\u6027"]})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u67E5\u8BE2\u7528\u8868\u8BC6\u522B"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CTE \u8BC6\u522B"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"WITH \u5B9A\u4E49\u7684\u4E34\u65F6\u8868"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u8868\u540D\u3001\u5B57\u6BB5\u3001\u7C7B\u578B\u3001\u6CE8\u91CA"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5206\u533A\u4E0E\u8868\u5C5E\u6027"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u5404\u6570\u636E\u6E90\u65B9\u8A00\u5DEE\u5F02\u5185\u805A\u5728\u8BED\u6CD5\u5C42"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"catalog.db.table"})," \u591A\u7EA7\u547D\u540D"]}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u591A catalog \u573A\u666F"})]})]})]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["\u66F4\u591A\u8868\u89E3\u6790\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u8868\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>a,x:()=>d});var n=s(6540);let t={},l=n.createContext(t);function a(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7bd8db71.6e90e258.js b/assets/js/7bd8db71.6e90e258.js new file mode 100644 index 0000000..f55bf11 --- /dev/null +++ b/assets/js/7bd8db71.6e90e258.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["6171"],{8498(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>t,contentTitle:()=>o,toc:()=>c,assets:()=>d});var n=JSON.parse('{"id":"intro","title":"SqlParserX \u6587\u6863","description":"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3","source":"@site/versioned_docs/version-1.0/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/intro.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SqlParserX \u6587\u6863","description":"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3","slug":"/intro","sidebar_label":"\u6587\u6863\u5BFC\u8BFB","sidebar_position":1},"sidebar":"docs","next":{"title":"SqlParserX\u4ECB\u7ECD","permalink":"/SqlParserX/docs/about/introduction"}}'),i=s(4848),l=s(8453);let t={title:"SqlParserX \u6587\u6863",description:"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3",slug:"/intro",sidebar_label:"\u6587\u6863\u5BFC\u8BFB",sidebar_position:1},o="\u6B22\u8FCE\u4F7F\u7528 SqlParserX",d={},c=[{value:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",id:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",level:2},{value:"\u6587\u6863\u7ED3\u6784",id:"\u6587\u6863\u7ED3\u6784",level:2}];function a(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"\u6B22\u8FCE\u4F7F\u7528-sqlparserx",children:"\u6B22\u8FCE\u4F7F\u7528 SqlParserX"})}),"\n",(0,i.jsxs)(r.p,{children:["SqlParserX \u662F\u4E00\u4E2A",(0,i.jsx)(r.strong,{children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"}),"\uFF0C\u9762\u5411 SQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868/DDL \u89E3\u6790\u3001\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u63D0\u53D6\u4EE5\u53CA\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1\u7B49\u573A\u666F\u3002"]}),"\n",(0,i.jsxs)(r.p,{children:["\u9879\u76EE\u91C7\u7528\u4E24\u5C42\u67B6\u6784\uFF1A",(0,i.jsx)(r.code,{children:"sqlparserx-syntax"})," \u8D1F\u8D23\u628A SQL \u89E3\u6790\u4E3A Druid AST \u5E76\u627F\u8F7D\u8BED\u6CD5\u6269\u5C55\uFF1B",(0,i.jsx)(r.code,{children:"sqlparserx-core"})," \u901A\u8FC7\u7EDF\u4E00\u7684 ",(0,i.jsx)(r.code,{children:"ISqlParser"})," \u5951\u7EA6\u6D88\u8D39 AST\uFF0C\u4EA7\u51FA\u4E1A\u52A1\u89E3\u6790\u7ED3\u679C\u3002",(0,i.jsx)(r.code,{children:"sqlparserx-web"})," \u4E0E ",(0,i.jsx)(r.code,{children:"sqlparserx-ui"})," \u63D0\u4F9B\u670D\u52A1\u5316\u4E0E\u53EF\u89C6\u5316\u8BBF\u95EE\u80FD\u529B\u3002"]}),"\n",(0,i.jsx)(r.h2,{id:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",children:"\u4ECE\u8FD9\u91CC\u5F00\u59CB"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:["\u{1F680} ",(0,i.jsx)(r.a,{href:"/SqlParserX/docs/quickstart/setup",children:"\u5FEB\u901F\u5F00\u59CB"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u{1F4D6} ",(0,i.jsx)(r.a,{href:"/SqlParserX/docs/about/introduction",children:"SqlParserX \u4ECB\u7ECD"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u{1F3D7}\uFE0F ",(0,i.jsx)(r.a,{href:"/SqlParserX/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"})]}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"\u6587\u6863\u7ED3\u6784",children:"\u6587\u6863\u7ED3\u6784"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"\u5173\u4E8E SqlParserX"}),"\uFF1A\u9879\u76EE\u4ECB\u7ECD\u4E0E\u4E24\u5C42\u67B6\u6784\u8BBE\u8BA1"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"\u5FEB\u901F\u5F00\u59CB"}),"\uFF1A\u73AF\u5883\u51C6\u5907\u3001\u6784\u5EFA\u4E0E\u8FD0\u884C"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528"}),"\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001\u51FD\u6570\u89E3\u6790\u3001\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"\u8D21\u732E\u6307\u5357"}),"\uFF1A\u53C2\u4E0E\u8D21\u732E\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303"]}),"\n"]}),"\n",(0,i.jsxs)(r.p,{children:[":::tip \u63D0\u793A\n\u672C\u7AD9\u53F3\u4FA7\u5BFC\u822A\u680F\u53EF\u5207\u6362",(0,i.jsx)(r.strong,{children:"\u7248\u672C"}),"\uFF08",(0,i.jsx)(r.code,{children:"1.0"})," / ",(0,i.jsx)(r.code,{children:"Next"}),"\uFF09\u4E0E",(0,i.jsx)(r.strong,{children:"\u8BED\u8A00"}),"\uFF08\u7B80\u4F53\u4E2D\u6587 / English\uFF09\u3002\n:::"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453(e,r,s){s.d(r,{R:()=>t,x:()=>o});var n=s(6540);let i={},l=n.createContext(i);function t(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7bd8db71.d4297dd4.js b/assets/js/7bd8db71.d4297dd4.js deleted file mode 100644 index d1d75c9..0000000 --- a/assets/js/7bd8db71.d4297dd4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["6171"],{8498(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>t,contentTitle:()=>o,toc:()=>c,assets:()=>d});var n=JSON.parse('{"id":"intro","title":"SqlParserX \u6587\u6863","description":"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3","source":"@site/versioned_docs/version-1.0/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/intro.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SqlParserX \u6587\u6863","description":"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3","slug":"/intro","sidebar_label":"\u6587\u6863\u5BFC\u8BFB","sidebar_position":1},"sidebar":"docs","next":{"title":"SqlParserX\u4ECB\u7ECD","permalink":"/SqlParserX/docs/about/introduction"}}'),i=s(4848),l=s(8453);let t={title:"SqlParserX \u6587\u6863",description:"SqlParserX \u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305\u7684\u6587\u6863\u5165\u53E3",slug:"/intro",sidebar_label:"\u6587\u6863\u5BFC\u8BFB",sidebar_position:1},o="\u6B22\u8FCE\u4F7F\u7528 SqlParserX",d={},c=[{value:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",id:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",level:2},{value:"\u6587\u6863\u7ED3\u6784",id:"\u6587\u6863\u7ED3\u6784",level:2}];function a(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"\u6B22\u8FCE\u4F7F\u7528-sqlparserx",children:"\u6B22\u8FCE\u4F7F\u7528 SqlParserX"})}),"\n",(0,i.jsxs)(r.p,{children:["SqlParserX \u662F\u4E00\u4E2A",(0,i.jsx)(r.strong,{children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"}),"\uFF0C\u9762\u5411 SQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868/DDL \u89E3\u6790\u3001\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u63D0\u53D6\u4EE5\u53CA\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1\u7B49\u573A\u666F\u3002"]}),"\n",(0,i.jsxs)(r.p,{children:["\u9879\u76EE\u91C7\u7528\u4E24\u5C42\u67B6\u6784\uFF1A",(0,i.jsx)(r.code,{children:"sqlparserx-syntax"})," \u8D1F\u8D23\u628A SQL \u89E3\u6790\u4E3A Druid AST \u5E76\u627F\u8F7D\u8BED\u6CD5\u6269\u5C55\uFF1B",(0,i.jsx)(r.code,{children:"sqlparserx-core"})," \u901A\u8FC7\u7EDF\u4E00\u7684 ",(0,i.jsx)(r.code,{children:"ISqlParser"})," \u5951\u7EA6\u6D88\u8D39 AST\uFF0C\u4EA7\u51FA\u4E1A\u52A1\u89E3\u6790\u7ED3\u679C\u3002",(0,i.jsx)(r.code,{children:"sqlparserx-web"})," \u4E0E ",(0,i.jsx)(r.code,{children:"sqlparserx-ui"})," \u63D0\u4F9B\u670D\u52A1\u5316\u4E0E\u53EF\u89C6\u5316\u8BBF\u95EE\u80FD\u529B\u3002"]}),"\n",(0,i.jsx)(r.h2,{id:"\u4ECE\u8FD9\u91CC\u5F00\u59CB",children:"\u4ECE\u8FD9\u91CC\u5F00\u59CB"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:["\u{1F680} ",(0,i.jsx)(r.a,{href:"/SqlParserX/docs/quickstart/setup",children:"\u5FEB\u901F\u5F00\u59CB"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u{1F4D6} ",(0,i.jsx)(r.a,{href:"/SqlParserX/docs/about/introduction",children:"SqlParserX \u4ECB\u7ECD"})]}),"\n",(0,i.jsxs)(r.li,{children:["\u{1F3D7}\uFE0F ",(0,i.jsx)(r.a,{href:"/SqlParserX/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"})]}),"\n"]}),"\n",(0,i.jsx)(r.h2,{id:"\u6587\u6863\u7ED3\u6784",children:"\u6587\u6863\u7ED3\u6784"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"\u5173\u4E8E SqlParserX"}),"\uFF1A\u9879\u76EE\u4ECB\u7ECD\u4E0E\u4E24\u5C42\u67B6\u6784\u8BBE\u8BA1"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"\u5FEB\u901F\u5F00\u59CB"}),"\uFF1A\u73AF\u5883\u51C6\u5907\u3001\u6784\u5EFA\u4E0E\u8FD0\u884C"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528"}),"\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001\u51FD\u6570\u89E3\u6790\u3001\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.strong,{children:"\u8D21\u732E\u6307\u5357"}),"\uFF1A\u53C2\u4E0E\u8D21\u732E\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303"]}),"\n"]}),"\n",(0,i.jsxs)(r.p,{children:[":::tip \u63D0\u793A\n\u672C\u7AD9\u53F3\u4FA7\u5BFC\u822A\u680F\u53EF\u5207\u6362",(0,i.jsx)(r.strong,{children:"\u7248\u672C"}),"\uFF08",(0,i.jsx)(r.code,{children:"1.0"})," / ",(0,i.jsx)(r.code,{children:"Next"}),"\uFF09\u4E0E",(0,i.jsx)(r.strong,{children:"\u8BED\u8A00"}),"\uFF08\u7B80\u4F53\u4E2D\u6587 / English\uFF09\u3002\n:::"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453(e,r,s){s.d(r,{R:()=>t,x:()=>o});var n=s(6540);let i={},l=n.createContext(i);function t(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/80dcd7a6.5bf1f6f4.js b/assets/js/80dcd7a6.5bf1f6f4.js deleted file mode 100644 index 0675734..0000000 --- a/assets/js/80dcd7a6.5bf1f6f4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["859"],{7604(e,r,s){s.r(r),s.d(r,{metadata:()=>d,default:()=>a,frontMatter:()=>i,contentTitle:()=>l,toc:()=>h,assets:()=>c});var d=JSON.parse('{"id":"about/introduction","title":"SqlParserX \u4ECB\u7ECD","description":"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210","source":"@site/versioned_docs/version-1.0/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/docs/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/about/introduction.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SqlParserX \u4ECB\u7ECD","description":"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210","sidebar_label":"SqlParserX\u4ECB\u7ECD","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u6587\u6863\u5BFC\u8BFB","permalink":"/SqlParserX/docs/intro"},"next":{"title":"\u67B6\u6784\u8BBE\u8BA1","permalink":"/SqlParserX/docs/about/architecture"}}'),t=s(4848),n=s(8453);let i={title:"SqlParserX \u4ECB\u7ECD",description:"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210",sidebar_label:"SqlParserX\u4ECB\u7ECD",sidebar_position:1},l="SqlParserX \u4ECB\u7ECD",c={},h=[{value:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",id:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",level:2},{value:"\u6A21\u5757\u7EC4\u6210",id:"\u6A21\u5757\u7EC4\u6210",level:2},{value:"\u6570\u636E\u6E90\u652F\u6301",id:"\u6570\u636E\u6E90\u652F\u6301",level:2},{value:"\u5EF6\u4F38\u9605\u8BFB",id:"\u5EF6\u4F38\u9605\u8BFB",level:2}];function x(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"sqlparserx-\u4ECB\u7ECD",children:"SqlParserX \u4ECB\u7ECD"})}),"\n",(0,t.jsxs)(r.p,{children:["SqlParserX \u662F\u4E00\u4E2A",(0,t.jsx)(r.strong,{children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"}),"\uFF0C\u63D0\u4F9B SQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868/DDL \u89E3\u6790\u3001\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u63D0\u53D6\u4EE5\u53CA\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1\u80FD\u529B\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",children:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u95EE\u9898"}),(0,t.jsx)(r.th,{children:"\u65B9\u6848"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u4E0D\u540C SQL \u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u5927"}),(0,t.jsxs)(r.td,{children:["\u901A\u8FC7 ",(0,t.jsx)(r.code,{children:"DbType"})," \u8DEF\u7531 Druid \u65B9\u8A00\uFF0C\u7EDF\u4E00 AST"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u771F\u5B9E\u8868\u4E0E DDL \u85CF\u5728 SQL \u6587\u672C\u4E2D"}),(0,t.jsxs)(r.td,{children:["\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),"\u3001\u5206\u533A\u4E0E\u5C5E\u6027\u89E3\u6790"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6570\u636E\u4F9D\u8D56\u96BE\u4EE5\u8FFD\u8E2A"}),(0,t.jsx)(r.td,{children:"\u8986\u76D6 JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u4E0E CTE \u7684\u8868/\u5B57\u6BB5\u8840\u7F18"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u811A\u672C\u4E2D\u5305\u542B\u591A\u6761\u8BED\u53E5"}),(0,t.jsx)(r.td,{children:"SQL \u62C6\u5206\u4E0E\u8BED\u6CD5\u6821\u9A8C"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6743\u9650\u8C13\u8BCD\u96BE\u4EE5\u7EF4\u62A4"}),(0,t.jsx)(r.td,{children:"\u884C\u7EA7\u6743\u9650 SQL \u6539\u5199"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6A21\u5757\u7EC4\u6210",children:"\u6A21\u5757\u7EC4\u6210"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u6A21\u5757"}),(0,t.jsx)(r.th,{children:"\u5C42\u6B21"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"}),(0,t.jsx)(r.th,{children:"\u6280\u672F\u6808"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})}),(0,t.jsx)(r.td,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"}),(0,t.jsx)(r.td,{children:"SQL \u8F6C AST\u3001\u6821\u9A8C\u3001\u62C6\u5206\u4E0E Druid \u65B9\u8A00\u6269\u5C55"}),(0,t.jsx)(r.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-core"})}),(0,t.jsx)(r.td,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),(0,t.jsx)(r.td,{children:"\u8868\u3001\u8840\u7F18\u3001DDL\u3001\u51FD\u6570\u4E0E SQL \u6539\u5199"}),(0,t.jsxs)(r.td,{children:["Java 8 + ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-web"})}),(0,t.jsx)(r.td,{children:"\u8BBF\u95EE\u5C42"}),(0,t.jsx)(r.td,{children:"Spring Boot REST \u670D\u52A1"}),(0,t.jsx)(r.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-ui"})}),(0,t.jsx)(r.td,{children:"\u8BBF\u95EE\u5C42"}),(0,t.jsx)(r.td,{children:"\u8840\u7F18\u53EF\u89C6\u5316\u4E0E\u5728\u7EBF\u89E3\u6790\u5DE5\u5177"}),(0,t.jsx)(r.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6570\u636E\u6E90\u652F\u6301",children:"\u6570\u636E\u6E90\u652F\u6301"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u6570\u636E\u6E90"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"MySQL"}),(0,t.jsxs)(r.td,{children:["\u91CD\u70B9\u652F\u6301\uFF0C\u589E\u5F3A ",(0,t.jsx)(r.code,{children:"RENAME TABLE"})," \u5904\u7406"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Doris"}),(0,t.jsx)(r.td,{children:"\u91CD\u5EA6\u652F\u6301\uFF0CDDL \u4E0E\u8840\u7F18\u6709\u4E13\u9879\u6D4B\u8BD5"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"StarRocks"}),(0,t.jsxs)(r.td,{children:["\u652F\u6301\u72EC\u7ACB\u7684 ",(0,t.jsx)(r.code,{children:"DISTRIBUTED BY"})," \u4E0E\u5173\u952E DDL"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,t.jsx)(r.td,{children:"\u5DF2\u6CE8\u518C\u89E3\u6790\u5668\uFF0C\u901A\u7528\u4E1A\u52A1\u5B9E\u73B0"})]})]})]}),"\n",(0,t.jsxs)(r.p,{children:["\u5B8C\u6574\u7684\u8BED\u6CD5\u5C42\u4E0E\u4E1A\u52A1\u5C42\u652F\u6491\u77E9\u9635\u89C1",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/core/field-lineage",children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528"}),"\u4E0E\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/"})," \u76EE\u5F55\u4E0B\u7684\u80FD\u529B\u652F\u6301\u6587\u6863\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u5EF6\u4F38\u9605\u8BFB",children:"\u5EF6\u4F38\u9605\u8BFB"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"/SqlParserX/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,t.jsxs)(r.li,{children:["\u9879\u76EE\u80CC\u666F\uFF1A",(0,t.jsx)(r.a,{href:"/blog/origin-of-sqlparserx",children:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F"})]}),"\n"]})]})}function a(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(x,{...e})}):x(e)}},8453(e,r,s){s.d(r,{R:()=>i,x:()=>l});var d=s(6540);let t={},n=d.createContext(t);function i(e){let r=d.useContext(n);return d.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),d.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/80dcd7a6.63daf50c.js b/assets/js/80dcd7a6.63daf50c.js new file mode 100644 index 0000000..f85733d --- /dev/null +++ b/assets/js/80dcd7a6.63daf50c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["859"],{7604(e,r,s){s.r(r),s.d(r,{metadata:()=>d,default:()=>a,frontMatter:()=>i,contentTitle:()=>l,toc:()=>h,assets:()=>c});var d=JSON.parse('{"id":"about/introduction","title":"SqlParserX \u4ECB\u7ECD","description":"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210","source":"@site/versioned_docs/version-1.0/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/docs/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/about/introduction.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SqlParserX \u4ECB\u7ECD","description":"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210","sidebar_label":"SqlParserX\u4ECB\u7ECD","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u6587\u6863\u5BFC\u8BFB","permalink":"/SqlParserX/docs/intro"},"next":{"title":"\u67B6\u6784\u8BBE\u8BA1","permalink":"/SqlParserX/docs/about/architecture"}}'),t=s(4848),n=s(8453);let i={title:"SqlParserX \u4ECB\u7ECD",description:"SqlParserX \u7684\u5B9A\u4F4D\u3001\u80FD\u529B\u4E0E\u6A21\u5757\u7EC4\u6210",sidebar_label:"SqlParserX\u4ECB\u7ECD",sidebar_position:1},l="SqlParserX \u4ECB\u7ECD",c={},h=[{value:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",id:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",level:2},{value:"\u6A21\u5757\u7EC4\u6210",id:"\u6A21\u5757\u7EC4\u6210",level:2},{value:"\u6570\u636E\u6E90\u652F\u6301",id:"\u6570\u636E\u6E90\u652F\u6301",level:2},{value:"\u5EF6\u4F38\u9605\u8BFB",id:"\u5EF6\u4F38\u9605\u8BFB",level:2}];function x(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"sqlparserx-\u4ECB\u7ECD",children:"SqlParserX \u4ECB\u7ECD"})}),"\n",(0,t.jsxs)(r.p,{children:["SqlParserX \u662F\u4E00\u4E2A",(0,t.jsx)(r.strong,{children:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305"}),"\uFF0C\u63D0\u4F9B SQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868/DDL \u89E3\u6790\u3001\u8868\u4E0E\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u63D0\u53D6\u4EE5\u53CA\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1\u80FD\u529B\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898",children:"\u89E3\u51B3\u7684\u5178\u578B\u95EE\u9898"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u95EE\u9898"}),(0,t.jsx)(r.th,{children:"\u65B9\u6848"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u4E0D\u540C SQL \u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u5927"}),(0,t.jsxs)(r.td,{children:["\u901A\u8FC7 ",(0,t.jsx)(r.code,{children:"DbType"})," \u8DEF\u7531 Druid \u65B9\u8A00\uFF0C\u7EDF\u4E00 AST"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u771F\u5B9E\u8868\u4E0E DDL \u85CF\u5728 SQL \u6587\u672C\u4E2D"}),(0,t.jsxs)(r.td,{children:["\u8868\u3001CTE\u3001",(0,t.jsx)(r.code,{children:"CREATE TABLE"}),"\u3001\u5206\u533A\u4E0E\u5C5E\u6027\u89E3\u6790"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6570\u636E\u4F9D\u8D56\u96BE\u4EE5\u8FFD\u8E2A"}),(0,t.jsx)(r.td,{children:"\u8986\u76D6 JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u4E0E CTE \u7684\u8868/\u5B57\u6BB5\u8840\u7F18"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u811A\u672C\u4E2D\u5305\u542B\u591A\u6761\u8BED\u53E5"}),(0,t.jsx)(r.td,{children:"SQL \u62C6\u5206\u4E0E\u8BED\u6CD5\u6821\u9A8C"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6743\u9650\u8C13\u8BCD\u96BE\u4EE5\u7EF4\u62A4"}),(0,t.jsx)(r.td,{children:"\u884C\u7EA7\u6743\u9650 SQL \u6539\u5199"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6A21\u5757\u7EC4\u6210",children:"\u6A21\u5757\u7EC4\u6210"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u6A21\u5757"}),(0,t.jsx)(r.th,{children:"\u5C42\u6B21"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"}),(0,t.jsx)(r.th,{children:"\u6280\u672F\u6808"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})}),(0,t.jsx)(r.td,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"}),(0,t.jsx)(r.td,{children:"SQL \u8F6C AST\u3001\u6821\u9A8C\u3001\u62C6\u5206\u4E0E Druid \u65B9\u8A00\u6269\u5C55"}),(0,t.jsx)(r.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-core"})}),(0,t.jsx)(r.td,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),(0,t.jsx)(r.td,{children:"\u8868\u3001\u8840\u7F18\u3001DDL\u3001\u51FD\u6570\u4E0E SQL \u6539\u5199"}),(0,t.jsxs)(r.td,{children:["Java 8 + ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-web"})}),(0,t.jsx)(r.td,{children:"\u8BBF\u95EE\u5C42"}),(0,t.jsx)(r.td,{children:"Spring Boot REST \u670D\u52A1"}),(0,t.jsx)(r.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"sqlparserx-ui"})}),(0,t.jsx)(r.td,{children:"\u8BBF\u95EE\u5C42"}),(0,t.jsx)(r.td,{children:"\u8840\u7F18\u53EF\u89C6\u5316\u4E0E\u5728\u7EBF\u89E3\u6790\u5DE5\u5177"}),(0,t.jsx)(r.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6570\u636E\u6E90\u652F\u6301",children:"\u6570\u636E\u6E90\u652F\u6301"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u6570\u636E\u6E90"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"MySQL"}),(0,t.jsxs)(r.td,{children:["\u91CD\u70B9\u652F\u6301\uFF0C\u589E\u5F3A ",(0,t.jsx)(r.code,{children:"RENAME TABLE"})," \u5904\u7406"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Doris"}),(0,t.jsx)(r.td,{children:"\u91CD\u5EA6\u652F\u6301\uFF0CDDL \u4E0E\u8840\u7F18\u6709\u4E13\u9879\u6D4B\u8BD5"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"StarRocks"}),(0,t.jsxs)(r.td,{children:["\u652F\u6301\u72EC\u7ACB\u7684 ",(0,t.jsx)(r.code,{children:"DISTRIBUTED BY"})," \u4E0E\u5173\u952E DDL"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,t.jsx)(r.td,{children:"\u5DF2\u6CE8\u518C\u89E3\u6790\u5668\uFF0C\u901A\u7528\u4E1A\u52A1\u5B9E\u73B0"})]})]})]}),"\n",(0,t.jsxs)(r.p,{children:["\u5B8C\u6574\u7684\u8BED\u6CD5\u5C42\u4E0E\u4E1A\u52A1\u5C42\u652F\u6491\u77E9\u9635\u89C1",(0,t.jsx)(r.a,{href:"/SqlParserX/docs/core/field-lineage",children:"\u6838\u5FC3\u89E3\u6790\u80FD\u529B\u4F7F\u7528"}),"\u4E0E\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/"})," \u76EE\u5F55\u4E0B\u7684\u80FD\u529B\u652F\u6301\u6587\u6863\u3002"]}),"\n",(0,t.jsx)(r.h2,{id:"\u5EF6\u4F38\u9605\u8BFB",children:"\u5EF6\u4F38\u9605\u8BFB"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"/SqlParserX/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,t.jsxs)(r.li,{children:["\u9879\u76EE\u80CC\u666F\uFF1A",(0,t.jsx)(r.a,{href:"/blog/origin-of-sqlparserx",children:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F"})]}),"\n"]})]})}function a(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(x,{...e})}):x(e)}},8453(e,r,s){s.d(r,{R:()=>i,x:()=>l});var d=s(6540);let t={},n=d.createContext(t);function i(e){let r=d.useContext(n);return d.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),d.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/925626eb.6fb277ac.js b/assets/js/925626eb.6fb277ac.js deleted file mode 100644 index 878a8be..0000000 --- a/assets/js/925626eb.6fb277ac.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["143"],{3205(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var s=JSON.parse('{"id":"core/table-lineage","title":"\u8868\u8840\u7F18\u89E3\u6790","description":"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB","source":"@site/versioned_docs/version-1.0/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/docs/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/table-lineage.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"\u8868\u8840\u7F18\u89E3\u6790","description":"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB","sidebar_label":"\u8868\u8840\u7F18\u89E3\u6790","sidebar_position":2},"sidebar":"docs","previous":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/core/field-lineage"},"next":{"title":"\u8868\u89E3\u6790","permalink":"/SqlParserX/docs/core/table-parse"}}'),l=n(4848),t=n(8453);let d={title:"\u8868\u8840\u7F18\u89E3\u6790",description:"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB",sidebar_label:"\u8868\u8840\u7F18\u89E3\u6790",sidebar_position:2},i="\u8868\u8840\u7F18\u89E3\u6790",a={},c=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.header,{children:(0,l.jsx)(r.h1,{id:"\u8868\u8840\u7F18\u89E3\u6790",children:"\u8868\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(r.blockquote,{children:["\n",(0,l.jsxs)(r.p,{children:[(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,l.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,l.jsxs)(r.p,{children:["\u6CBF\u7528\u5B98\u65B9 ",(0,l.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u4ECE\u83B7\u53D6\u89E3\u6790\u5668\u5230\u6253\u5370\u8868\u8840\u7F18\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790\u8868\u8840\u7F18\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3\u3001\u8BFB\u53D6\u7ED3\u679C\n System.out.println("\u76EE\u6807\u8868: " + result.getTargetTable());\n System.out.println("\u6765\u6E90\u8868: " + result.getSourceTables());\n\n List tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,l.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"\u76EE\u6807\u8868: user_order_summary\n\u6765\u6E90\u8868: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,l.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,l.jsxs)(r.p,{children:["\u4ECE SQL \u4E2D\u89E3\u6790",(0,l.jsx)(r.strong,{children:"\u76EE\u6807\u8868 \u2192 \u6765\u6E90\u8868"}),"\u7684\u8868\u7EA7\u8840\u7F18\u5173\u7CFB\uFF0C\u8986\u76D6 JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u4E0E CTE \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 \u6536\u96C6\u6765\u6E90\u8868 + \u76EE\u6807\u8868\n \u2192 TableLineageResult\n"})}),"\n",(0,l.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u9879\u76EE"}),(0,l.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,l.jsxs)(r.td,{children:[(0,l.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,l.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,l.jsxs)(r.td,{children:[(0,l.jsx)(r.code,{children:"TableLineageResult"}),"\uFF08",(0,l.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,l.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,l.jsx)(r.code,{children:"getTableLineages()"}),"\uFF09"]})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u8986\u76D6\u7ED3\u6784"}),(0,l.jsx)(r.td,{children:"JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u3001CTE"})]})]})]}),"\n",(0,l.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,l.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,l.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u5355\u8868 / \u591A\u8868 JOIN"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u89E3\u6790\u6240\u6709\u53C2\u4E0E\u8868"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u5F52\u5E76\u5404\u5206\u652F\u6765\u6E90\u8868"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u5B50\u67E5\u8BE2 / \u6D3E\u751F\u8868"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u9012\u5F52\u6536\u96C6\u771F\u5B9E\u8868"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"CTE\uFF08WITH\uFF09"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u8BC6\u522B CTE \u4E0E\u5176\u771F\u5B9E\u6765\u6E90"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:(0,l.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u8F93\u51FA\u76EE\u6807\u8868\u4E0E\u6765\u6E90\u8868"})]})]})]}),"\n",(0,l.jsxs)(r.blockquote,{children:["\n",(0,l.jsxs)(r.p,{children:["\u66F4\u591A\u8868\u8840\u7F18\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,l.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u8868\u8840\u7F18\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>d,x:()=>i});var s=n(6540);let l={},t=s.createContext(l);function d(e){let r=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/925626eb.8ec80d7f.js b/assets/js/925626eb.8ec80d7f.js new file mode 100644 index 0000000..d55caa4 --- /dev/null +++ b/assets/js/925626eb.8ec80d7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["143"],{3205(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var s=JSON.parse('{"id":"core/table-lineage","title":"\u8868\u8840\u7F18\u89E3\u6790","description":"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB","source":"@site/versioned_docs/version-1.0/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/docs/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/table-lineage.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"\u8868\u8840\u7F18\u89E3\u6790","description":"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB","sidebar_label":"\u8868\u8840\u7F18\u89E3\u6790","sidebar_position":2},"sidebar":"docs","previous":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/core/field-lineage"},"next":{"title":"\u8868\u89E3\u6790","permalink":"/SqlParserX/docs/core/table-parse"}}'),l=n(4848),t=n(8453);let d={title:"\u8868\u8840\u7F18\u89E3\u6790",description:"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB",sidebar_label:"\u8868\u8840\u7F18\u89E3\u6790",sidebar_position:2},i="\u8868\u8840\u7F18\u89E3\u6790",a={},c=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.header,{children:(0,l.jsx)(r.h1,{id:"\u8868\u8840\u7F18\u89E3\u6790",children:"\u8868\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(r.blockquote,{children:["\n",(0,l.jsxs)(r.p,{children:[(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,l.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,l.jsxs)(r.p,{children:["\u6CBF\u7528\u5B98\u65B9 ",(0,l.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u4ECE\u83B7\u53D6\u89E3\u6790\u5668\u5230\u6253\u5370\u8868\u8840\u7F18\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790\u8868\u8840\u7F18\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3\u3001\u8BFB\u53D6\u7ED3\u679C\n System.out.println("\u76EE\u6807\u8868: " + result.getTargetTable());\n System.out.println("\u6765\u6E90\u8868: " + result.getSourceTables());\n\n List tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,l.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"\u76EE\u6807\u8868: user_order_summary\n\u6765\u6E90\u8868: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,l.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,l.jsxs)(r.p,{children:["\u4ECE SQL \u4E2D\u89E3\u6790",(0,l.jsx)(r.strong,{children:"\u76EE\u6807\u8868 \u2192 \u6765\u6E90\u8868"}),"\u7684\u8868\u7EA7\u8840\u7F18\u5173\u7CFB\uFF0C\u8986\u76D6 JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u4E0E CTE \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 \u6536\u96C6\u6765\u6E90\u8868 + \u76EE\u6807\u8868\n \u2192 TableLineageResult\n"})}),"\n",(0,l.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u9879\u76EE"}),(0,l.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,l.jsxs)(r.td,{children:[(0,l.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,l.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,l.jsxs)(r.td,{children:[(0,l.jsx)(r.code,{children:"TableLineageResult"}),"\uFF08",(0,l.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,l.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,l.jsx)(r.code,{children:"getTableLineages()"}),"\uFF09"]})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u8986\u76D6\u7ED3\u6784"}),(0,l.jsx)(r.td,{children:"JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u3001CTE"})]})]})]}),"\n",(0,l.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,l.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,l.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u5355\u8868 / \u591A\u8868 JOIN"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u89E3\u6790\u6240\u6709\u53C2\u4E0E\u8868"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u5F52\u5E76\u5404\u5206\u652F\u6765\u6E90\u8868"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u5B50\u67E5\u8BE2 / \u6D3E\u751F\u8868"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u9012\u5F52\u6536\u96C6\u771F\u5B9E\u8868"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"CTE\uFF08WITH\uFF09"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u8BC6\u522B CTE \u4E0E\u5176\u771F\u5B9E\u6765\u6E90"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:(0,l.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u8F93\u51FA\u76EE\u6807\u8868\u4E0E\u6765\u6E90\u8868"})]})]})]}),"\n",(0,l.jsxs)(r.blockquote,{children:["\n",(0,l.jsxs)(r.p,{children:["\u66F4\u591A\u8868\u8840\u7F18\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,l.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u8868\u8840\u7F18\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>d,x:()=>i});var s=n(6540);let l={},t=s.createContext(l);function d(e){let r=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a110d8f6.2bc864a9.js b/assets/js/a110d8f6.2bc864a9.js deleted file mode 100644 index 3e09432..0000000 --- a/assets/js/a110d8f6.2bc864a9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7503"],{1412(e,r,t){t.r(r),t.d(r,{metadata:()=>a,default:()=>d,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>o});var a=JSON.parse('{"id":"core/parameter-compile","title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","description":"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL","source":"@site/docs/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/docs/next/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/parameter-compile.md","tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","description":"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL","sidebar_label":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","sidebar_position":6},"sidebar":"docs","previous":{"title":"\u51FD\u6570\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/function-parse"},"next":{"title":"\u8D21\u732E\u6307\u5357","permalink":"/SqlParserX/docs/next/contributing"}}'),s=t(4848),n=t(8453);let l={title:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",description:"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL",sidebar_label:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",sidebar_position:6},i="\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",o={},c=[{value:"\u8FD4\u56DE\u5185\u5BB9",id:"\u8FD4\u56DE\u5185\u5BB9",level:2}];function p(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",children:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1"})}),"\n",(0,s.jsxs)(r.p,{children:["SqlParserX \u53EF\u8BC6\u522B SELECT \u4E2D\u7684 ",(0,s.jsx)(r.code,{children:"${\u53D8\u91CF}"}),"\uFF0C\u8FD4\u56DE\u8F93\u5165\u53C2\u6570\u548C\u8F93\u51FA\u5B57\u6BB5\uFF1B\u4F20\u5165\u53C2\u6570\u503C\u540E\uFF0C\u53EF\u751F\u6210 JDBC ",(0,s.jsx)(r.code,{children:"?"})," \u5360\u4F4D\u7B26 SQL \u4E0E\u6309\u51FA\u73B0\u987A\u5E8F\u6392\u5217\u7684\u7ED1\u5B9A\u503C\u3002"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="ParameterCompileDemo.java"',children:'import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;\nimport com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.parameter.vo.ParseParameterResult;\nimport com.dtstack.sqlparserx.core.parser.base.parameter.vo.PrepareCompileResult;\n\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.Map;\n\nISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\n// \u7B2C\u4E00\u6B65\uFF1A\u63D0\u53D6\u8F93\u5165\u53C2\u6570\u4E0E\u8F93\u51FA\u5B57\u6BB5\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\nparsed.getInputParams().forEach(param ->\n System.out.println(param.getName() + " / " + param.getSqlPart()));\n\n// \u7B2C\u4E8C\u6B65\uFF1A\u4F20\u5165\u53C2\u6570\u503C\u5E76\u751F\u6210\u9884\u7F16\u8BD1 SQL\nMap values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,s.jsx)(r.p,{children:"\u8F93\u51FA\u793A\u4F8B\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,s.jsx)(r.h2,{id:"\u8FD4\u56DE\u5185\u5BB9",children:"\u8FD4\u56DE\u5185\u5BB9"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u9636\u6BB5"}),(0,s.jsx)(r.th,{children:"\u8FD4\u56DE\u5185\u5BB9"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u53C2\u6570\u63D0\u53D6"}),(0,s.jsx)(r.td,{children:"\u8F93\u5165\u53C2\u6570\u540D\u79F0\u3001\u7C7B\u578B\u3001\u662F\u5426\u5FC5\u586B\u3001\u9ED8\u8BA4\u503C\u3001SQL \u7247\u6BB5\u4EE5\u53CA\u8F93\u51FA\u5B57\u6BB5"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u9884\u7F16\u8BD1"}),(0,s.jsx)(r.td,{children:"\u683C\u5F0F\u5316\u540E\u7684\u5360\u4F4D\u7B26 SQL \u4E0E\u6709\u5E8F\u7ED1\u5B9A\u503C\u5217\u8868"})]})]})]}),"\n",(0,s.jsx)(r.p,{children:"\u5F53\u524D\u901A\u7528\u5B9E\u73B0\u9762\u5411 SELECT\uFF1B\u6392\u5E8F\u3001\u5206\u7EC4\u7B49\u6807\u8BC6\u7B26\u4F4D\u7F6E\u7684\u53D8\u91CF\u4F1A\u4EE5\u5185\u8054\u65B9\u5F0F\u5904\u7406\u3002"})]})}function d(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453(e,r,t){t.d(r,{R:()=>l,x:()=>i});var a=t(6540);let s={},n=a.createContext(s);function l(e){let r=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),a.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a110d8f6.d73a88c4.js b/assets/js/a110d8f6.d73a88c4.js new file mode 100644 index 0000000..3fb5ef7 --- /dev/null +++ b/assets/js/a110d8f6.d73a88c4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7503"],{1412(e,r,t){t.r(r),t.d(r,{metadata:()=>a,default:()=>d,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>o});var a=JSON.parse('{"id":"core/parameter-compile","title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","description":"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL","source":"@site/docs/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/docs/next/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/parameter-compile.md","tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","description":"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL","sidebar_label":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","sidebar_position":6},"sidebar":"docs","previous":{"title":"\u51FD\u6570\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/function-parse"},"next":{"title":"\u8D21\u732E\u6307\u5357","permalink":"/SqlParserX/docs/next/contributing"}}'),s=t(4848),n=t(8453);let l={title:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",description:"\u63D0\u53D6 SELECT \u52A8\u6001\u53C2\u6570\u5E76\u751F\u6210 JDBC \u9884\u7F16\u8BD1 SQL",sidebar_label:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",sidebar_position:6},i="\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",o={},c=[{value:"\u8FD4\u56DE\u5185\u5BB9",id:"\u8FD4\u56DE\u5185\u5BB9",level:2}];function p(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1",children:"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1"})}),"\n",(0,s.jsxs)(r.p,{children:["SqlParserX \u53EF\u8BC6\u522B SELECT \u4E2D\u7684 ",(0,s.jsx)(r.code,{children:"${\u53D8\u91CF}"}),"\uFF0C\u8FD4\u56DE\u8F93\u5165\u53C2\u6570\u548C\u8F93\u51FA\u5B57\u6BB5\uFF1B\u4F20\u5165\u53C2\u6570\u503C\u540E\uFF0C\u53EF\u751F\u6210 JDBC ",(0,s.jsx)(r.code,{children:"?"})," \u5360\u4F4D\u7B26 SQL \u4E0E\u6309\u51FA\u73B0\u987A\u5E8F\u6392\u5217\u7684\u7ED1\u5B9A\u503C\u3002"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="ParameterCompileDemo.java"',children:'import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;\nimport com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.parameter.vo.ParseParameterResult;\nimport com.dtstack.sqlparserx.core.parser.base.parameter.vo.PrepareCompileResult;\n\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.Map;\n\nISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\n// \u7B2C\u4E00\u6B65\uFF1A\u63D0\u53D6\u8F93\u5165\u53C2\u6570\u4E0E\u8F93\u51FA\u5B57\u6BB5\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\nparsed.getInputParams().forEach(param ->\n System.out.println(param.getName() + " / " + param.getSqlPart()));\n\n// \u7B2C\u4E8C\u6B65\uFF1A\u4F20\u5165\u53C2\u6570\u503C\u5E76\u751F\u6210\u9884\u7F16\u8BD1 SQL\nMap values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,s.jsx)(r.p,{children:"\u8F93\u51FA\u793A\u4F8B\uFF1A"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,s.jsx)(r.h2,{id:"\u8FD4\u56DE\u5185\u5BB9",children:"\u8FD4\u56DE\u5185\u5BB9"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"\u9636\u6BB5"}),(0,s.jsx)(r.th,{children:"\u8FD4\u56DE\u5185\u5BB9"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u53C2\u6570\u63D0\u53D6"}),(0,s.jsx)(r.td,{children:"\u8F93\u5165\u53C2\u6570\u540D\u79F0\u3001\u7C7B\u578B\u3001\u662F\u5426\u5FC5\u586B\u3001\u9ED8\u8BA4\u503C\u3001SQL \u7247\u6BB5\u4EE5\u53CA\u8F93\u51FA\u5B57\u6BB5"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"\u9884\u7F16\u8BD1"}),(0,s.jsx)(r.td,{children:"\u683C\u5F0F\u5316\u540E\u7684\u5360\u4F4D\u7B26 SQL \u4E0E\u6709\u5E8F\u7ED1\u5B9A\u503C\u5217\u8868"})]})]})]}),"\n",(0,s.jsx)(r.p,{children:"\u5F53\u524D\u901A\u7528\u5B9E\u73B0\u9762\u5411 SELECT\uFF1B\u6392\u5E8F\u3001\u5206\u7EC4\u7B49\u6807\u8BC6\u7B26\u4F4D\u7F6E\u7684\u53D8\u91CF\u4F1A\u4EE5\u5185\u8054\u65B9\u5F0F\u5904\u7406\u3002"})]})}function d(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453(e,r,t){t.d(r,{R:()=>l,x:()=>i});var a=t(6540);let s={},n=a.createContext(s);function l(e){let r=a.useContext(n);return a.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),a.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a9c167f1.2c2fe63e.js b/assets/js/a9c167f1.2c2fe63e.js deleted file mode 100644 index 9e73bde..0000000 --- a/assets/js/a9c167f1.2c2fe63e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3044"],{869(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var s=JSON.parse('{"id":"core/field-lineage","title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","description":"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB","source":"@site/docs/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/docs/next/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/field-lineage.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","description":"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB","sidebar_label":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","permalink":"/SqlParserX/docs/next/core/sql-type"},"next":{"title":"\u8868\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/table-lineage"}}'),l=r(4848),t=r(8453);let d={title:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",description:"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB",sidebar_label:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",sidebar_position:1},i="\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",a={},c=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",level:2},{value:"\u5B57\u6BB5\u573A\u666F",id:"\u5B57\u6BB5\u573A\u666F",level:3}];function o(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(n.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,l.jsxs)(n.p,{children:["\u4ECE\u83B7\u53D6\u89E3\u6790\u5668\u3001\u6784\u9020\u5143\u6570\u636E\u5230\u6253\u5370\u5B57\u6BB5\u8840\u7F18\u7684",(0,l.jsx)(n.strong,{children:"\u5B8C\u6574\u53EF\u8FD0\u884C"}),"\u7C7B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u51C6\u5907\u5143\u6570\u636E\uFF1A\u8868 -> \u5B57\u6BB5\u5217\u8868\uFF08\u7528\u4E8E select * / \u5B57\u6BB5\u5C55\u5F00\uFF09\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4\u3001\u6253\u5370\u7ED3\u679C\uFF1A\u76EE\u6807\u8868 + \u76EE\u6807\u5B57\u6BB5 -> \u6765\u6E90\u5B57\u6BB5\n System.out.println("\u76EE\u6807\u8868: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,l.jsx)(n.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"\u76EE\u6807\u8868: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,l.jsx)(n.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,l.jsxs)(n.p,{children:["\u4ECE SQL \u4E2D\u63A8\u5BFC ",(0,l.jsx)(n.strong,{children:"\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5"})," \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\uFF1A\u628A\u300C\u6765\u6E90 select \u5B57\u6BB5\u5217\u8868\u300D\u4E0E\u300C\u76EE\u6807\u5B57\u6BB5\u5217\u8868\u300D\u5404\u81EA\u5F52\u4E00\u4E3A ",(0,l.jsx)(n.code,{children:"(\u771F\u5B9E\u5B57\u6BB5, \u522B\u540D\u5B57\u6BB5, \u771F\u5B9E\u8868\u540D)"})," \u7684\u4E09\u5143\u7EC4\u96C6\u5408\uFF0C\u518D\u6309\u56FA\u5B9A\u5339\u914D\u89C4\u5219\u751F\u6210\u8840\u7F18\u3002\u5B57\u6BB5\u8840\u7F18\u7684\u8F93\u5165\u662F\u63D2\u5165/\u5EFA\u8868\u7C7B SQL\uFF0C\u7EAF\u67E5\u8BE2 SQL \u4E0D\u4EA7\u751F\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 \u76EE\u6807\u5B57\u6BB5\u5217\u8868 + \u6765\u6E90 select \u5B57\u6BB5\u5217\u8868\n \u2192 addColumnRelations \u9010\u6761\u5339\u914D\n \u2192 ColumnLineageResult\n"})}),"\n",(0,l.jsx)(n.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u9879\u76EE"}),(0,l.jsx)(n.th,{children:"\u5185\u5BB9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Core \u5165\u53E3"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,l.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"ColumnLineageResult"}),"\uFF08",(0,l.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,l.jsx)(n.code,{children:"getColumnLineages()"}),"\uFF09"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9002\u7528\u8BED\u53E5"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"SQLInsertStatement"}),"\u3001",(0,l.jsx)(n.code,{children:"SQLCreateTableStatement"}),"\uFF08AS SELECT\uFF09"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5143\u6570\u636E\u8F93\u5165"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"Map> tableColumnsMap"}),"\uFF08\u8868 \u2192 \u5B57\u6BB5\u5217\u8868\uFF09"]})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"5-\u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6"}),"\n",(0,l.jsx)(n.h3,{id:"\u5B57\u6BB5\u573A\u666F",children:"\u5B57\u6BB5\u573A\u666F"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u80FD\u529B\u9879"}),(0,l.jsx)(n.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,l.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"catalog.db.table.column"})," \u5B57\u6BB5\u8BC6\u522B"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(n.td,{children:"\u652F\u6301 Hive/Trino/StarRocks \u7B49\u591A catalog \u573A\u666F"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"db.table.column"})," \u5B57\u6BB5\u8BC6\u522B"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(n.td,{children:"MySQL/PostgreSQL \u7B49\u6807\u51C6\u7528\u6CD5"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:["\u5B57\u6BB5\u8868\u8FBE\u5F0F\u8BA1\u7B97\uFF08",(0,l.jsx)(n.code,{children:"SQLBinaryOpExpr"}),"\uFF09"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsxs)(n.td,{children:["\u5982 ",(0,l.jsx)(n.code,{children:"t5.level + 1"}),"\uFF0C\u5DE6\u53F3\u9012\u5F52\u6536\u96C6\u5B57\u6BB5"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"*"})," / ",(0,l.jsx)(n.code,{children:"xx.*"})," \u5C55\u5F00"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsxs)(n.td,{children:["\u4F9D\u636E\u5143\u6570\u636E ",(0,l.jsx)(n.code,{children:"tableColumnsMap"})," \u8BFB\u53D6\u5B57\u6BB5\uFF1B\u65E0\u5143\u6570\u636E\u4FDD\u7559 ",(0,l.jsx)(n.code,{children:"*"})]})]})]})]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:["\u66F4\u591A\u5B57\u6BB5\u573A\u666F\u3001\u8868\u8FBE\u5F0F\u4E0E\u5B50\u67E5\u8BE2\u7684\u8986\u76D6\u60C5\u51B5\uFF0C\u4EE5\u9879\u76EE ",(0,l.jsx)(n.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(o,{...e})}):o(e)}},8453(e,n,r){r.d(n,{R:()=>d,x:()=>i});var s=r(6540);let l={},t=s.createContext(l);function d(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a9c167f1.a288f643.js b/assets/js/a9c167f1.a288f643.js new file mode 100644 index 0000000..02c6266 --- /dev/null +++ b/assets/js/a9c167f1.a288f643.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3044"],{869(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var s=JSON.parse('{"id":"core/field-lineage","title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","description":"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB","source":"@site/docs/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/docs/next/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/field-lineage.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","description":"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB","sidebar_label":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","permalink":"/SqlParserX/docs/next/core/sql-type"},"next":{"title":"\u8868\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/table-lineage"}}'),l=r(4848),t=r(8453);let d={title:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",description:"\u4ECE SQL \u63A8\u5BFC\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5 \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB",sidebar_label:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",sidebar_position:1},i="\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",a={},c=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",level:2},{value:"\u5B57\u6BB5\u573A\u666F",id:"\u5B57\u6BB5\u573A\u666F",level:3}];function o(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(n.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,l.jsxs)(n.p,{children:["\u4ECE\u83B7\u53D6\u89E3\u6790\u5668\u3001\u6784\u9020\u5143\u6570\u636E\u5230\u6253\u5370\u5B57\u6BB5\u8840\u7F18\u7684",(0,l.jsx)(n.strong,{children:"\u5B8C\u6574\u53EF\u8FD0\u884C"}),"\u7C7B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u51C6\u5907\u5143\u6570\u636E\uFF1A\u8868 -> \u5B57\u6BB5\u5217\u8868\uFF08\u7528\u4E8E select * / \u5B57\u6BB5\u5C55\u5F00\uFF09\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4\u3001\u6253\u5370\u7ED3\u679C\uFF1A\u76EE\u6807\u8868 + \u76EE\u6807\u5B57\u6BB5 -> \u6765\u6E90\u5B57\u6BB5\n System.out.println("\u76EE\u6807\u8868: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,l.jsx)(n.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"\u76EE\u6807\u8868: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,l.jsx)(n.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,l.jsxs)(n.p,{children:["\u4ECE SQL \u4E2D\u63A8\u5BFC ",(0,l.jsx)(n.strong,{children:"\u6765\u6E90\u8868.\u6765\u6E90\u5B57\u6BB5 \u2192 \u76EE\u6807\u8868.\u76EE\u6807\u5B57\u6BB5"})," \u7684\u5B57\u6BB5\u7EA7\u8840\u7F18\u5173\u7CFB\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\uFF1A\u628A\u300C\u6765\u6E90 select \u5B57\u6BB5\u5217\u8868\u300D\u4E0E\u300C\u76EE\u6807\u5B57\u6BB5\u5217\u8868\u300D\u5404\u81EA\u5F52\u4E00\u4E3A ",(0,l.jsx)(n.code,{children:"(\u771F\u5B9E\u5B57\u6BB5, \u522B\u540D\u5B57\u6BB5, \u771F\u5B9E\u8868\u540D)"})," \u7684\u4E09\u5143\u7EC4\u96C6\u5408\uFF0C\u518D\u6309\u56FA\u5B9A\u5339\u914D\u89C4\u5219\u751F\u6210\u8840\u7F18\u3002\u5B57\u6BB5\u8840\u7F18\u7684\u8F93\u5165\u662F\u63D2\u5165/\u5EFA\u8868\u7C7B SQL\uFF0C\u7EAF\u67E5\u8BE2 SQL \u4E0D\u4EA7\u751F\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 \u76EE\u6807\u5B57\u6BB5\u5217\u8868 + \u6765\u6E90 select \u5B57\u6BB5\u5217\u8868\n \u2192 addColumnRelations \u9010\u6761\u5339\u914D\n \u2192 ColumnLineageResult\n"})}),"\n",(0,l.jsx)(n.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u9879\u76EE"}),(0,l.jsx)(n.th,{children:"\u5185\u5BB9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Core \u5165\u53E3"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,l.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"ColumnLineageResult"}),"\uFF08",(0,l.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,l.jsx)(n.code,{children:"getColumnLineages()"}),"\uFF09"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9002\u7528\u8BED\u53E5"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"SQLInsertStatement"}),"\u3001",(0,l.jsx)(n.code,{children:"SQLCreateTableStatement"}),"\uFF08AS SELECT\uFF09"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5143\u6570\u636E\u8F93\u5165"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"Map> tableColumnsMap"}),"\uFF08\u8868 \u2192 \u5B57\u6BB5\u5217\u8868\uFF09"]})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"5-\u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6\u4E0E\u6DF1\u5EA6"}),"\n",(0,l.jsx)(n.h3,{id:"\u5B57\u6BB5\u573A\u666F",children:"\u5B57\u6BB5\u573A\u666F"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u80FD\u529B\u9879"}),(0,l.jsx)(n.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,l.jsx)(n.th,{children:"\u8BF4\u660E"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"catalog.db.table.column"})," \u5B57\u6BB5\u8BC6\u522B"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(n.td,{children:"\u652F\u6301 Hive/Trino/StarRocks \u7B49\u591A catalog \u573A\u666F"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"db.table.column"})," \u5B57\u6BB5\u8BC6\u522B"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(n.td,{children:"MySQL/PostgreSQL \u7B49\u6807\u51C6\u7528\u6CD5"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:["\u5B57\u6BB5\u8868\u8FBE\u5F0F\u8BA1\u7B97\uFF08",(0,l.jsx)(n.code,{children:"SQLBinaryOpExpr"}),"\uFF09"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsxs)(n.td,{children:["\u5982 ",(0,l.jsx)(n.code,{children:"t5.level + 1"}),"\uFF0C\u5DE6\u53F3\u9012\u5F52\u6536\u96C6\u5B57\u6BB5"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"*"})," / ",(0,l.jsx)(n.code,{children:"xx.*"})," \u5C55\u5F00"]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsxs)(n.td,{children:["\u4F9D\u636E\u5143\u6570\u636E ",(0,l.jsx)(n.code,{children:"tableColumnsMap"})," \u8BFB\u53D6\u5B57\u6BB5\uFF1B\u65E0\u5143\u6570\u636E\u4FDD\u7559 ",(0,l.jsx)(n.code,{children:"*"})]})]})]})]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:["\u66F4\u591A\u5B57\u6BB5\u573A\u666F\u3001\u8868\u8FBE\u5F0F\u4E0E\u5B50\u67E5\u8BE2\u7684\u8986\u76D6\u60C5\u51B5\uFF0C\u4EE5\u9879\u76EE ",(0,l.jsx)(n.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(o,{...e})}):o(e)}},8453(e,n,r){r.d(n,{R:()=>d,x:()=>i});var s=r(6540);let l={},t=s.createContext(l);function d(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ae60c7b8.5efb8e17.js b/assets/js/ae60c7b8.5efb8e17.js deleted file mode 100644 index 51a9e31..0000000 --- a/assets/js/ae60c7b8.5efb8e17.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2684"],{3521(e,s,n){n.r(s),n.d(s,{metadata:()=>r,default:()=>h,frontMatter:()=>t,contentTitle:()=>c,toc:()=>o,assets:()=>d});var r=JSON.parse('{"id":"contributing","title":"\u8D21\u732E\u6307\u5357","description":"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303","source":"@site/versioned_docs/version-1.0/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/docs/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/contributing.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"\u8D21\u732E\u6307\u5357","description":"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303","sidebar_label":"\u8D21\u732E\u6307\u5357","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","permalink":"/SqlParserX/docs/core/parameter-compile"}}'),i=n(4848),l=n(8453);let t={title:"\u8D21\u732E\u6307\u5357",description:"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303",sidebar_label:"\u8D21\u732E\u6307\u5357",sidebar_position:1},c="\u8D21\u732E\u6307\u5357",d={},o=[{value:"\u53C2\u4E0E\u65B9\u5F0F",id:"\u53C2\u4E0E\u65B9\u5F0F",level:2},{value:"\u5F00\u53D1\u6D41\u7A0B",id:"\u5F00\u53D1\u6D41\u7A0B",level:2},{value:"\u4EE3\u7801\u7EA6\u5B9A",id:"\u4EE3\u7801\u7EA6\u5B9A",level:2},{value:"\u6587\u6863\u7EA6\u5B9A",id:"\u6587\u6863\u7EA6\u5B9A",level:2}];function a(e){let s={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"\u8D21\u732E\u6307\u5357",children:"\u8D21\u732E\u6307\u5357"})}),"\n",(0,i.jsx)(s.p,{children:"\u611F\u8C22\u4F60\u5BF9 SqlParserX \u7684\u5173\u6CE8\uFF01\u6B22\u8FCE\u901A\u8FC7 Issue\u3001Pull Request \u53C2\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,i.jsx)(s.h2,{id:"\u53C2\u4E0E\u65B9\u5F0F",children:"\u53C2\u4E0E\u65B9\u5F0F"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u63D0\u4EA4 Bug \u6216\u9700\u6C42\uFF1A",(0,i.jsx)(s.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u63D0\u4EA4\u4EE3\u7801\uFF1A",(0,i.jsx)(s.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u8BA8\u8BBA\u4EA4\u6D41\uFF1A\u89C1",(0,i.jsx)(s.a,{href:"/community",children:"\u793E\u533A"})]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u5F00\u53D1\u6D41\u7A0B",children:"\u5F00\u53D1\u6D41\u7A0B"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["Fork \u4ED3\u5E93\u5E76\u521B\u5EFA\u7279\u6027\u5206\u652F\uFF1A",(0,i.jsx)(s.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u672C\u5730\u6784\u5EFA\uFF1A",(0,i.jsx)(s.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u7F16\u5199\u4EE3\u7801\u4E0E\u6D4B\u8BD5\uFF0C\u786E\u4FDD ",(0,i.jsx)(s.code,{children:"mvn test"})," \u901A\u8FC7"]}),"\n",(0,i.jsx)(s.li,{children:"\u63D0\u4EA4\u5E76\u63A8\u9001\u5206\u652F\uFF0C\u53D1\u8D77 Pull Request"}),"\n",(0,i.jsx)(s.li,{children:"\u901A\u8FC7 CI \u4E0E Review \u540E\u5408\u5E76"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u4EE3\u7801\u7EA6\u5B9A",children:"\u4EE3\u7801\u7EA6\u5B9A"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u9075\u5FAA\u73B0\u6709\u6A21\u5757\u5206\u5C42\uFF1A\u8BED\u6CD5\u5DEE\u5F02\u6539 ",(0,i.jsx)(s.code,{children:"sqlparserx-syntax"}),"\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u6539 ",(0,i.jsx)(s.code,{children:"sqlparserx-core"})]}),"\n",(0,i.jsx)(s.li,{children:"\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u540C\u6B65\u8865\u5145\u80FD\u529B\u652F\u6301\u6587\u6863\u4E0E\u56DE\u5F52\u6D4B\u8BD5"}),"\n",(0,i.jsx)(s.li,{children:"\u4FDD\u6301\u4E0E\u73B0\u6709\u4EE3\u7801\u98CE\u683C\u4E00\u81F4\uFF0C\u4E0D\u5F15\u5165\u65E0\u5173\u4F9D\u8D56"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u6587\u6863\u7EA6\u5B9A",children:"\u6587\u6863\u7EA6\u5B9A"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u6587\u6863\u7EDF\u4E00\u7EF4\u62A4\u5728\u9879\u76EE\u6839\u76EE\u5F55 ",(0,i.jsx)(s.code,{children:"docs/"}),"\uFF0C\u672C\u7AD9\u6587\u6863\u4ECE\u4E2D\u540C\u6B65"]}),"\n",(0,i.jsx)(s.li,{children:"\u65B0\u589E\u89E3\u6790\u80FD\u529B\u65F6\uFF0C\u66F4\u65B0\u5BF9\u5E94\u300C\u80FD\u529B\u652F\u6301\u60C5\u51B5\u300D\u6587\u6863"}),"\n",(0,i.jsxs)(s.li,{children:["\u53C2\u8003",(0,i.jsx)(s.a,{href:"/SqlParserX/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u7406\u89E3\u4E24\u5C42\u6269\u5C55\u6A21\u5F0F"]}),"\n"]})]})}function h(e={}){let{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453(e,s,n){n.d(s,{R:()=>t,x:()=>c});var r=n(6540);let i={},l=r.createContext(i);function t(e){let s=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ae60c7b8.f2159cf2.js b/assets/js/ae60c7b8.f2159cf2.js new file mode 100644 index 0000000..e49574f --- /dev/null +++ b/assets/js/ae60c7b8.f2159cf2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2684"],{3521(e,s,n){n.r(s),n.d(s,{metadata:()=>r,default:()=>h,frontMatter:()=>t,contentTitle:()=>c,toc:()=>o,assets:()=>d});var r=JSON.parse('{"id":"contributing","title":"\u8D21\u732E\u6307\u5357","description":"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303","source":"@site/versioned_docs/version-1.0/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/docs/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/contributing.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"\u8D21\u732E\u6307\u5357","description":"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303","sidebar_label":"\u8D21\u732E\u6307\u5357","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u53C2\u6570\u63D0\u53D6\u4E0E\u9884\u7F16\u8BD1","permalink":"/SqlParserX/docs/core/parameter-compile"}}'),i=n(4848),l=n(8453);let t={title:"\u8D21\u732E\u6307\u5357",description:"\u53C2\u4E0E SqlParserX \u5F00\u53D1\u7684\u6D41\u7A0B\u4E0E\u89C4\u8303",sidebar_label:"\u8D21\u732E\u6307\u5357",sidebar_position:1},c="\u8D21\u732E\u6307\u5357",d={},o=[{value:"\u53C2\u4E0E\u65B9\u5F0F",id:"\u53C2\u4E0E\u65B9\u5F0F",level:2},{value:"\u5F00\u53D1\u6D41\u7A0B",id:"\u5F00\u53D1\u6D41\u7A0B",level:2},{value:"\u4EE3\u7801\u7EA6\u5B9A",id:"\u4EE3\u7801\u7EA6\u5B9A",level:2},{value:"\u6587\u6863\u7EA6\u5B9A",id:"\u6587\u6863\u7EA6\u5B9A",level:2}];function a(e){let s={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"\u8D21\u732E\u6307\u5357",children:"\u8D21\u732E\u6307\u5357"})}),"\n",(0,i.jsx)(s.p,{children:"\u611F\u8C22\u4F60\u5BF9 SqlParserX \u7684\u5173\u6CE8\uFF01\u6B22\u8FCE\u901A\u8FC7 Issue\u3001Pull Request \u53C2\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,i.jsx)(s.h2,{id:"\u53C2\u4E0E\u65B9\u5F0F",children:"\u53C2\u4E0E\u65B9\u5F0F"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u63D0\u4EA4 Bug \u6216\u9700\u6C42\uFF1A",(0,i.jsx)(s.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u63D0\u4EA4\u4EE3\u7801\uFF1A",(0,i.jsx)(s.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u8BA8\u8BBA\u4EA4\u6D41\uFF1A\u89C1",(0,i.jsx)(s.a,{href:"/community",children:"\u793E\u533A"})]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u5F00\u53D1\u6D41\u7A0B",children:"\u5F00\u53D1\u6D41\u7A0B"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["Fork \u4ED3\u5E93\u5E76\u521B\u5EFA\u7279\u6027\u5206\u652F\uFF1A",(0,i.jsx)(s.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u672C\u5730\u6784\u5EFA\uFF1A",(0,i.jsx)(s.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,i.jsxs)(s.li,{children:["\u7F16\u5199\u4EE3\u7801\u4E0E\u6D4B\u8BD5\uFF0C\u786E\u4FDD ",(0,i.jsx)(s.code,{children:"mvn test"})," \u901A\u8FC7"]}),"\n",(0,i.jsx)(s.li,{children:"\u63D0\u4EA4\u5E76\u63A8\u9001\u5206\u652F\uFF0C\u53D1\u8D77 Pull Request"}),"\n",(0,i.jsx)(s.li,{children:"\u901A\u8FC7 CI \u4E0E Review \u540E\u5408\u5E76"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u4EE3\u7801\u7EA6\u5B9A",children:"\u4EE3\u7801\u7EA6\u5B9A"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u9075\u5FAA\u73B0\u6709\u6A21\u5757\u5206\u5C42\uFF1A\u8BED\u6CD5\u5DEE\u5F02\u6539 ",(0,i.jsx)(s.code,{children:"sqlparserx-syntax"}),"\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u6539 ",(0,i.jsx)(s.code,{children:"sqlparserx-core"})]}),"\n",(0,i.jsx)(s.li,{children:"\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u540C\u6B65\u8865\u5145\u80FD\u529B\u652F\u6301\u6587\u6863\u4E0E\u56DE\u5F52\u6D4B\u8BD5"}),"\n",(0,i.jsx)(s.li,{children:"\u4FDD\u6301\u4E0E\u73B0\u6709\u4EE3\u7801\u98CE\u683C\u4E00\u81F4\uFF0C\u4E0D\u5F15\u5165\u65E0\u5173\u4F9D\u8D56"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"\u6587\u6863\u7EA6\u5B9A",children:"\u6587\u6863\u7EA6\u5B9A"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["\u6587\u6863\u7EDF\u4E00\u7EF4\u62A4\u5728\u9879\u76EE\u6839\u76EE\u5F55 ",(0,i.jsx)(s.code,{children:"docs/"}),"\uFF0C\u672C\u7AD9\u6587\u6863\u4ECE\u4E2D\u540C\u6B65"]}),"\n",(0,i.jsx)(s.li,{children:"\u65B0\u589E\u89E3\u6790\u80FD\u529B\u65F6\uFF0C\u66F4\u65B0\u5BF9\u5E94\u300C\u80FD\u529B\u652F\u6301\u60C5\u51B5\u300D\u6587\u6863"}),"\n",(0,i.jsxs)(s.li,{children:["\u53C2\u8003",(0,i.jsx)(s.a,{href:"/SqlParserX/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u7406\u89E3\u4E24\u5C42\u6269\u5C55\u6A21\u5F0F"]}),"\n"]})]})}function h(e={}){let{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453(e,s,n){n.d(s,{R:()=>t,x:()=>c});var r=n(6540);let i={},l=r.createContext(i);function t(e){let s=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/af051bb0.a9139a80.js b/assets/js/af051bb0.a9139a80.js deleted file mode 100644 index 9737e86..0000000 --- a/assets/js/af051bb0.a9139a80.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8585"],{8965(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>h,frontMatter:()=>c,contentTitle:()=>l,toc:()=>o,assets:()=>i});var t=JSON.parse('{"id":"core/sql-type","title":"SQL \u7C7B\u578B\u8BC6\u522B","description":"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B","source":"@site/versioned_docs/version-1.0/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/docs/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/sql-type.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","description":"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B","sidebar_label":"SQL \u7C7B\u578B\u8BC6\u522B","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","permalink":"/SqlParserX/docs/quickstart/setup"},"next":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/core/field-lineage"}}'),n=s(4848),d=s(8453);let c={title:"SQL \u7C7B\u578B\u8BC6\u522B",description:"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B",sidebar_label:"SQL \u7C7B\u578B\u8BC6\u522B",sidebar_position:1},l="SQL \u7C7B\u578B\u8BC6\u522B",i={},o=[{value:"\u652F\u6301\u8303\u56F4",id:"\u652F\u6301\u8303\u56F4",level:2}];function a(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"sql-\u7C7B\u578B\u8BC6\u522B",children:"SQL \u7C7B\u578B\u8BC6\u522B"})}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"parseSqlType"})," \u5148\u6309\u6240\u9009\u6570\u636E\u6E90\u65B9\u8A00\u6784\u5EFA Druid AST\uFF0C\u518D\u8FD4\u56DE\u7EDF\u4E00\u7684 ",(0,n.jsx)(r.code,{children:"SqlType"}),"\uFF0C\u9002\u5408\u8BED\u53E5\u8DEF\u7531\u3001\u5BA1\u8BA1\u5206\u7C7B\u548C\u6267\u884C\u7B56\u7565\u9009\u62E9\u3002"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="SqlTypeDemo.java"',children:'import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;\nimport com.dtstack.sqlparserx.core.enums.SqlType;\nimport com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,n.jsx)(r.h2,{id:"\u652F\u6301\u8303\u56F4",children:"\u652F\u6301\u8303\u56F4"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"\u5206\u7C7B"}),(0,n.jsx)(r.th,{children:"\u5178\u578B\u7C7B\u578B"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u67E5\u8BE2"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"QUERY"}),"\u3001",(0,n.jsx)(r.code,{children:"WITH_QUERY"}),"\u3001",(0,n.jsx)(r.code,{children:"QUERY_NO_FROM"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"DML"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"INSERT"}),"\u3001",(0,n.jsx)(r.code,{children:"UPDATE"}),"\u3001",(0,n.jsx)(r.code,{children:"DELETE"}),"\u3001",(0,n.jsx)(r.code,{children:"MERGE_INTO"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"DDL"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE"}),"\u3001",(0,n.jsx)(r.code,{children:"CREATE_AS"}),"\u3001",(0,n.jsx)(r.code,{children:"ALTER"}),"\u3001",(0,n.jsx)(r.code,{children:"DROP"}),"\u3001",(0,n.jsx)(r.code,{children:"TRUNCATE"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u7BA1\u7406\u4E0E\u67E5\u770B"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"SHOW_TABLES"}),"\u3001",(0,n.jsx)(r.code,{children:"SHOW_COLUMNS"}),"\u3001",(0,n.jsx)(r.code,{children:"DESC_TABLE"}),"\u3001",(0,n.jsx)(r.code,{children:"EXPLAIN"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u5176\u4ED6"}),(0,n.jsxs)(r.td,{children:["\u65E0\u6CD5\u5F52\u7C7B\u7684 AST \u8FD4\u56DE ",(0,n.jsx)(r.code,{children:"OTHER"})]})]})]})]}),"\n",(0,n.jsx)(r.p,{children:"\u5177\u4F53 SQL \u80FD\u5426\u6784\u5EFA AST\uFF0C\u4ECD\u53D6\u51B3\u4E8E\u6240\u9009\u6570\u636E\u6E90\u7684\u65B9\u8A00\u652F\u6301\u60C5\u51B5\u3002"})]})}function h(e={}){let{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453(e,r,s){s.d(r,{R:()=>c,x:()=>l});var t=s(6540);let n={},d=t.createContext(n);function c(e){let r=t.useContext(d);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),t.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/af051bb0.adcbbc72.js b/assets/js/af051bb0.adcbbc72.js new file mode 100644 index 0000000..bd51e29 --- /dev/null +++ b/assets/js/af051bb0.adcbbc72.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8585"],{8965(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>h,frontMatter:()=>c,contentTitle:()=>l,toc:()=>o,assets:()=>i});var t=JSON.parse('{"id":"core/sql-type","title":"SQL \u7C7B\u578B\u8BC6\u522B","description":"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B","source":"@site/versioned_docs/version-1.0/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/docs/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/sql-type.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","description":"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B","sidebar_label":"SQL \u7C7B\u578B\u8BC6\u522B","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","permalink":"/SqlParserX/docs/quickstart/setup"},"next":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/core/field-lineage"}}'),n=s(4848),d=s(8453);let c={title:"SQL \u7C7B\u578B\u8BC6\u522B",description:"\u57FA\u4E8E\u89E3\u6790\u540E\u7684\u8BED\u6CD5\u6811\u8BC6\u522B SQL \u4E1A\u52A1\u7C7B\u578B",sidebar_label:"SQL \u7C7B\u578B\u8BC6\u522B",sidebar_position:1},l="SQL \u7C7B\u578B\u8BC6\u522B",i={},o=[{value:"\u652F\u6301\u8303\u56F4",id:"\u652F\u6301\u8303\u56F4",level:2}];function a(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"sql-\u7C7B\u578B\u8BC6\u522B",children:"SQL \u7C7B\u578B\u8BC6\u522B"})}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"parseSqlType"})," \u5148\u6309\u6240\u9009\u6570\u636E\u6E90\u65B9\u8A00\u6784\u5EFA Druid AST\uFF0C\u518D\u8FD4\u56DE\u7EDF\u4E00\u7684 ",(0,n.jsx)(r.code,{children:"SqlType"}),"\uFF0C\u9002\u5408\u8BED\u53E5\u8DEF\u7531\u3001\u5BA1\u8BA1\u5206\u7C7B\u548C\u6267\u884C\u7B56\u7565\u9009\u62E9\u3002"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="SqlTypeDemo.java"',children:'import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;\nimport com.dtstack.sqlparserx.core.enums.SqlType;\nimport com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,n.jsx)(r.h2,{id:"\u652F\u6301\u8303\u56F4",children:"\u652F\u6301\u8303\u56F4"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"\u5206\u7C7B"}),(0,n.jsx)(r.th,{children:"\u5178\u578B\u7C7B\u578B"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u67E5\u8BE2"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"QUERY"}),"\u3001",(0,n.jsx)(r.code,{children:"WITH_QUERY"}),"\u3001",(0,n.jsx)(r.code,{children:"QUERY_NO_FROM"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"DML"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"INSERT"}),"\u3001",(0,n.jsx)(r.code,{children:"UPDATE"}),"\u3001",(0,n.jsx)(r.code,{children:"DELETE"}),"\u3001",(0,n.jsx)(r.code,{children:"MERGE_INTO"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"DDL"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE"}),"\u3001",(0,n.jsx)(r.code,{children:"CREATE_AS"}),"\u3001",(0,n.jsx)(r.code,{children:"ALTER"}),"\u3001",(0,n.jsx)(r.code,{children:"DROP"}),"\u3001",(0,n.jsx)(r.code,{children:"TRUNCATE"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u7BA1\u7406\u4E0E\u67E5\u770B"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"SHOW_TABLES"}),"\u3001",(0,n.jsx)(r.code,{children:"SHOW_COLUMNS"}),"\u3001",(0,n.jsx)(r.code,{children:"DESC_TABLE"}),"\u3001",(0,n.jsx)(r.code,{children:"EXPLAIN"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"\u5176\u4ED6"}),(0,n.jsxs)(r.td,{children:["\u65E0\u6CD5\u5F52\u7C7B\u7684 AST \u8FD4\u56DE ",(0,n.jsx)(r.code,{children:"OTHER"})]})]})]})]}),"\n",(0,n.jsx)(r.p,{children:"\u5177\u4F53 SQL \u80FD\u5426\u6784\u5EFA AST\uFF0C\u4ECD\u53D6\u51B3\u4E8E\u6240\u9009\u6570\u636E\u6E90\u7684\u65B9\u8A00\u652F\u6301\u60C5\u51B5\u3002"})]})}function h(e={}){let{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453(e,r,s){s.d(r,{R:()=>c,x:()=>l});var t=s(6540);let n={},d=t.createContext(n);function c(e){let r=t.useContext(d);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),t.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bf45ab0e.38f8f750.js b/assets/js/bf45ab0e.38f8f750.js new file mode 100644 index 0000000..7f48ea4 --- /dev/null +++ b/assets/js/bf45ab0e.38f8f750.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9575"],{7123(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>d,assets:()=>o});var n=JSON.parse('{"id":"quickstart/setup","title":"\u5FEB\u901F\u5F00\u59CB","description":"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B","source":"@site/docs/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/docs/next/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/quickstart/setup.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"\u5FEB\u901F\u5F00\u59CB","description":"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B","sidebar_label":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u67B6\u6784\u8BBE\u8BA1","permalink":"/SqlParserX/docs/next/about/architecture"},"next":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","permalink":"/SqlParserX/docs/next/core/sql-type"}}'),l=s(4848),t=s(8453);let a={title:"\u5FEB\u901F\u5F00\u59CB",description:"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B",sidebar_label:"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA",sidebar_position:1},i="\u5FEB\u901F\u5F00\u59CB",o={},d=[{value:"1. \u73AF\u5883\u8981\u6C42",id:"1-\u73AF\u5883\u8981\u6C42",level:2},{value:"2. \u5F15\u5165\u4F9D\u8D56",id:"2-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"3. Hello World\uFF1A\u89E3\u6790\u4E00\u6BB5 SQL",id:"3-hello-world\u89E3\u6790\u4E00\u6BB5-sql",level:2},{value:"4. \u4E0B\u4E00\u6B65",id:"4-\u4E0B\u4E00\u6B65",level:2}];function c(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.header,{children:(0,l.jsx)(r.h1,{id:"\u5FEB\u901F\u5F00\u59CB",children:"\u5FEB\u901F\u5F00\u59CB"})}),"\n",(0,l.jsx)(r.h2,{id:"1-\u73AF\u5883\u8981\u6C42",children:"1. \u73AF\u5883\u8981\u6C42"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u4F9D\u8D56"}),(0,l.jsx)(r.th,{children:"\u7248\u672C"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"JDK"}),(0,l.jsx)(r.td,{children:"Java 8+"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"Maven"}),(0,l.jsx)(r.td,{children:"3.6+"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsxs)(r.td,{children:["Node.js\uFF08\u4EC5 ",(0,l.jsx)(r.code,{children:"sqlparserx-ui"}),"\uFF09"]}),(0,l.jsx)(r.td,{children:">= 20"})]})]})]}),"\n",(0,l.jsx)(r.h2,{id:"2-\u5F15\u5165\u4F9D\u8D56",children:"2. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsxs)(r.p,{children:["\u5728\u4E1A\u52A1\u5DE5\u7A0B\u7684 ",(0,l.jsx)(r.code,{children:"pom.xml"})," \u4E2D\u5F15\u5165",(0,l.jsx)(r.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"})," ",(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(r.p,{children:[":::tip \u4F9D\u8D56\u8BF4\u660E\n",(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u4F1A",(0,l.jsx)(r.strong,{children:"\u4F20\u9012\u4F9D\u8D56"})," ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF08\u8BED\u6CD5\u5C42\uFF09\u4E0E\u5B98\u65B9 Druid\uFF0C\u56E0\u6B64\u4E1A\u52A1\u89E3\u6790\u53EA\u9700\u5F15\u5165 ",(0,l.jsx)(r.code,{children:"core"})," \u4E00\u4E2A\u5750\u6807\uFF1B\u82E5\u53EA\u505A SQL\u2192AST \u7684\u8BED\u6CD5\u89E3\u6790\uFF0C\u4E5F\u53EF\u4EE5\u5355\u72EC\u5F15\u5165 ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"}),"\u3002\n:::"]}),"\n",(0,l.jsxs)(r.p,{children:[":::note \u4ECE\u6E90\u7801\u4F7F\u7528\n",(0,l.jsx)(r.code,{children:"1.0-SNAPSHOT"})," \u82E5\u5C1A\u672A\u53D1\u5E03\u5230\u8FDC\u7A0B\u4ED3\u5E93\uFF0C\u8BF7\u5148\u62C9\u53D6\u6E90\u7801\u5E76\u5B89\u88C5\u5230\u672C\u5730\u4ED3\u5E93\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,l.jsx)(r.p,{children:"\u4E4B\u540E\u4E0A\u9762\u7684\u5750\u6807\u5373\u53EF\u5728\u672C\u5730\u76F4\u63A5\u4F7F\u7528\u3002\n:::"}),"\n",(0,l.jsx)(r.h2,{id:"3-hello-world\u89E3\u6790\u4E00\u6BB5-sql",children:"3. Hello World\uFF1A\u89E3\u6790\u4E00\u6BB5 SQL"}),"\n",(0,l.jsxs)(r.p,{children:["\u4E0B\u9762\u662F\u4E00\u4E2A",(0,l.jsx)(r.strong,{children:"\u5B8C\u6574\u53EF\u8FD0\u884C"}),"\u7684\u7C7B\uFF0C\u8986\u76D6\u89E3\u6790\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u4E0E\u51FD\u6570\u56DB\u7C7B\u80FD\u529B\uFF0C\n\u4E0E\u5B98\u65B9 ",(0,l.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u4E2D\u7684\u793A\u4F8B\u4FDD\u6301\u4E00\u81F4\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u6309\u6570\u636E\u6E90\u7C7B\u578B\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u652F\u6301 mysql/hive/doris/... 15+ \u65B9\u8A00\uFF09\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790\u771F\u5B9E\u8868\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("\u4E3B\u8868: " + tableResult.getMainTable().getName());\n System.out.println("\u6240\u6709\u8868: " + tableResult.getAllTableName());\n\n // 3\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165\u771F\u5B9E\u5B57\u6BB5\u5143\u6570\u636E\uFF09\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4\u3001\u89E3\u6790\u8868\u8840\u7F18\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("\u8868\u8840\u7F18: " + tableLineages);\n\n // 5\u3001\u89E3\u6790\u51FD\u6570\n Set functions = parser.parseFunction(sql);\n System.out.println("\u51FD\u6570\u96C6\u5408: " + functions);\n }\n}\n'})}),"\n",(0,l.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"\u4E3B\u8868: users\n\u6240\u6709\u8868: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n\u8868\u8840\u7F18: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\n\u51FD\u6570\u96C6\u5408: [sum, count]\n"})}),"\n",(0,l.jsx)(r.h2,{id:"4-\u4E0B\u4E00\u6B65",children:"4. \u4E0B\u4E00\u6B65"}),"\n",(0,l.jsxs)(r.p,{children:["\u5404\u6838\u5FC3\u80FD\u529B\u7684",(0,l.jsx)(r.strong,{children:"\u4F9D\u8D56\u5F15\u5165 + \u5B8C\u6574\u793A\u4F8B"}),"\u89C1\uFF1A"]}),"\n",(0,l.jsxs)(r.ul,{children:["\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/next/core/field-lineage",children:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/next/core/table-lineage",children:"\u8868\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/next/core/table-parse",children:"\u8868\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/next/core/function-parse",children:"\u51FD\u6570\u89E3\u6790"})}),"\n"]})]})}function u(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},8453(e,r,s){s.d(r,{R:()=>a,x:()=>i});var n=s(6540);let l={},t=n.createContext(l);function a(e){let r=n.useContext(t);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:a(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bf45ab0e.4702a368.js b/assets/js/bf45ab0e.4702a368.js deleted file mode 100644 index 5aca116..0000000 --- a/assets/js/bf45ab0e.4702a368.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9575"],{7123(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>d,assets:()=>o});var n=JSON.parse('{"id":"quickstart/setup","title":"\u5FEB\u901F\u5F00\u59CB","description":"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B","source":"@site/docs/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/docs/next/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/quickstart/setup.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"\u5FEB\u901F\u5F00\u59CB","description":"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B","sidebar_label":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u67B6\u6784\u8BBE\u8BA1","permalink":"/SqlParserX/docs/next/about/architecture"},"next":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","permalink":"/SqlParserX/docs/next/core/sql-type"}}'),l=s(4848),t=s(8453);let a={title:"\u5FEB\u901F\u5F00\u59CB",description:"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B",sidebar_label:"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA",sidebar_position:1},i="\u5FEB\u901F\u5F00\u59CB",o={},d=[{value:"1. \u73AF\u5883\u8981\u6C42",id:"1-\u73AF\u5883\u8981\u6C42",level:2},{value:"2. \u5F15\u5165\u4F9D\u8D56",id:"2-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"3. Hello World\uFF1A\u89E3\u6790\u4E00\u6BB5 SQL",id:"3-hello-world\u89E3\u6790\u4E00\u6BB5-sql",level:2},{value:"4. \u4E0B\u4E00\u6B65",id:"4-\u4E0B\u4E00\u6B65",level:2}];function c(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.header,{children:(0,l.jsx)(r.h1,{id:"\u5FEB\u901F\u5F00\u59CB",children:"\u5FEB\u901F\u5F00\u59CB"})}),"\n",(0,l.jsx)(r.h2,{id:"1-\u73AF\u5883\u8981\u6C42",children:"1. \u73AF\u5883\u8981\u6C42"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u4F9D\u8D56"}),(0,l.jsx)(r.th,{children:"\u7248\u672C"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"JDK"}),(0,l.jsx)(r.td,{children:"Java 8+"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"Maven"}),(0,l.jsx)(r.td,{children:"3.6+"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsxs)(r.td,{children:["Node.js\uFF08\u4EC5 ",(0,l.jsx)(r.code,{children:"sqlparserx-ui"}),"\uFF09"]}),(0,l.jsx)(r.td,{children:">= 20"})]})]})]}),"\n",(0,l.jsx)(r.h2,{id:"2-\u5F15\u5165\u4F9D\u8D56",children:"2. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsxs)(r.p,{children:["\u5728\u4E1A\u52A1\u5DE5\u7A0B\u7684 ",(0,l.jsx)(r.code,{children:"pom.xml"})," \u4E2D\u5F15\u5165",(0,l.jsx)(r.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"})," ",(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(r.p,{children:[":::tip \u4F9D\u8D56\u8BF4\u660E\n",(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u4F1A",(0,l.jsx)(r.strong,{children:"\u4F20\u9012\u4F9D\u8D56"})," ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF08\u8BED\u6CD5\u5C42\uFF09\u4E0E\u5B98\u65B9 Druid\uFF0C\u56E0\u6B64\u4E1A\u52A1\u89E3\u6790\u53EA\u9700\u5F15\u5165 ",(0,l.jsx)(r.code,{children:"core"})," \u4E00\u4E2A\u5750\u6807\uFF1B\u82E5\u53EA\u505A SQL\u2192AST \u7684\u8BED\u6CD5\u89E3\u6790\uFF0C\u4E5F\u53EF\u4EE5\u5355\u72EC\u5F15\u5165 ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"}),"\u3002\n:::"]}),"\n",(0,l.jsxs)(r.p,{children:[":::note \u4ECE\u6E90\u7801\u4F7F\u7528\n",(0,l.jsx)(r.code,{children:"1.0-SNAPSHOT"})," \u82E5\u5C1A\u672A\u53D1\u5E03\u5230\u8FDC\u7A0B\u4ED3\u5E93\uFF0C\u8BF7\u5148\u62C9\u53D6\u6E90\u7801\u5E76\u5B89\u88C5\u5230\u672C\u5730\u4ED3\u5E93\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,l.jsx)(r.p,{children:"\u4E4B\u540E\u4E0A\u9762\u7684\u5750\u6807\u5373\u53EF\u5728\u672C\u5730\u76F4\u63A5\u4F7F\u7528\u3002\n:::"}),"\n",(0,l.jsx)(r.h2,{id:"3-hello-world\u89E3\u6790\u4E00\u6BB5-sql",children:"3. Hello World\uFF1A\u89E3\u6790\u4E00\u6BB5 SQL"}),"\n",(0,l.jsxs)(r.p,{children:["\u4E0B\u9762\u662F\u4E00\u4E2A",(0,l.jsx)(r.strong,{children:"\u5B8C\u6574\u53EF\u8FD0\u884C"}),"\u7684\u7C7B\uFF0C\u8986\u76D6\u89E3\u6790\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u4E0E\u51FD\u6570\u56DB\u7C7B\u80FD\u529B\uFF0C\n\u4E0E\u5B98\u65B9 ",(0,l.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u4E2D\u7684\u793A\u4F8B\u4FDD\u6301\u4E00\u81F4\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u6309\u6570\u636E\u6E90\u7C7B\u578B\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u652F\u6301 mysql/hive/doris/... 15+ \u65B9\u8A00\uFF09\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790\u771F\u5B9E\u8868\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("\u4E3B\u8868: " + tableResult.getMainTable().getName());\n System.out.println("\u6240\u6709\u8868: " + tableResult.getAllTableName());\n\n // 3\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165\u771F\u5B9E\u5B57\u6BB5\u5143\u6570\u636E\uFF09\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4\u3001\u89E3\u6790\u8868\u8840\u7F18\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("\u8868\u8840\u7F18: " + tableLineages);\n\n // 5\u3001\u89E3\u6790\u51FD\u6570\n Set functions = parser.parseFunction(sql);\n System.out.println("\u51FD\u6570\u96C6\u5408: " + functions);\n }\n}\n'})}),"\n",(0,l.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"\u4E3B\u8868: users\n\u6240\u6709\u8868: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n\u8868\u8840\u7F18: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\n\u51FD\u6570\u96C6\u5408: [sum, count]\n"})}),"\n",(0,l.jsx)(r.h2,{id:"4-\u4E0B\u4E00\u6B65",children:"4. \u4E0B\u4E00\u6B65"}),"\n",(0,l.jsxs)(r.p,{children:["\u5404\u6838\u5FC3\u80FD\u529B\u7684",(0,l.jsx)(r.strong,{children:"\u4F9D\u8D56\u5F15\u5165 + \u5B8C\u6574\u793A\u4F8B"}),"\u89C1\uFF1A"]}),"\n",(0,l.jsxs)(r.ul,{children:["\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/next/core/field-lineage",children:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/next/core/table-lineage",children:"\u8868\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/next/core/table-parse",children:"\u8868\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/next/core/function-parse",children:"\u51FD\u6570\u89E3\u6790"})}),"\n"]})]})}function u(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},8453(e,r,s){s.d(r,{R:()=>a,x:()=>i});var n=s(6540);let l={},t=n.createContext(l);function a(e){let r=n.useContext(t);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:a(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dbbf4deb.9562b6f7.js b/assets/js/dbbf4deb.9562b6f7.js deleted file mode 100644 index 81d41e1..0000000 --- a/assets/js/dbbf4deb.9562b6f7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1837"],{3715(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>i,contentTitle:()=>d,toc:()=>c,assets:()=>a});var n=JSON.parse('{"id":"about/architecture","title":"\u67B6\u6784\u8BBE\u8BA1","description":"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784","source":"@site/versioned_docs/version-1.0/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/docs/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/about/architecture.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"\u67B6\u6784\u8BBE\u8BA1","description":"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784","sidebar_label":"\u67B6\u6784\u8BBE\u8BA1","sidebar_position":2},"sidebar":"docs","previous":{"title":"SqlParserX\u4ECB\u7ECD","permalink":"/SqlParserX/docs/about/introduction"},"next":{"title":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","permalink":"/SqlParserX/docs/quickstart/setup"}}'),t=s(4848),l=s(8453);let i={title:"\u67B6\u6784\u8BBE\u8BA1",description:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",sidebar_label:"\u67B6\u6784\u8BBE\u8BA1",sidebar_position:2},d="SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",a={},c=[{value:"\u603B\u4F53\u67B6\u6784",id:"\u603B\u4F53\u67B6\u6784",level:2},{value:"\u4E24\u5C42\u804C\u8D23",id:"\u4E24\u5C42\u804C\u8D23",level:2},{value:"\u6A21\u5757\u4F9D\u8D56",id:"\u6A21\u5757\u4F9D\u8D56",level:2}];function o(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"sqlparserx-\u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",children:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784"})}),"\n",(0,t.jsx)(r.p,{children:"SqlParserX \u7684\u89E3\u6790\u5185\u6838\u7531\u4E24\u5957\u76F8\u4E92\u8854\u63A5\u3001\u7ED3\u6784\u5BF9\u79F0\u7684\u6269\u5C55\u4F53\u7CFB\u7EC4\u6210\uFF0C\u5206\u522B\u843D\u5728\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF1A"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsxs)(r.strong,{children:["SQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u5B98\u65B9 Druid\uFF0C\u901A\u8FC7\u7EDF\u4E00\u7684\u65B9\u8A00\u8DEF\u7531\u3001Parser \u57FA\u5EA7\u548C AST \u6A21\u578B\uFF0C\u6269\u5C55\u4E0D\u540C\u6570\u636E\u6E90\u7684 Lexer\u3001StatementParser \u4E0E AST Node\u3002"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsxs)(r.strong,{children:["SqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u901A\u8FC7\u7EDF\u4E00\u7684\u65B9\u8A00\u8DEF\u7531\u3001",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u5951\u7EA6\u548C\u4E1A\u52A1 Client\uFF0C\u6269\u5C55\u4E0D\u540C\u6570\u636E\u6E90\u7684\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u4E0E SQL \u6539\u5199\u903B\u8F91\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:["\u4E24\u5C42\u90FD\u9075\u5FAA\u201C",(0,t.jsx)(r.strong,{children:"\u7EDF\u4E00\u5165\u53E3 \u2192 \u901A\u7528\u57FA\u5EA7 \u2192 \u7EDF\u4E00\u6269\u5C55\u70B9 \u2192 \u6570\u636E\u6E90\u5B9E\u73B0 \u2192 \u7EDF\u4E00\u7ED3\u679C"}),"\u201D\u7684\u6A21\u5F0F\u3002\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728 Druid \u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728 SqlParserX \u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,t.jsx)(r.code,{children:"DbType"})," \u548C Druid AST \u5BF9\u9F50\u3002"]}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.img,{alt:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",src:s(1440).A+"",width:"1745",height:"1361"})}),"\n",(0,t.jsx)(r.h2,{id:"\u603B\u4F53\u67B6\u6784",children:"\u603B\u4F53\u67B6\u6784"}),"\n",(0,t.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CSqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42]\n direction LR\n B_ROUTE[\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531
    SqlParserFactory]\n B_BASE[\u7EDF\u4E00\u4E1A\u52A1\u57FA\u5EA7
    ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[\u7EDF\u4E00\u6269\u5C55\u70B9
    \u65B9\u8A00 Client \xb7 \u89E3\u6790\u7B56\u7565]\n B_DIALECT[\u6570\u636E\u6E90\u4E1A\u52A1\u5B9E\u73B0
    MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[\u7EDF\u4E00\u4E1A\u52A1\u7ED3\u679C
    \u8868 \xb7 \u5EFA\u8868\u7ED3\u6784 \xb7 \u8840\u7F18 \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid]\n direction LR\n S_ROUTE[\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531
    SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[\u7EDF\u4E00\u8BED\u6CD5\u57FA\u5EA7
    Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[\u7EDF\u4E00\u6269\u5C55\u70B9
    \u65B9\u8A00 Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[\u6570\u636E\u6E90\u8BED\u6CD5\u5B9E\u73B0
    MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[\u7EDF\u4E00\u8BED\u6CD5\u7ED3\u679C
    SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType \u5BF9\u9F50 .-> S_ROUTE\n B_DIALECT -. \u540C\u4E00\u6570\u636E\u6E90\u65B9\u8A00 .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,t.jsx)(r.h2,{id:"\u4E24\u5C42\u804C\u8D23",children:"\u4E24\u5C42\u804C\u8D23"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u7EDF\u4E00\u6269\u5C55\u9636\u6BB5"}),(0,t.jsxs)(r.th,{children:["SQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),(0,t.jsxs)(r.th,{children:["SqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-core"}),"\uFF09"]})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SqlSyntaxParserFactory"})," \u6309 ",(0,t.jsx)(r.code,{children:"DbType"})," \u9009\u62E9\u5BF9\u5E94\u8BED\u6CD5\u65B9\u8A00"]}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SqlParserFactory"})," \u6839\u636E\u540C\u4E00\u4E2A ",(0,t.jsx)(r.code,{children:"DbType"})," \u9009\u62E9\u4E1A\u52A1\u89E3\u6790\u5668"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u901A\u7528\u57FA\u5EA7"}),(0,t.jsx)(r.td,{children:"\u901A\u7528 Lexer\u3001StatementParser \u548C AST"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ISqlParser"}),"\u3001",(0,t.jsx)(r.code,{children:"BaseSqlParser"})," \u548C Base Client"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u6269\u5C55\u70B9"}),(0,t.jsx)(r.td,{children:"\u65B9\u8A00 Lexer\u3001\u65B9\u8A00 StatementParser\u3001\u65B9\u8A00 AST Node"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"IParseTableClient"}),"\u3001",(0,t.jsx)(r.code,{children:"IColumnLineageClient"}),"\u3001",(0,t.jsx)(r.code,{children:"ITableLineageClient"}),"\u3001\u89E3\u6790\u7B56\u7565\u7B49"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6570\u636E\u6E90\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:"MySQL\u3001Doris\u3001Oracle\u3001Hive \u7B49 Druid \u65B9\u8A00\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:"MySQL\u3001Doris\u3001StarRocks\u3001Hive \u7B49\u4E1A\u52A1\u65B9\u8A00\u5B9E\u73B0"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u7ED3\u679C"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SQLStatement"})," AST"]}),(0,t.jsx)(r.td,{children:"\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u3001\u51FD\u6570\u53CA\u6539\u5199\u540E\u7684 SQL"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6A21\u5757\u4F9D\u8D56",children:"\u6A21\u5757\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,t.jsxs)(r.p,{children:["\u4E1A\u52A1\u6269\u5C55\u9075\u5FAA ",(0,t.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,t.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 \u65B9\u8A00\u5B9E\u73B0\u7684\u6A21\u5F0F\u3002\u5B8C\u6574\u7684\u6A21\u5757\u4F9D\u8D56\u4E0E\u5305\u7ED3\u6784\u89C1 ",(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u6A21\u5757\u7684 README\u3002"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},1440(e,r,s){s.d(r,{A:()=>n});let n=s.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-c7796d93ff72c04ff0bb409eba10ae82.png"},8453(e,r,s){s.d(r,{R:()=>i,x:()=>d});var n=s(6540);let t={},l=n.createContext(t);function i(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dbbf4deb.bd47b7ef.js b/assets/js/dbbf4deb.bd47b7ef.js new file mode 100644 index 0000000..d2d0771 --- /dev/null +++ b/assets/js/dbbf4deb.bd47b7ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1837"],{3715(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>h,frontMatter:()=>i,contentTitle:()=>d,toc:()=>c,assets:()=>a});var n=JSON.parse('{"id":"about/architecture","title":"\u67B6\u6784\u8BBE\u8BA1","description":"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784","source":"@site/versioned_docs/version-1.0/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/docs/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/about/architecture.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"\u67B6\u6784\u8BBE\u8BA1","description":"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784","sidebar_label":"\u67B6\u6784\u8BBE\u8BA1","sidebar_position":2},"sidebar":"docs","previous":{"title":"SqlParserX\u4ECB\u7ECD","permalink":"/SqlParserX/docs/about/introduction"},"next":{"title":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","permalink":"/SqlParserX/docs/quickstart/setup"}}'),t=s(4848),l=s(8453);let i={title:"\u67B6\u6784\u8BBE\u8BA1",description:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",sidebar_label:"\u67B6\u6784\u8BBE\u8BA1",sidebar_position:2},d="SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",a={},c=[{value:"\u603B\u4F53\u67B6\u6784",id:"\u603B\u4F53\u67B6\u6784",level:2},{value:"\u4E24\u5C42\u804C\u8D23",id:"\u4E24\u5C42\u804C\u8D23",level:2},{value:"\u6A21\u5757\u4F9D\u8D56",id:"\u6A21\u5757\u4F9D\u8D56",level:2}];function o(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"sqlparserx-\u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",children:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784"})}),"\n",(0,t.jsx)(r.p,{children:"SqlParserX \u7684\u89E3\u6790\u5185\u6838\u7531\u4E24\u5957\u76F8\u4E92\u8854\u63A5\u3001\u7ED3\u6784\u5BF9\u79F0\u7684\u6269\u5C55\u4F53\u7CFB\u7EC4\u6210\uFF0C\u5206\u522B\u843D\u5728\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF1A"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsxs)(r.strong,{children:["SQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u5B98\u65B9 Druid\uFF0C\u901A\u8FC7\u7EDF\u4E00\u7684\u65B9\u8A00\u8DEF\u7531\u3001Parser \u57FA\u5EA7\u548C AST \u6A21\u578B\uFF0C\u6269\u5C55\u4E0D\u540C\u6570\u636E\u6E90\u7684 Lexer\u3001StatementParser \u4E0E AST Node\u3002"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsxs)(r.strong,{children:["SqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u901A\u8FC7\u7EDF\u4E00\u7684\u65B9\u8A00\u8DEF\u7531\u3001",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u5951\u7EA6\u548C\u4E1A\u52A1 Client\uFF0C\u6269\u5C55\u4E0D\u540C\u6570\u636E\u6E90\u7684\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u4E0E SQL \u6539\u5199\u903B\u8F91\u3002"]}),"\n"]}),"\n",(0,t.jsxs)(r.p,{children:["\u4E24\u5C42\u90FD\u9075\u5FAA\u201C",(0,t.jsx)(r.strong,{children:"\u7EDF\u4E00\u5165\u53E3 \u2192 \u901A\u7528\u57FA\u5EA7 \u2192 \u7EDF\u4E00\u6269\u5C55\u70B9 \u2192 \u6570\u636E\u6E90\u5B9E\u73B0 \u2192 \u7EDF\u4E00\u7ED3\u679C"}),"\u201D\u7684\u6A21\u5F0F\u3002\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728 Druid \u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728 SqlParserX \u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,t.jsx)(r.code,{children:"DbType"})," \u548C Druid AST \u5BF9\u9F50\u3002"]}),"\n",(0,t.jsx)(r.p,{children:(0,t.jsx)(r.img,{alt:"SqlParserX \u53CC\u5C42\u7EDF\u4E00\u6269\u5C55\u67B6\u6784",src:s(1440).A+"",width:"1745",height:"1361"})}),"\n",(0,t.jsx)(r.h2,{id:"\u603B\u4F53\u67B6\u6784",children:"\u603B\u4F53\u67B6\u6784"}),"\n",(0,t.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CSqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42]\n direction LR\n B_ROUTE[\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531
    SqlParserFactory]\n B_BASE[\u7EDF\u4E00\u4E1A\u52A1\u57FA\u5EA7
    ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[\u7EDF\u4E00\u6269\u5C55\u70B9
    \u65B9\u8A00 Client \xb7 \u89E3\u6790\u7B56\u7565]\n B_DIALECT[\u6570\u636E\u6E90\u4E1A\u52A1\u5B9E\u73B0
    MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[\u7EDF\u4E00\u4E1A\u52A1\u7ED3\u679C
    \u8868 \xb7 \u5EFA\u8868\u7ED3\u6784 \xb7 \u8840\u7F18 \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid]\n direction LR\n S_ROUTE[\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531
    SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[\u7EDF\u4E00\u8BED\u6CD5\u57FA\u5EA7
    Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[\u7EDF\u4E00\u6269\u5C55\u70B9
    \u65B9\u8A00 Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[\u6570\u636E\u6E90\u8BED\u6CD5\u5B9E\u73B0
    MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[\u7EDF\u4E00\u8BED\u6CD5\u7ED3\u679C
    SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType \u5BF9\u9F50 .-> S_ROUTE\n B_DIALECT -. \u540C\u4E00\u6570\u636E\u6E90\u65B9\u8A00 .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,t.jsx)(r.h2,{id:"\u4E24\u5C42\u804C\u8D23",children:"\u4E24\u5C42\u804C\u8D23"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u7EDF\u4E00\u6269\u5C55\u9636\u6BB5"}),(0,t.jsxs)(r.th,{children:["SQL \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),(0,t.jsxs)(r.th,{children:["SqlParserX \u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,t.jsx)(r.code,{children:"sqlparserx-core"}),"\uFF09"]})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u65B9\u8A00\u8DEF\u7531"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SqlSyntaxParserFactory"})," \u6309 ",(0,t.jsx)(r.code,{children:"DbType"})," \u9009\u62E9\u5BF9\u5E94\u8BED\u6CD5\u65B9\u8A00"]}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SqlParserFactory"})," \u6839\u636E\u540C\u4E00\u4E2A ",(0,t.jsx)(r.code,{children:"DbType"})," \u9009\u62E9\u4E1A\u52A1\u89E3\u6790\u5668"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u901A\u7528\u57FA\u5EA7"}),(0,t.jsx)(r.td,{children:"\u901A\u7528 Lexer\u3001StatementParser \u548C AST"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"ISqlParser"}),"\u3001",(0,t.jsx)(r.code,{children:"BaseSqlParser"})," \u548C Base Client"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u6269\u5C55\u70B9"}),(0,t.jsx)(r.td,{children:"\u65B9\u8A00 Lexer\u3001\u65B9\u8A00 StatementParser\u3001\u65B9\u8A00 AST Node"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"IParseTableClient"}),"\u3001",(0,t.jsx)(r.code,{children:"IColumnLineageClient"}),"\u3001",(0,t.jsx)(r.code,{children:"ITableLineageClient"}),"\u3001\u89E3\u6790\u7B56\u7565\u7B49"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u6570\u636E\u6E90\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:"MySQL\u3001Doris\u3001Oracle\u3001Hive \u7B49 Druid \u65B9\u8A00\u5B9E\u73B0"}),(0,t.jsx)(r.td,{children:"MySQL\u3001Doris\u3001StarRocks\u3001Hive \u7B49\u4E1A\u52A1\u65B9\u8A00\u5B9E\u73B0"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u7EDF\u4E00\u7ED3\u679C"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"SQLStatement"})," AST"]}),(0,t.jsx)(r.td,{children:"\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u3001\u51FD\u6570\u53CA\u6539\u5199\u540E\u7684 SQL"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"\u6A21\u5757\u4F9D\u8D56",children:"\u6A21\u5757\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,t.jsxs)(r.p,{children:["\u4E1A\u52A1\u6269\u5C55\u9075\u5FAA ",(0,t.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,t.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,t.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 \u65B9\u8A00\u5B9E\u73B0\u7684\u6A21\u5F0F\u3002\u5B8C\u6574\u7684\u6A21\u5757\u4F9D\u8D56\u4E0E\u5305\u7ED3\u6784\u89C1 ",(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u6A21\u5757\u7684 README\u3002"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},1440(e,r,s){s.d(r,{A:()=>n});let n=s.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-c7796d93ff72c04ff0bb409eba10ae82.png"},8453(e,r,s){s.d(r,{R:()=>i,x:()=>d});var n=s(6540);let t={},l=n.createContext(t);function i(e){let r=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e0e79246.2dd3162a.js b/assets/js/e0e79246.2dd3162a.js deleted file mode 100644 index 1042ab4..0000000 --- a/assets/js/e0e79246.2dd3162a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9784"],{7651(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>u,frontMatter:()=>t,contentTitle:()=>i,toc:()=>d,assets:()=>o});var n=JSON.parse('{"id":"quickstart/setup","title":"\u5FEB\u901F\u5F00\u59CB","description":"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B","source":"@site/versioned_docs/version-1.0/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/docs/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/quickstart/setup.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"\u5FEB\u901F\u5F00\u59CB","description":"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B","sidebar_label":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u67B6\u6784\u8BBE\u8BA1","permalink":"/SqlParserX/docs/about/architecture"},"next":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","permalink":"/SqlParserX/docs/core/sql-type"}}'),l=s(4848),a=s(8453);let t={title:"\u5FEB\u901F\u5F00\u59CB",description:"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B",sidebar_label:"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA",sidebar_position:1},i="\u5FEB\u901F\u5F00\u59CB",o={},d=[{value:"1. \u73AF\u5883\u8981\u6C42",id:"1-\u73AF\u5883\u8981\u6C42",level:2},{value:"2. \u5F15\u5165\u4F9D\u8D56",id:"2-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"3. Hello World\uFF1A\u89E3\u6790\u4E00\u6BB5 SQL",id:"3-hello-world\u89E3\u6790\u4E00\u6BB5-sql",level:2},{value:"4. \u4E0B\u4E00\u6B65",id:"4-\u4E0B\u4E00\u6B65",level:2}];function c(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.header,{children:(0,l.jsx)(r.h1,{id:"\u5FEB\u901F\u5F00\u59CB",children:"\u5FEB\u901F\u5F00\u59CB"})}),"\n",(0,l.jsx)(r.h2,{id:"1-\u73AF\u5883\u8981\u6C42",children:"1. \u73AF\u5883\u8981\u6C42"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u4F9D\u8D56"}),(0,l.jsx)(r.th,{children:"\u7248\u672C"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"JDK"}),(0,l.jsx)(r.td,{children:"Java 8+"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"Maven"}),(0,l.jsx)(r.td,{children:"3.6+"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsxs)(r.td,{children:["Node.js\uFF08\u4EC5 ",(0,l.jsx)(r.code,{children:"sqlparserx-ui"}),"\uFF09"]}),(0,l.jsx)(r.td,{children:">= 20"})]})]})]}),"\n",(0,l.jsx)(r.h2,{id:"2-\u5F15\u5165\u4F9D\u8D56",children:"2. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsxs)(r.p,{children:["\u5728\u4E1A\u52A1\u5DE5\u7A0B\u7684 ",(0,l.jsx)(r.code,{children:"pom.xml"})," \u4E2D\u5F15\u5165",(0,l.jsx)(r.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"})," ",(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(r.p,{children:[":::tip \u4F9D\u8D56\u8BF4\u660E\n",(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u4F1A",(0,l.jsx)(r.strong,{children:"\u4F20\u9012\u4F9D\u8D56"})," ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF08\u8BED\u6CD5\u5C42\uFF09\u4E0E\u5B98\u65B9 Druid\uFF0C\u56E0\u6B64\u4E1A\u52A1\u89E3\u6790\u53EA\u9700\u5F15\u5165 ",(0,l.jsx)(r.code,{children:"core"})," \u4E00\u4E2A\u5750\u6807\uFF1B\u82E5\u53EA\u505A SQL\u2192AST \u7684\u8BED\u6CD5\u89E3\u6790\uFF0C\u4E5F\u53EF\u4EE5\u5355\u72EC\u5F15\u5165 ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"}),"\u3002\n:::"]}),"\n",(0,l.jsxs)(r.p,{children:[":::note \u4ECE\u6E90\u7801\u4F7F\u7528\n",(0,l.jsx)(r.code,{children:"1.0-SNAPSHOT"})," \u82E5\u5C1A\u672A\u53D1\u5E03\u5230\u8FDC\u7A0B\u4ED3\u5E93\uFF0C\u8BF7\u5148\u62C9\u53D6\u6E90\u7801\u5E76\u5B89\u88C5\u5230\u672C\u5730\u4ED3\u5E93\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,l.jsx)(r.p,{children:"\u4E4B\u540E\u4E0A\u9762\u7684\u5750\u6807\u5373\u53EF\u5728\u672C\u5730\u76F4\u63A5\u4F7F\u7528\u3002\n:::"}),"\n",(0,l.jsx)(r.h2,{id:"3-hello-world\u89E3\u6790\u4E00\u6BB5-sql",children:"3. Hello World\uFF1A\u89E3\u6790\u4E00\u6BB5 SQL"}),"\n",(0,l.jsxs)(r.p,{children:["\u4E0B\u9762\u662F\u4E00\u4E2A",(0,l.jsx)(r.strong,{children:"\u5B8C\u6574\u53EF\u8FD0\u884C"}),"\u7684\u7C7B\uFF0C\u8986\u76D6\u89E3\u6790\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u4E0E\u51FD\u6570\u56DB\u7C7B\u80FD\u529B\uFF0C\n\u4E0E\u5B98\u65B9 ",(0,l.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u4E2D\u7684\u793A\u4F8B\u4FDD\u6301\u4E00\u81F4\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u6309\u6570\u636E\u6E90\u7C7B\u578B\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u652F\u6301 mysql/hive/doris/... 15+ \u65B9\u8A00\uFF09\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790\u771F\u5B9E\u8868\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("\u4E3B\u8868: " + tableResult.getMainTable().getName());\n System.out.println("\u6240\u6709\u8868: " + tableResult.getAllTableName());\n\n // 3\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165\u771F\u5B9E\u5B57\u6BB5\u5143\u6570\u636E\uFF09\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4\u3001\u89E3\u6790\u8868\u8840\u7F18\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("\u8868\u8840\u7F18: " + tableLineages);\n\n // 5\u3001\u89E3\u6790\u51FD\u6570\n Set functions = parser.parseFunction(sql);\n System.out.println("\u51FD\u6570\u96C6\u5408: " + functions);\n }\n}\n'})}),"\n",(0,l.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"\u4E3B\u8868: users\n\u6240\u6709\u8868: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n\u8868\u8840\u7F18: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\n\u51FD\u6570\u96C6\u5408: [sum, count]\n"})}),"\n",(0,l.jsx)(r.h2,{id:"4-\u4E0B\u4E00\u6B65",children:"4. \u4E0B\u4E00\u6B65"}),"\n",(0,l.jsxs)(r.p,{children:["\u5404\u6838\u5FC3\u80FD\u529B\u7684",(0,l.jsx)(r.strong,{children:"\u4F9D\u8D56\u5F15\u5165 + \u5B8C\u6574\u793A\u4F8B"}),"\u89C1\uFF1A"]}),"\n",(0,l.jsxs)(r.ul,{children:["\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/core/field-lineage",children:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/core/table-lineage",children:"\u8868\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/core/table-parse",children:"\u8868\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/core/function-parse",children:"\u51FD\u6570\u89E3\u6790"})}),"\n"]})]})}function u(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},8453(e,r,s){s.d(r,{R:()=>t,x:()=>i});var n=s(6540);let l={},a=n.createContext(l);function t(e){let r=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),n.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e0e79246.7c281c81.js b/assets/js/e0e79246.7c281c81.js new file mode 100644 index 0000000..98c6cef --- /dev/null +++ b/assets/js/e0e79246.7c281c81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9784"],{7651(e,r,s){s.r(r),s.d(r,{metadata:()=>n,default:()=>u,frontMatter:()=>t,contentTitle:()=>i,toc:()=>d,assets:()=>o});var n=JSON.parse('{"id":"quickstart/setup","title":"\u5FEB\u901F\u5F00\u59CB","description":"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B","source":"@site/versioned_docs/version-1.0/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/docs/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/quickstart/setup.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"\u5FEB\u901F\u5F00\u59CB","description":"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B","sidebar_label":"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA","sidebar_position":1},"sidebar":"docs","previous":{"title":"\u67B6\u6784\u8BBE\u8BA1","permalink":"/SqlParserX/docs/about/architecture"},"next":{"title":"SQL \u7C7B\u578B\u8BC6\u522B","permalink":"/SqlParserX/docs/core/sql-type"}}'),l=s(4848),a=s(8453);let t={title:"\u5FEB\u901F\u5F00\u59CB",description:"\u5F15\u5165\u4F9D\u8D56\u3001\u6784\u5EFA\u5E76\u5728\u672C\u5730\u8FD0\u884C SqlParserX \u7684\u5B8C\u6574\u793A\u4F8B",sidebar_label:"\u73AF\u5883\u51C6\u5907\u4E0E\u6784\u5EFA",sidebar_position:1},i="\u5FEB\u901F\u5F00\u59CB",o={},d=[{value:"1. \u73AF\u5883\u8981\u6C42",id:"1-\u73AF\u5883\u8981\u6C42",level:2},{value:"2. \u5F15\u5165\u4F9D\u8D56",id:"2-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"3. Hello World\uFF1A\u89E3\u6790\u4E00\u6BB5 SQL",id:"3-hello-world\u89E3\u6790\u4E00\u6BB5-sql",level:2},{value:"4. \u4E0B\u4E00\u6B65",id:"4-\u4E0B\u4E00\u6B65",level:2}];function c(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.header,{children:(0,l.jsx)(r.h1,{id:"\u5FEB\u901F\u5F00\u59CB",children:"\u5FEB\u901F\u5F00\u59CB"})}),"\n",(0,l.jsx)(r.h2,{id:"1-\u73AF\u5883\u8981\u6C42",children:"1. \u73AF\u5883\u8981\u6C42"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u4F9D\u8D56"}),(0,l.jsx)(r.th,{children:"\u7248\u672C"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"JDK"}),(0,l.jsx)(r.td,{children:"Java 8+"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"Maven"}),(0,l.jsx)(r.td,{children:"3.6+"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsxs)(r.td,{children:["Node.js\uFF08\u4EC5 ",(0,l.jsx)(r.code,{children:"sqlparserx-ui"}),"\uFF09"]}),(0,l.jsx)(r.td,{children:">= 20"})]})]})]}),"\n",(0,l.jsx)(r.h2,{id:"2-\u5F15\u5165\u4F9D\u8D56",children:"2. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsxs)(r.p,{children:["\u5728\u4E1A\u52A1\u5DE5\u7A0B\u7684 ",(0,l.jsx)(r.code,{children:"pom.xml"})," \u4E2D\u5F15\u5165",(0,l.jsx)(r.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"})," ",(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(r.p,{children:[":::tip \u4F9D\u8D56\u8BF4\u660E\n",(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u4F1A",(0,l.jsx)(r.strong,{children:"\u4F20\u9012\u4F9D\u8D56"})," ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"}),"\uFF08\u8BED\u6CD5\u5C42\uFF09\u4E0E\u5B98\u65B9 Druid\uFF0C\u56E0\u6B64\u4E1A\u52A1\u89E3\u6790\u53EA\u9700\u5F15\u5165 ",(0,l.jsx)(r.code,{children:"core"})," \u4E00\u4E2A\u5750\u6807\uFF1B\u82E5\u53EA\u505A SQL\u2192AST \u7684\u8BED\u6CD5\u89E3\u6790\uFF0C\u4E5F\u53EF\u4EE5\u5355\u72EC\u5F15\u5165 ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"}),"\u3002\n:::"]}),"\n",(0,l.jsxs)(r.p,{children:[":::note \u4ECE\u6E90\u7801\u4F7F\u7528\n",(0,l.jsx)(r.code,{children:"1.0-SNAPSHOT"})," \u82E5\u5C1A\u672A\u53D1\u5E03\u5230\u8FDC\u7A0B\u4ED3\u5E93\uFF0C\u8BF7\u5148\u62C9\u53D6\u6E90\u7801\u5E76\u5B89\u88C5\u5230\u672C\u5730\u4ED3\u5E93\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,l.jsx)(r.p,{children:"\u4E4B\u540E\u4E0A\u9762\u7684\u5750\u6807\u5373\u53EF\u5728\u672C\u5730\u76F4\u63A5\u4F7F\u7528\u3002\n:::"}),"\n",(0,l.jsx)(r.h2,{id:"3-hello-world\u89E3\u6790\u4E00\u6BB5-sql",children:"3. Hello World\uFF1A\u89E3\u6790\u4E00\u6BB5 SQL"}),"\n",(0,l.jsxs)(r.p,{children:["\u4E0B\u9762\u662F\u4E00\u4E2A",(0,l.jsx)(r.strong,{children:"\u5B8C\u6574\u53EF\u8FD0\u884C"}),"\u7684\u7C7B\uFF0C\u8986\u76D6\u89E3\u6790\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u8840\u7F18\u4E0E\u51FD\u6570\u56DB\u7C7B\u80FD\u529B\uFF0C\n\u4E0E\u5B98\u65B9 ",(0,l.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u4E2D\u7684\u793A\u4F8B\u4FDD\u6301\u4E00\u81F4\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u6309\u6570\u636E\u6E90\u7C7B\u578B\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u652F\u6301 mysql/hive/doris/... 15+ \u65B9\u8A00\uFF09\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790\u771F\u5B9E\u8868\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("\u4E3B\u8868: " + tableResult.getMainTable().getName());\n System.out.println("\u6240\u6709\u8868: " + tableResult.getAllTableName());\n\n // 3\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165\u771F\u5B9E\u5B57\u6BB5\u5143\u6570\u636E\uFF09\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4\u3001\u89E3\u6790\u8868\u8840\u7F18\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("\u8868\u8840\u7F18: " + tableLineages);\n\n // 5\u3001\u89E3\u6790\u51FD\u6570\n Set functions = parser.parseFunction(sql);\n System.out.println("\u51FD\u6570\u96C6\u5408: " + functions);\n }\n}\n'})}),"\n",(0,l.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"\u4E3B\u8868: users\n\u6240\u6709\u8868: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n\u8868\u8840\u7F18: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\n\u51FD\u6570\u96C6\u5408: [sum, count]\n"})}),"\n",(0,l.jsx)(r.h2,{id:"4-\u4E0B\u4E00\u6B65",children:"4. \u4E0B\u4E00\u6B65"}),"\n",(0,l.jsxs)(r.p,{children:["\u5404\u6838\u5FC3\u80FD\u529B\u7684",(0,l.jsx)(r.strong,{children:"\u4F9D\u8D56\u5F15\u5165 + \u5B8C\u6574\u793A\u4F8B"}),"\u89C1\uFF1A"]}),"\n",(0,l.jsxs)(r.ul,{children:["\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/core/field-lineage",children:"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/core/table-lineage",children:"\u8868\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/core/table-parse",children:"\u8868\u89E3\u6790"})}),"\n",(0,l.jsx)(r.li,{children:(0,l.jsx)(r.a,{href:"/SqlParserX/docs/core/function-parse",children:"\u51FD\u6570\u89E3\u6790"})}),"\n"]})]})}function u(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},8453(e,r,s){s.d(r,{R:()=>t,x:()=>i});var n=s(6540);let l={},a=n.createContext(l);function t(e){let r=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),n.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/efe00fe9.648f2287.js b/assets/js/efe00fe9.648f2287.js new file mode 100644 index 0000000..65774e8 --- /dev/null +++ b/assets/js/efe00fe9.648f2287.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4702"],{2840(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var s=JSON.parse('{"id":"core/table-lineage","title":"\u8868\u8840\u7F18\u89E3\u6790","description":"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB","source":"@site/docs/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/docs/next/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/table-lineage.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"\u8868\u8840\u7F18\u89E3\u6790","description":"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB","sidebar_label":"\u8868\u8840\u7F18\u89E3\u6790","sidebar_position":2},"sidebar":"docs","previous":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/field-lineage"},"next":{"title":"\u8868\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/table-parse"}}'),t=n(4848),l=n(8453);let d={title:"\u8868\u8840\u7F18\u89E3\u6790",description:"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB",sidebar_label:"\u8868\u8840\u7F18\u89E3\u6790",sidebar_position:2},i="\u8868\u8840\u7F18\u89E3\u6790",a={},c=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.header,{children:(0,t.jsx)(r.h1,{id:"\u8868\u8840\u7F18\u89E3\u6790",children:"\u8868\u8840\u7F18\u89E3\u6790"})}),"\n",(0,t.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,t.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,t.jsxs)(r.p,{children:["\u6CBF\u7528\u5B98\u65B9 ",(0,t.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u4ECE\u83B7\u53D6\u89E3\u6790\u5668\u5230\u6253\u5370\u8868\u8840\u7F18\uFF1A"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790\u8868\u8840\u7F18\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3\u3001\u8BFB\u53D6\u7ED3\u679C\n System.out.println("\u76EE\u6807\u8868: " + result.getTargetTable());\n System.out.println("\u6765\u6E90\u8868: " + result.getSourceTables());\n\n List tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,t.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"\u76EE\u6807\u8868: user_order_summary\n\u6765\u6E90\u8868: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,t.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,t.jsxs)(r.p,{children:["\u4ECE SQL \u4E2D\u89E3\u6790",(0,t.jsx)(r.strong,{children:"\u76EE\u6807\u8868 \u2192 \u6765\u6E90\u8868"}),"\u7684\u8868\u7EA7\u8840\u7F18\u5173\u7CFB\uFF0C\u8986\u76D6 JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u4E0E CTE \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 \u6536\u96C6\u6765\u6E90\u8868 + \u76EE\u6807\u8868\n \u2192 TableLineageResult\n"})}),"\n",(0,t.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u9879\u76EE"}),(0,t.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,t.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,t.jsxs)(r.td,{children:[(0,t.jsx)(r.code,{children:"TableLineageResult"}),"\uFF08",(0,t.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,t.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,t.jsx)(r.code,{children:"getTableLineages()"}),"\uFF09"]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u8986\u76D6\u7ED3\u6784"}),(0,t.jsx)(r.td,{children:"JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u3001CTE"})]})]})]}),"\n",(0,t.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,t.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,t.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5355\u8868 / \u591A\u8868 JOIN"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u89E3\u6790\u6240\u6709\u53C2\u4E0E\u8868"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u5F52\u5E76\u5404\u5206\u652F\u6765\u6E90\u8868"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"\u5B50\u67E5\u8BE2 / \u6D3E\u751F\u8868"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u9012\u5F52\u6536\u96C6\u771F\u5B9E\u8868"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CTE\uFF08WITH\uFF09"}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u8BC6\u522B CTE \u4E0E\u5176\u771F\u5B9E\u6765\u6E90"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:(0,t.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,t.jsx)(r.td,{children:(0,t.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,t.jsx)(r.td,{children:"\u8F93\u51FA\u76EE\u6807\u8868\u4E0E\u6765\u6E90\u8868"})]})]})]}),"\n",(0,t.jsxs)(r.blockquote,{children:["\n",(0,t.jsxs)(r.p,{children:["\u66F4\u591A\u8868\u8840\u7F18\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,t.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u8868\u8840\u7F18\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>d,x:()=>i});var s=n(6540);let t={},l=s.createContext(t);function d(e){let r=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/efe00fe9.a927140b.js b/assets/js/efe00fe9.a927140b.js deleted file mode 100644 index bb6b17d..0000000 --- a/assets/js/efe00fe9.a927140b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4702"],{2840(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>i,toc:()=>c,assets:()=>a});var s=JSON.parse('{"id":"core/table-lineage","title":"\u8868\u8840\u7F18\u89E3\u6790","description":"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB","source":"@site/docs/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/docs/next/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/table-lineage.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"\u8868\u8840\u7F18\u89E3\u6790","description":"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB","sidebar_label":"\u8868\u8840\u7F18\u89E3\u6790","sidebar_position":2},"sidebar":"docs","previous":{"title":"\u5B57\u6BB5\u8840\u7F18\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/field-lineage"},"next":{"title":"\u8868\u89E3\u6790","permalink":"/SqlParserX/docs/next/core/table-parse"}}'),l=n(4848),t=n(8453);let d={title:"\u8868\u8840\u7F18\u89E3\u6790",description:"\u89E3\u6790 SQL \u4E2D\u6765\u6E90\u8868\u5230\u76EE\u6807\u8868\u7684\u8840\u7F18\u5173\u7CFB",sidebar_label:"\u8868\u8840\u7F18\u89E3\u6790",sidebar_position:2},i="\u8868\u8840\u7F18\u89E3\u6790",a={},c=[{value:"1. \u5F15\u5165\u4F9D\u8D56",id:"1-\u5F15\u5165\u4F9D\u8D56",level:2},{value:"2. \u5B8C\u6574\u793A\u4F8B",id:"2-\u5B8C\u6574\u793A\u4F8B",level:2},{value:"3. \u5B9E\u73B0\u76EE\u6807",id:"3-\u5B9E\u73B0\u76EE\u6807",level:2},{value:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",level:2},{value:"5. \u652F\u6301\u7C92\u5EA6",id:"5-\u652F\u6301\u7C92\u5EA6",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.header,{children:(0,l.jsx)(r.h1,{id:"\u8868\u8840\u7F18\u89E3\u6790",children:"\u8868\u8840\u7F18\u89E3\u6790"})}),"\n",(0,l.jsx)(r.h2,{id:"1-\u5F15\u5165\u4F9D\u8D56",children:"1. \u5F15\u5165\u4F9D\u8D56"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,l.jsxs)(r.blockquote,{children:["\n",(0,l.jsxs)(r.p,{children:[(0,l.jsx)(r.code,{children:"sqlparserx-core"})," \u5DF2\u4F20\u9012\u4F9D\u8D56 ",(0,l.jsx)(r.code,{children:"sqlparserx-syntax"})," \u4E0E Druid\uFF0C\u65E0\u9700\u989D\u5916\u5F15\u5165\u3002"]}),"\n"]}),"\n",(0,l.jsx)(r.h2,{id:"2-\u5B8C\u6574\u793A\u4F8B",children:"2. \u5B8C\u6574\u793A\u4F8B"}),"\n",(0,l.jsxs)(r.p,{children:["\u6CBF\u7528\u5B98\u65B9 ",(0,l.jsx)(r.code,{children:"sqlparserx-core/README.md"})," \u7684\u793A\u4F8B SQL\uFF0C\u4ECE\u83B7\u53D6\u89E3\u6790\u5668\u5230\u6253\u5370\u8868\u8840\u7F18\uFF1A"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2\u3001\u89E3\u6790\u8868\u8840\u7F18\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3\u3001\u8BFB\u53D6\u7ED3\u679C\n System.out.println("\u76EE\u6807\u8868: " + result.getTargetTable());\n System.out.println("\u6765\u6E90\u8868: " + result.getSourceTables());\n\n List tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,l.jsx)(r.p,{children:"\u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u793A\u4F8B\uFF09\uFF1A"}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"\u76EE\u6807\u8868: user_order_summary\n\u6765\u6E90\u8868: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,l.jsx)(r.h2,{id:"3-\u5B9E\u73B0\u76EE\u6807",children:"3. \u5B9E\u73B0\u76EE\u6807"}),"\n",(0,l.jsxs)(r.p,{children:["\u4ECE SQL \u4E2D\u89E3\u6790",(0,l.jsx)(r.strong,{children:"\u76EE\u6807\u8868 \u2192 \u6765\u6E90\u8868"}),"\u7684\u8868\u7EA7\u8840\u7F18\u5173\u7CFB\uFF0C\u8986\u76D6 JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u4E0E CTE \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,l.jsx)(r.pre,{children:(0,l.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 \u6536\u96C6\u6765\u6E90\u8868 + \u76EE\u6807\u8868\n \u2192 TableLineageResult\n"})}),"\n",(0,l.jsx)(r.h2,{id:"4-\u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E",children:"4. \u5165\u53E3\u4E0E\u5B9E\u73B0\u4F4D\u7F6E"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u9879\u76EE"}),(0,l.jsx)(r.th,{children:"\u5185\u5BB9"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"Core \u5165\u53E3"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u9ED8\u8BA4\u5B9E\u73B0"}),(0,l.jsxs)(r.td,{children:[(0,l.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,l.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u8FD4\u56DE\u7C7B\u578B"}),(0,l.jsxs)(r.td,{children:[(0,l.jsx)(r.code,{children:"TableLineageResult"}),"\uFF08",(0,l.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,l.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,l.jsx)(r.code,{children:"getTableLineages()"}),"\uFF09"]})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u8986\u76D6\u7ED3\u6784"}),(0,l.jsx)(r.td,{children:"JOIN\u3001UNION\u3001\u5B50\u67E5\u8BE2\u3001\u805A\u5408\u3001CTE"})]})]})]}),"\n",(0,l.jsx)(r.h2,{id:"5-\u652F\u6301\u7C92\u5EA6",children:"5. \u652F\u6301\u7C92\u5EA6"}),"\n",(0,l.jsxs)(r.table,{children:[(0,l.jsx)(r.thead,{children:(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.th,{children:"\u80FD\u529B\u9879"}),(0,l.jsx)(r.th,{children:"\u652F\u6301\u60C5\u51B5"}),(0,l.jsx)(r.th,{children:"\u8BF4\u660E"})]})}),(0,l.jsxs)(r.tbody,{children:[(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u5355\u8868 / \u591A\u8868 JOIN"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u89E3\u6790\u6240\u6709\u53C2\u4E0E\u8868"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u5F52\u5E76\u5404\u5206\u652F\u6765\u6E90\u8868"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"\u5B50\u67E5\u8BE2 / \u6D3E\u751F\u8868"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u9012\u5F52\u6536\u96C6\u771F\u5B9E\u8868"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:"CTE\uFF08WITH\uFF09"}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u8BC6\u522B CTE \u4E0E\u5176\u771F\u5B9E\u6765\u6E90"})]}),(0,l.jsxs)(r.tr,{children:[(0,l.jsx)(r.td,{children:(0,l.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,l.jsx)(r.td,{children:(0,l.jsx)(r.strong,{children:"\u5DF2\u652F\u6301 \u2705"})}),(0,l.jsx)(r.td,{children:"\u8F93\u51FA\u76EE\u6807\u8868\u4E0E\u6765\u6E90\u8868"})]})]})]}),"\n",(0,l.jsxs)(r.blockquote,{children:["\n",(0,l.jsxs)(r.p,{children:["\u66F4\u591A\u8868\u8840\u7F18\u573A\u666F\u4E0E\u6570\u636E\u6E90\u5DEE\u5F02\uFF0C\u4EE5\u9879\u76EE ",(0,l.jsx)(r.code,{children:"docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5/\u901A\u7528\u89E3\u6790\u80FD\u529B/\u8868\u8840\u7F18\u89E3\u6790\u652F\u6301\u60C5\u51B5.md"})," \u4E3A\u51C6\u3002"]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,l.jsx)(r,{...e,children:(0,l.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>d,x:()=>i});var s=n(6540);let l={},t=s.createContext(l);function d(e){let r=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.f02b2e66.js b/assets/js/main.a29faf1c.js similarity index 77% rename from assets/js/main.f02b2e66.js rename to assets/js/main.a29faf1c.js index 42523fc..c23f6f9 100644 --- a/assets/js/main.f02b2e66.js +++ b/assets/js/main.a29faf1c.js @@ -35,4 +35,4 @@ Please double-check the following navbar item (themeConfig.navbar.items) of your ${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,r.jsx)(ey,{...e})},t))})}function eP({left:e,right:t}){return(0,r.jsxs)("div",{className:"navbar__inner",children:[(0,r.jsx)("div",{className:(0,o.A)(g.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,r.jsx)("div",{className:(0,o.A)(g.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function eN(){let e=(0,x.M)(),t=(0,b.p)().navbar.items,[n,a]=function(e){function t(e){return(e.position??"right")==="left"}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,r.jsx)(eP,{left:(0,r.jsxs)(r.Fragment,{children:[!e.disabled&&(0,r.jsx)(eA,{}),(0,r.jsx)(q,{}),(0,r.jsx)(eC,{items:n})]}),right:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eC,{items:a}),(0,r.jsx)(U,{className:"colorModeToggle_DEke"}),!o&&(0,r.jsx)(ef,{children:(0,r.jsx)(ed,{})})]})})}function eO(){return(0,r.jsx)(eE,{children:(0,r.jsx)(eN,{})})}function eL({item:e}){let{to:t,href:n,label:a,prependBaseUrlToHref:l,className:i,...s}=e,u=(0,G.Ay)(t),c=(0,G.Ay)(n,{forcePrependBaseUrl:!0});return(0,r.jsxs)(V.A,{className:(0,o.A)("footer__link-item",i),...n?{href:l?c:n}:{to:u},...s,children:[a,n&&!(0,W.A)(n)&&(0,r.jsx)(K.A,{})]})}function eI({item:e}){return e.html?(0,r.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)("li",{className:"footer__item",children:(0,r.jsx)(eL,{item:e})},e.href??e.to)}function eR({column:e}){return(0,r.jsxs)("div",{className:(0,o.A)(g.G.layout.footer.column,"col footer__col",e.className),children:[(0,r.jsx)("div",{className:"footer__title",children:e.title}),(0,r.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,r.jsx)(eI,{item:e},t))})]})}function ej({columns:e}){return(0,r.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,r.jsx)(eR,{column:e},t))})}function eD(){return(0,r.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function eF({item:e}){return e.html?(0,r.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)(eL,{item:e})}function eM({links:e}){return(0,r.jsx)("div",{className:"footer__links text--center",children:(0,r.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(eF,{item:t}),e.length!==n+1&&(0,r.jsx)(eD,{})]},n))})})}function ez({links:e}){return"title"in e[0]?(0,r.jsx)(ej,{columns:e}):(0,r.jsx)(eM,{links:e})}var eB=n(8586);function eU({logo:e}){let{withBaseUrl:t}=(0,G.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,r.jsx)(eB.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function e$({logo:e}){return e.href?(0,r.jsx)(V.A,{href:e.href,className:"footerLogoLink_BH7S",target:e.target,children:(0,r.jsx)(eU,{logo:e})}):(0,r.jsx)(eU,{logo:e})}function eq({copyright:e}){return(0,r.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function eH({style:e,links:t,logo:n,copyright:a}){return(0,r.jsx)("footer",{className:(0,o.A)(g.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,r.jsxs)("div",{className:"container container-fluid",children:[t,(n||a)&&(0,r.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,r.jsx)("div",{className:"margin-bottom--sm",children:n}),a]})]})})}let eX=a.memo(function(){let{footer:e}=(0,b.p)();if(!e)return null;let{copyright:t,links:n,logo:a,style:o}=e;return(0,r.jsx)(eH,{style:o,links:n&&n.length>0&&(0,r.jsx)(ez,{links:n}),logo:a&&(0,r.jsx)(e$,{logo:a}),copyright:t&&(0,r.jsx)(eq,{copyright:t})})}),eV=(0,_.fM)([L.a,y.o,E.Tv,eg.VQ,i.Jx,function({children:e}){return(0,r.jsx)(T.y_,{children:(0,r.jsx)(x.e,{children:(0,r.jsx)(C,{children:e})})})}]);function eG({children:e}){return(0,r.jsx)(eV,{children:e})}var eW=n(2072);function eY({error:e,tryAgain:t}){return(0,r.jsx)("main",{className:"container margin-vert--xl",children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(eW.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,r.jsx)("div",{className:"margin-vert--lg",children:(0,r.jsx)(e_.a2,{onClick:t,className:"button button--primary shadow--lw"})}),(0,r.jsx)("hr",{}),(0,r.jsx)("div",{className:"margin-vert--md",children:(0,r.jsx)(e_.bq,{error:e})})]})})})}function eK(e){let{children:t,noFooter:n,wrapperClassName:a,title:s,description:u}=e;return(0,r.jsxs)(eG,{children:[(0,r.jsx)(i.be,{title:s,description:u}),(0,r.jsx)(h,{}),(0,r.jsx)(k,{}),(0,r.jsx)(eO,{}),(0,r.jsx)("div",{id:d,className:(0,o.A)(g.G.layout.main.container,g.G.wrapper.main,"mainWrapper_z2l0",a),children:(0,r.jsx)(l.A,{fallback:e=>(0,r.jsx)(eY,{...e}),children:t})}),!n&&(0,r.jsx)(eX,{})]})}},5153(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(4848);n(6540);var a=n(5310),o=n(6497),l=n(898),i=n(1022),s=n(8586);function u({logo:e,alt:t,imageClassName:n}){let a={light:(0,o.Ay)(e.src),dark:(0,o.Ay)(e.srcDark||e.src)},l=(0,r.jsx)(s.A,{className:e.className,sources:a,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,r.jsx)("div",{className:n,children:l}):l}function c(e){let{siteConfig:{title:t}}=(0,l.A)(),{navbar:{title:n,logo:s}}=(0,i.p)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,o.Ay)(s?.href||"/"),m=s?.alt??(n?"":t);return(0,r.jsxs)(a.A,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,r.jsx)(u,{logo:s,alt:m,imageClassName:c}),null!=n&&(0,r.jsx)("b",{className:d,children:n})]})}},4175(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(4848);n(6540);var a=n(3572);function o({locale:e,version:t,tag:n}){return(0,r.jsxs)(a.A,{children:[e&&(0,r.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,r.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,r.jsx)("meta",{name:"docusaurus_tag",content:n}),e&&(0,r.jsx)("meta",{name:"docsearch:language",content:e}),t&&(0,r.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,r.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},8586(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(4848),a=n(6540),o=n(4164),l=n(9863),i=n(3941);let s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};function u({className:e,children:t}){let n=(0,l.A)(),{colorMode:c}=(0,i.G)();return(0,r.jsx)(r.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{let l=t({theme:n,className:(0,o.A)(e,s.themedComponent,s[`themedComponent--${n}`])});return(0,r.jsx)(a.Fragment,{children:l},n)})})}function c(e){let{sources:t,className:n,alt:a,...o}=e;return(0,r.jsx)(u,{className:n,children:({theme:e,className:n})=>(0,r.jsx)("img",{src:t[e],alt:a,className:n,...o})})}},9510(e,t,n){"use strict";n.d(t,{N:()=>p,u:()=>i});var r=n(4848),a=n(6540),o=n(9989),l=n(269);function i({initialState:e}){let[t,n]=(0,a.useState)(e??!1),r=(0,a.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:r}}let s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){let n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d({as:e="div",collapsed:t,children:n,animation:o,onCollapseTransitionEnd:i,className:u}){let f=(0,a.useRef)(null);return!function({collapsibleRef:e,collapsed:t,animation:n}){let r=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let a,o=e.current;function i(){let e,t,r,a=(e=o.scrollHeight,t=n?.duration??function(e){if((0,l.O)())return 1;let t=e/36;return Math.round((4+15*t**.25+t/5)*10)}(e),r=n?.easing??"ease-in-out",{transition:`height ${t}ms ${r}`,height:`${e}px`});o.style.transition=a.transition,o.style.height=a.height}if(!r.current){c(o,t),r.current=!0;return}return o.style.willChange="height",a=requestAnimationFrame(()=>{t?(i(),requestAnimationFrame(()=>{o.style.height=s.height,o.style.overflow=s.overflow})):(o.style.display="block",requestAnimationFrame(()=>{i()}))}),()=>cancelAnimationFrame(a)},[e,t,n])}({collapsibleRef:f,collapsed:t,animation:o}),(0,r.jsx)(e,{ref:f,onTransitionEnd:e=>{"height"===e.propertyName&&(c(f.current,t),i?.(t))},className:u,children:n})}function f({collapsed:e,...t}){let[n,l]=(0,a.useState)(!e),[i,s]=(0,a.useState)(e);return(0,o.A)(()=>{e||l(!0)},[e]),(0,o.A)(()=>{n&&s(e)},[n,e]),n?(0,r.jsx)(d,{...t,collapsed:i}):null}function p({lazy:e,...t}){return(0,r.jsx)(e?f:d,{...t})}},3337(e,t,n){"use strict";n.d(t,{M:()=>m,o:()=>p});var r=n(4848),a=n(6540),o=n(9863),l=n(1367),i=n(2260),s=n(1022);let u=(0,l.Wf)("docusaurus.announcement.dismiss"),c=(0,l.Wf)("docusaurus.announcement.id"),d=e=>u.set(String(e)),f=a.createContext(null);function p({children:e}){let t=function(){let{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(()=>!!t&&"true"===u.get());(0,a.useEffect)(()=>{r("true"===u.get())},[]);let l=(0,a.useCallback)(()=>{d(!0),r(!0)},[]);return(0,a.useEffect)(()=>{if(!e)return;let{id:t}=e,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");let a=t!==n;c.set(t),a&&d(!1),(a||"true"!==u.get())&&r(!1)},[e]),(0,a.useMemo)(()=>({isActive:!!e&&!n,close:l}),[e,n,l])}();return(0,r.jsx)(f.Provider,{value:t,children:e})}function m(){let e=(0,a.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},3941(e,t,n){"use strict";n.d(t,{G:()=>w,a:()=>v});var r=n(4848),a=n(6540),o=n(9863),l=n(2260),i=n(1367),s=n(1022);function u(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}let c=a.createContext(void 0),d=(0,i.Wf)("theme"),f="system",p=e=>"dark"===e?"dark":"light",m=e=>null===e||e===f?null:p(e),g=()=>p(document.documentElement.getAttribute("data-theme")),h=e=>{document.documentElement.setAttribute("data-theme",p(e))},b=()=>m(document.documentElement.getAttribute("data-theme-choice")),y=e=>{document.documentElement.setAttribute("data-theme-choice",m(e)??f)};function v({children:e}){let t=function(){let{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),{colorMode:r,setColorModeState:l,colorModeChoice:i,setColorModeChoiceState:c}=function(){let{colorMode:{defaultMode:e}}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(t?g():e),[l,i]=(0,a.useState)(t?b():null);return(0,a.useEffect)(()=>{r(g()),i(b())},[]),{colorMode:n,setColorModeState:r,colorModeChoice:l,setColorModeChoiceState:i}}();(0,a.useEffect)(()=>{t&&d.del()},[t]);let f=(0,a.useCallback)((t,r={})=>{let{persist:a=!0}=r;if(null===t){let t=n?u():e;h(t),l(t),y(null),c(null)}else h(t),y(t),l(t),c(t);a&&(null===t?d.del():d.set(p(t)))},[l,c,n,e]);return(0,a.useEffect)(()=>d.listen(e=>{f(m(e.newValue))}),[f]),(0,a.useEffect)(()=>{if(null===i&&n){var e,t;let n;return e=e=>{l(e),h(e)},t=()=>e(u()),(n=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",t),()=>n.removeEventListener("change",t)}},[n,i,l]),(0,a.useMemo)(()=>({colorMode:r,colorModeChoice:i,setColorMode:f,get isDarkTheme(){return"dark"===r},setLightTheme(){f("light")},setDarkTheme(){f("dark")}}),[r,i,f])}();return(0,r.jsx)(c.Provider,{value:t,children:e})}function w(){let e=(0,a.useContext)(c);if(null==e)throw new l.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},9965(e,t,n){"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(4848),a=n(6540),o=n(7e3),l=n(3741),i=n(6629),s=n(1022),u=n(2260);let c=a.createContext(void 0);function d({handler:e}){return(0,i.$Z)(e),null}function f({children:e}){let t=function(){let e=function(){let e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,l.l)(),n=!e&&"mobile"===t,[r,i]=(0,a.useState)(!1),u=(0,a.useCallback)(()=>{i(e=>!e)},[]);return(0,a.useEffect)(()=>{"desktop"===t&&i(!1)},[t]),(0,a.useMemo)(()=>({disabled:e,shouldRender:n,toggle:u,shown:r}),[e,n,u,r])}();return(0,r.jsxs)(r.Fragment,{children:[t.shown&&(0,r.jsx)(d,{handler:()=>(t.toggle(),!1)}),(0,r.jsx)(c.Provider,{value:t,children:e})]})}function p(){let e=a.useContext(c);if(void 0===e)throw new u.dV("NavbarMobileSidebarProvider");return e}},7e3(e,t,n){"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>i});var r=n(4848),a=n(6540),o=n(2260);let l=a.createContext(null);function i({children:e}){let t=(0,a.useState)({component:null,props:null});return(0,r.jsx)(l.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(l);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u({component:e,props:t}){let n=(0,a.useContext)(l);if(!n)throw new o.dV("NavbarSecondaryMenuContentProvider");let[,r]=n,i=(0,o.Be)(t);return(0,a.useEffect)(()=>{r({component:e,props:i})},[r,e,i]),(0,a.useEffect)(()=>()=>r({component:null,props:null}),[r]),null}},3741(e,t,n){"use strict";n.d(t,{l:()=>o});var r=n(6540),a=n(1289);function o({desktopBreakpoint:e=996}={}){let[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!a.A.canUseDOM)throw Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?"desktop":"mobile"}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},8287(e,t,n){"use strict";n.d(t,{G:()=>r});let r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},tabs:{container:"theme-tabs-container"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`,docCard:{container:"theme-doc-card-container",heading:"theme-doc-card-heading",icon:"theme-doc-card-icon",title:"theme-doc-card-title",description:"theme-doc-card-description"}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},269(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},4727(e,t,n){"use strict";n.d(t,{v:()=>a});var r=n(1022);function a(e){let{navbar:{hideOnScroll:t}}=(0,r.p)();if(void 0!==e)return t?"anchorTargetHideOnScrollNavbar_vjPI":"anchorTargetStickyNavbar_Vzrq"}},3072(e,t,n){"use strict";n.d(t,{MN:()=>s,k2:()=>c,a2:()=>i,bq:()=>u});var r=n(4848),a=n(6540),o=n(568),l=n(5248);function i(e){return(0,r.jsx)("button",{type:"button",...e,children:(0,r.jsx)(o.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function s({error:e,tryAgain:t}){return(0,r.jsxs)("div",{className:"errorBoundaryFallback_VBag",children:[(0,r.jsx)("p",{children:e.message}),(0,r.jsx)(i,{onClick:t})]})}function u({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{className:"errorBoundaryError_a6uf",children:t})}class c extends a.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},6629(e,t,n){"use strict";n.d(t,{$Z:()=>l,Hl:()=>i,jy:()=>s});var r=n(6540),a=n(6347),o=n(2260);function l(e){let t,n;t=(0,a.W6)(),n=(0,o._q)((t,n)=>{if("POP"===n)return e(t,n)}),(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}function i(e){let t=(0,a.W6)();return(0,r.useSyncExternalStore)(t.listen,()=>e(t),()=>e({...t,location:{...t.location,search:"",hash:"",state:void 0}}))}function s(e,t){let n=(function(e,t){let n=new URLSearchParams;for(let r of e)for(let[e,a]of r.entries())"append"===t?n.append(e,a):n.set(e,a);return n})(e.map(e=>new URLSearchParams(e??"")),t).toString();return n?`?${n}`:n}},618(e,t,n){"use strict";function r(e){return Array.from(new Set(e))}function a(e,t){let n={},r=0;for(let a of e){let e=t(a,r);n[e]??=[],n[e].push(a),r+=1}return n}n.d(t,{$z:()=>a,sb:()=>r})},4308(e,t,n){"use strict";n.d(t,{Jx:()=>b,be:()=>m,e3:()=>h});var r=n(4848),a=n(6540),o=n(4164),l=n(3572),i=n(8491),s=n(6497),u=n(3899);function c({title:e}){let t=(0,u.s$)().format(e);return(0,r.jsxs)(l.A,{children:[(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,r.jsxs)(l.A,{children:[(0,r.jsx)("meta",{name:"description",content:e}),(0,r.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){let{withBaseUrl:t}=(0,s.hH)(),n=t(e,{absolute:!0});return(0,r.jsxs)(l.A,{children:[(0,r.jsx)("meta",{property:"og:image",content:n}),(0,r.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,r.jsx)(l.A,{children:(0,r.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function m({title:e,description:t,keywords:n,image:a,children:o}){return(0,r.jsxs)(r.Fragment,{children:[e&&(0,r.jsx)(c,{title:e}),t&&(0,r.jsx)(d,{description:t}),n&&(0,r.jsx)(p,{keywords:n}),a&&(0,r.jsx)(f,{image:a}),o&&(0,r.jsx)(l.A,{children:o})]})}let g=a.createContext(void 0);function h({className:e,children:t}){let n=a.useContext(g),i=(0,o.A)(n,e);return(0,r.jsxs)(g.Provider,{value:i,children:[(0,r.jsx)(l.A,{children:(0,r.jsx)("html",{className:i})}),t]})}function b({children:e}){var t;let n=(0,i.A)(),a=(t=n.plugin.name,`plugin-${t.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`),l=`plugin-id-${n.plugin.id}`;return(0,r.jsx)(h,{className:(0,o.A)(a,l),children:e})}},2260(e,t,n){"use strict";n.d(t,{Be:()=>u,ZC:()=>i,_q:()=>l,dV:()=>s,fM:()=>c});var r=n(4848),a=n(6540),o=n(9989);function l(e){let t=(0,a.useRef)(e);return(0,o.A)(()=>{t.current=e},[e]),(0,a.useCallback)((...e)=>t.current(...e),[])}function i(e){let t=(0,a.useRef)(void 0);return(0,o.A)(()=>{t.current=e}),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){let t=Object.entries(e);return t.sort((e,t)=>e[0].localeCompare(t[0])),(0,a.useMemo)(()=>e,t.flat())}function c(e){return({children:t})=>(0,r.jsx)(r.Fragment,{children:e.reduceRight((e,t)=>(0,r.jsx)(t,{children:e}),t)})}},9209(e,t,n){"use strict";n.d(t,{Dt:()=>i,ys:()=>l});var r=n(6540),a=n(8460),o=n(898);function l(e,t){let n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function i(){let{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)(()=>(function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;let a=t.find(n);return a||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)})({routes:a.A,baseUrl:e}),[e])}},8584(e,t,n){"use strict";n.d(t,{Mq:()=>d,Tv:()=>u,gk:()=>f});var r=n(4848),a=n(6540),o=n(1289),l=n(9863);n(9989);var i=n(2260);let s=a.createContext(void 0);function u({children:e}){let t,n=(t=(0,a.useRef)(!0),(0,a.useMemo)(()=>({scrollEventsEnabledRef:t,enableScrollEvents:()=>{t.current=!0},disableScrollEvents:()=>{t.current=!1}}),[]));return(0,r.jsx)(s.Provider,{value:n,children:e})}let c=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t=[]){let{scrollEventsEnabledRef:n}=function(){let e=(0,a.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}(),r=(0,a.useRef)(c()),o=(0,i._q)(e);(0,a.useEffect)(()=>{let e=()=>{if(!n.current)return;let e=c();o(e,r.current),r.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)},[o,n,...t])}function f(){let e=(0,a.useRef)(null),t=(0,l.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{let r,a;e.current=t?(window.scrollTo({top:n,behavior:"smooth"}),()=>{}):(r=null,a=document.documentElement.scrollTop>n,!function e(){let t=document.documentElement.scrollTop;(a&&t>n||!a&&tr&&cancelAnimationFrame(r))},cancelScroll:()=>e.current?.()}}},1367(e,t,n){"use strict";n.d(t,{Wf:()=>s}),n(6540);var r=JSON.parse('{"N":"localStorage","M":"-c61"}');let a=r.N;function o({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;let a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(a)}let l=!1,i={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){let n=`${e}${r.M}`;if("u"{try{return u.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{let t=u.getItem(n);u.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:u})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{let e=u.getItem(n);u.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:u})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{let t=t=>{t.storageArea===u&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(e){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,e),()=>{}}}}}},3899(e,t,n){"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(4848),a=n(6540),o=n(898),l=n(8491),i=n(2260);let s=({title:e,siteTitle:t,titleDelimiter:n})=>{let r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,a.createContext)(null);function c({formatter:e,children:t}){return(0,r.jsx)(u.Provider,{value:e,children:t})}function d(){let e=function(){let e=(0,a.useContext)(u);if(null===e)throw new i.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:r}=t,{plugin:c}=(0,l.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:r,plugin:c,defaultFormatter:s})}}},5243(e,t,n){"use strict";n.d(t,{o:()=>l});var r=n(898),a=n(6347),o=n(5248);function l(){let{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:l}=(0,a.zy)(),i=(0,o.applyTrailingSlash)(l,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){let r=function(e){let t=n[e];if(!t)throw Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e),a=`${t?r.url:""}`,o=r.baseUrl;return`${a}${o}${i}`}}}},8398(e,t,n){"use strict";n.d(t,{$:()=>l});var r=n(6540),a=n(6347),o=n(2260);function l(e){let t=(0,a.zy)(),n=(0,o.ZC)(t),l=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&l({location:t,previousLocation:n})},[l,t,n])}},1022(e,t,n){"use strict";n.d(t,{p:()=>a});var r=n(898);function a(){return(0,r.A)().siteConfig.themeConfig}},4207(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){let{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#")||void 0===n)return e;let[l]=e.split(/[#?]/),i="/"===l||l===r?l:n?a(l):o(l);return e.replace(l,i)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;let r=n(9262);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},7541(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},5248(e,t,n){"use strict";t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0;let r=n(1635);t.blogPostContainerID="__blog-post-container";var a=n(4207);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r.__importDefault(a).default}}),n(9262);var o=n(7541);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9262(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},4784(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>r});let r={title:"SqlParserX",tagline:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305",favicon:"img/logo.png",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0,siteStorageNamespacing:!0,fasterByDefault:!0,mdx1CompatDisabledByDefault:!0},experimental_vcs:{},experimental_router:"browser",faster:{swcJsLoader:!0,swcJsMinimizer:!0,swcHtmlMinimizer:!0,lightningCssMinimizer:!0,mdxCrossCompilerCache:!0,rspackBundler:!0,rspackPersistentCache:!0,ssgWorkerThreads:!0,gitEagerVcs:!0}},url:"https://dtstack.github.io",baseUrl:"/SqlParserX/",organizationName:"DTStack",projectName:"SqlParserX",deploymentBranch:"gh-pages",trailingSlash:!1,onBrokenLinks:"throw",markdown:{mermaid:!0,hooks:{onBrokenMarkdownLinks:"warn",onBrokenMarkdownImages:"throw"},format:"mdx",emoji:!0,mdx1Compat:{comments:!1,admonitions:!1,headingIds:!1},anchors:{maintainCase:!1}},themes:["@docusaurus/theme-mermaid"],i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans","en"],localeConfigs:{"zh-Hans":{label:"\u7B80\u4F53\u4E2D\u6587",direction:"ltr",htmlLang:"zh-Hans"},en:{label:"English",direction:"ltr",htmlLang:"en"}},path:"i18n"},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",editUrl:"https://github.com/DTStack/SqlParserX/tree/main/website/",showLastUpdateAuthor:!1,showLastUpdateTime:!1,versions:{current:{label:"Next \u{1F6A7}"}},lastVersion:"1.0"},blog:{showReadingTime:!0,feedOptions:{type:["rss","atom"],xslt:!0},editUrl:"https://github.com/DTStack/SqlParserX/tree/main/website/",onInlineTags:"warn",onInlineAuthors:"warn",onUntruncatedBlogPosts:"warn"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/social-card.svg",colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},announcementBar:{id:"announcement",content:"\u2B50 \u5982\u679C\u4F60\u89C9\u5F97 SqlParserX \u6709\u7528\uFF0C\u6B22\u8FCE\u5230 GitHub \u70B9\u4E2A Star",backgroundColor:"#fafbfc",textColor:"#091E42",isCloseable:!0},navbar:{title:"SqlParserX",logo:{alt:"SqlParserX Logo",src:"img/logo.png"},items:[{to:"/",label:"\u9996\u9875",position:"left"},{type:"docSidebar",sidebarId:"docs",position:"left",label:"\u6587\u6863"},{to:"/blog",label:"\u535A\u5BA2",position:"left"},{to:"/community",label:"\u793E\u533A",position:"left"},{type:"docsVersionDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/DTStack/SqlParserX",position:"right",className:"header-github-link","aria-label":"GitHub repository"}],hideOnScroll:!1},footer:{style:"light",links:[{title:"\u6587\u6863",items:[{label:"\u4ECB\u7ECD",to:"/docs/about/introduction"},{label:"\u5FEB\u901F\u5F00\u59CB",to:"/docs/quickstart/setup"},{label:"\u53C2\u4E0E\u8D21\u732E",to:"/docs/contributing"}]},{title:"\u793E\u533A",items:[{label:"GitHub",href:"https://github.com/DTStack/SqlParserX"},{label:"\u535A\u5BA2",to:"/blog"},{label:"\u793E\u533A",to:"/community"}]},{title:"\u66F4\u591A",items:[{label:"\u53D1\u884C\u7248",href:"https://github.com/DTStack/SqlParserX/releases"},{label:"\u67B6\u6784\u8BBE\u8BA1",to:"/docs/about/architecture"}]}],copyright:"Copyright \xa9 2026 dtstack \xb7 SqlParserX"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["bash","json","nginx","java","sql","python"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,storage:{type:"localStorage",namespace:!0},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},8168(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},594(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164(e,t,n){"use strict";n.d(t,{A:()=>r});let r=function(){for(var e,t,n=0,r="",a=arguments.length;nU,f4:()=>ey});var s,u,c,d,f,p,m,g,h,b,y,v,w,S,k,x,E,_,T=n(6540),A=n(4164),C=Object.create,P=Object.defineProperty,N=Object.defineProperties,O=Object.getOwnPropertyDescriptor,L=Object.getOwnPropertyDescriptors,I=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,j=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,M=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))D.call(t,n)&&M(e,n,t[n]);if(R)for(var n of R(t))F.call(t,n)&&M(e,n,t[n]);return e},B=(e,t)=>{var n={};for(var r in e)D.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&R)for(var r of R(e))0>t.indexOf(r)&&F.call(e,r)&&(n[r]=e[r]);return n},U=(i=null!=(o=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=c.reach));k+=S.value.length,S=S.next){var x,E=S.value;if(n.length>t.length)return;if(!(E instanceof a)){var _=1;if(b){if(!(x=o(w,k,t,h))||x.index>=t.length)break;var T=x.index,A=x.index+x[0].length,C=k;for(C+=S.value.length;T>=C;)C+=(S=S.next).value.length;if(C-=S.value.length,k=C,S.value instanceof a)continue;for(var P=S;P!==n.tail&&(Cc.reach&&(c.reach=I);var R=S.prev;if(O&&(R=i(n,R,O),k+=O.length),function(e,t,n){for(var r=t.next,a=0;a1){var j={cause:d+","+p,reach:I};e(t,n,l,S.prev,k,j),c&&j.reach>c.reach&&(c.reach=j.reach)}}}}}}(e,u,t,u.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function i(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach(function(t){a+=e(t,n)}),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},l=t.alias;l&&(Array.isArray(l)?Array.prototype.push.apply(o.classes,l):o.classes.push(l)),r.hooks.run("wrap",o);var i="";for(var s in o.attributes)i+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+i+">"+o.content+""},r}();t.exports=n,n.default=n}},function(){return a||(0,r[I(r)[0]])((a={exports:{}}).exports,a),a.exports})())?C(j(o)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of I(t))D.call(e,a)||a===n||P(e,a,{get:()=>t[a],enumerable:!(r=O(t,a))||r.enumerable});return e})(!l&&o&&o.__esModule?i:P(i,"default",{value:o,enumerable:!0}),o));U.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},U.languages.markup.tag.inside["attr-value"].inside.entity=U.languages.markup.entity,U.languages.markup.doctype.inside["internal-subset"].inside=U.languages.markup,U.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(U.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:U.languages[t]},n.cdata=/^$/i,{"included-cdata":{pattern://i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:U.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},U.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(U.languages.markup.tag,"addAttribute",{value:function(e,t){U.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:U.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),U.languages.html=U.languages.markup,U.languages.mathml=U.languages.markup,U.languages.svg=U.languages.markup,U.languages.xml=U.languages.extend("markup",{}),U.languages.ssml=U.languages.xml,U.languages.atom=U.languages.xml,U.languages.rss=U.languages.xml,s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},c=RegExp((c="(?:[^\\\\-]|"+(u=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")")+"-"+c),d={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},U.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:c,inside:{escape:u,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:u}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":d}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:u,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},U.languages.javascript=U.languages.extend("clike",{"class-name":[U.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),U.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,U.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:U.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:U.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:U.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:U.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:U.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),U.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:U.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),U.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),U.languages.markup&&(U.languages.markup.tag.addInlined("script","javascript"),U.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),U.languages.js=U.languages.javascript,U.languages.actionscript=U.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),U.languages.actionscript["class-name"].alias="function",delete U.languages.actionscript.parameter,delete U.languages.actionscript["literal-property"],U.languages.markup&&U.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:U.languages.markup}}),f=/#(?!\{).+/,p={pattern:/#\{[^}]+\}/,alias:"variable"},U.languages.coffeescript=U.languages.extend("javascript",{comment:f,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:p}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),U.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:f,interpolation:p}}}),U.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:U.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:p}}]}),U.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete U.languages.coffeescript["template-string"],U.languages.coffee=U.languages.coffeescript,Object.defineProperty(m=U.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/},"addSupport",{value:function(e,t){(e="string"==typeof e?[e]:e).forEach(function(e){var n=function(e){e.inside||(e.inside={}),e.inside.rest=t},r="doc-comment";if(a=U.languages[e]){var a,o=a[r];if((o=o||(a=U.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[r])instanceof RegExp&&(o=a[r]={pattern:o}),Array.isArray(o))for(var l=0,i=o.length;l|\+|~|\|\|/,punctuation:/[(),]/}},U.languages.css.atrule.inside["selector-function-argument"].inside=h,U.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),h={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},b={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},U.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:h,number:b,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:h,number:b}),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function l(e,t){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return"(?:"+a+"|"+o+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:l(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:l(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:l(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:l(o),lookbehind:!0,greedy:!0},number:{pattern:l(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(U),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return r}),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,l=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(U),U.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:U.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},U.hooks.add("after-tokenize",function(e){if("graphql"===e.language)for(var t=e.tokens.filter(function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type}),n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function l(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function i(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}e.languages.javascript["template-string"]=[l("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),l("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),l("svg",/\bsvg/.source),l("markdown",/\b(?:markdown|md)/.source),l("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),l("sql",/\bsql/.source),t].filter(Boolean);var s={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};e.hooks.add("after-tokenize",function(t){t.language in s&&function t(n){for(var l=0,s=n.length;l=d.length)return;var l,s,f,p,m,g,h,b=n[o];"string"==typeof b||"string"==typeof b.content?(l=d[u],-1!==(h=(g="string"==typeof b?b:b.content).indexOf(l))&&(++u,s=g.substring(0,h),m=c[l],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(m,p)).length&&((f=[1,1]).push.apply(f,i(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,m),p=g.substring(h+l.length),m=[],s&&m.push(s),m.push(f),p&&(t(g=[p]),m.push.apply(m,g)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):b.content=m)):Array.isArray(h=b.content)?t(h):t([h])}}(s),new e.Token(l,s,"language-"+l,t)}(c,d,f))):t(u):"string"!=typeof u&&t([u]))}}(t.tokens)})}(U),U.languages.typescript=U.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),U.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete U.languages.typescript.parameter,delete U.languages.typescript["literal-property"],y=U.languages.extend("typescript",{}),delete y["class-name"],U.languages.typescript["class-name"].inside=y,U.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:y}}}}),U.languages.ts=U.languages.typescript,v=U.languages.javascript,S="(@(?:arg|argument|param|property)\\s+(?:"+(w=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source)+"\\s+)?)",U.languages.jsdoc=U.languages.extend("javadoclike",{parameter:{pattern:RegExp(S+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),U.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(S+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:v,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return w})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+w),lookbehind:!0,inside:{string:v.string,number:v.number,boolean:v.boolean,keyword:U.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:v,alias:"language-javascript"}}}}),U.languages.javadoclike.addSupport("javascript",U.languages.jsdoc),U.languages.flow=U.languages.extend("javascript",{}),U.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),U.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete U.languages.flow.parameter,U.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(U.languages.flow.keyword)||(U.languages.flow.keyword=[U.languages.flow.keyword]),U.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0}),U.languages.n4js=U.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),U.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),U.languages.n4jsd=U.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return RegExp(e=e.replace(//g,function(){return n}).replace(//g,function(){return r}).replace(//g,function(){return a}),t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",function(t){"jsx"!==t.language&&"tsx"!==t.language||function t(n){for(var r=[],a=0;a"!==o.content[o.content.length-1].content&&r.push({tagName:l(o.content[0].content[1]),openedBraces:0}):0]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},U.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=U.languages.swift}),U.languages.kotlin=U.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete U.languages.kotlin["class-name"],x={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:U.languages.kotlin}},U.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:x},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:x},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete U.languages.kotlin.string,U.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),U.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),U.languages.kt=U.languages.kotlin,U.languages.kts=U.languages.kotlin,U.languages.c=U.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),U.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),U.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},U.languages.c.string],char:U.languages.c.char,comment:U.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:U.languages.c}}}}),U.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete U.languages.c.boolean,U.languages.objectivec=U.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete U.languages.objectivec["class-name"],U.languages.objc=U.languages.objectivec,U.languages.reason=U.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),U.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete U.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(U),U.languages.go=U.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),U.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete U.languages.go["class-name"],E=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,_=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return E.source}),U.languages.cpp=U.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return E.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:E,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),U.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return _})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),U.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:U.languages.cpp}}}}),U.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),U.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:U.languages.extend("cpp",{})}}),U.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},U.languages.cpp["base-clause"]),U.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},U.languages.python["string-interpolation"].inside.interpolation.inside.rest=U.languages.python,U.languages.py=U.languages.python,U.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},U.languages.webmanifest=U.languages.json;var $={},q={dracula:()=>X,duotoneDark:()=>V,duotoneLight:()=>G,github:()=>W,gruvboxMaterialDark:()=>ed,gruvboxMaterialLight:()=>ef,jettwaveDark:()=>ei,jettwaveLight:()=>es,nightOwl:()=>Y,nightOwlLight:()=>K,oceanicNext:()=>J,okaidia:()=>ee,oneDark:()=>eu,oneLight:()=>ec,palenight:()=>et,shadesOfPurple:()=>en,synthwave84:()=>er,ultramin:()=>ea,vsDark:()=>eo,vsLight:()=>el};for(var H in q)P($,H,{get:q[H],enumerable:!0});var X={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},V={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},G={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},W={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},Y={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},K={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Q="#c5a5c5",Z="#8dc891",J={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:Q}},{types:["attr-value"],style:{color:Z}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:Z}},{types:["punctuation"],style:{color:Z}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:Q}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},ee={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},et={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},en={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},er={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},ea={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},eo={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},el={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},ei={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},es={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},eu={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},ec={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},ed={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},ef={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},ep=/\r\n|\r|\n/,em=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},eg=(e,t)=>{let n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},eh=e=>{let t=[[]],n=[e],r=[0],a=[e.length],o=0,l=0,i=[],s=[i];for(;l>-1;){for(;(o=r[l]++)0?u:["plain"],e=c):(u=eg(u,c.type),c.alias&&(u=eg(u,c.alias)),e=c.content),"string"!=typeof e){l++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}let d=e.split(ep),f=d.length;i.push({types:u,content:d[0]});for(let e=1;e{let o,l=t.toLowerCase(),i=((e,t)=>{let{plain:n}=e,r=e.styles.reduce((e,n)=>{let{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{let n=z(z({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=N(z({},n),L({backgroundColor:void 0})),r})(r,l),s=(0,T.useCallback)(e=>{var{className:t,style:n,line:r}=e;let a=N(z({},B(e,["className","style","line"])),L({className:(0,A.A)("token-line",t)}));return"object"==typeof i&&"plain"in i&&(a.style=i.plain),"object"==typeof n&&(a.style=z(z({},a.style||{}),n)),a},[i]),u=(o=(0,T.useCallback)(({types:e,empty:t})=>{if(null!=i)return 1===e.length&&"plain"===e[0]?null!=t?{display:"inline-block"}:void 0:1===e.length&&null!=t?i[e[0]]:Object.assign(null!=t?{display:"inline-block"}:{},...e.map(e=>i[e]))},[i]),(0,T.useCallback)(e=>{var{token:t,className:n,style:r}=e;let a=N(z({},B(e,["token","className","style"])),L({className:(0,A.A)("token",...t.types,n),children:t.content,style:o(t)}));return null!=r&&(a.style=z(z({},a.style||{}),r)),a},[o])),c=a.languages[l];return e({tokens:(({prism:e,code:t,grammar:n,language:r})=>(0,T.useMemo)(()=>{if(null==n)return eh([t]);let a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),eh(a.tokens)},[t,n,r,e]))({prism:a,language:l,code:n,grammar:c}),className:`prism-code language-${l}`,style:null!=i?i.root:{},getLineProps:s,getTokenProps:u})},ey=e=>(0,T.createElement)(eb,N(z({},e),L({prism:e.prism||U,theme:e.theme||eo,code:e.code,language:e.language})))},1561(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}},1635(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>j,__assign:()=>o,__asyncDelegator:()=>_,__asyncGenerator:()=>E,__asyncValues:()=>T,__await:()=>x,__awaiter:()=>m,__classPrivateFieldGet:()=>L,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>I,__createBinding:()=>h,__decorate:()=>i,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>b,__extends:()=>a,__generator:()=>g,__importDefault:()=>O,__importStar:()=>N,__makeTemplateObject:()=>A,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>l,__rewriteRelativeImportExtension:()=>M,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>k,__spreadArrays:()=>S,__values:()=>y,default:()=>z});var r=function(e,t){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}function i(e,t,n,r){var a,o=arguments.length,l=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(a=e[i])&&(l=(o<3?a(l):o>3?a(t,n,l):a(t,n))||l);return o>3&&l&&Object.defineProperty(t,n,l),l}function s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,a,o){function l(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var i,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var m={};for(var g in r)m[g]="access"===g?{}:r[g];for(var g in r.access)m.access[g]=r.access[g];m.addInitializer=function(e){if(f)throw TypeError("Cannot add initializers after decoration has completed");o.push(l(e||null))};var h=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],m);if("accessor"===s){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw TypeError("Object expected");(i=l(h.get))&&(d.get=i),(i=l(h.set))&&(d.set=i),(i=l(h.init))&&a.unshift(i)}else(i=l(h))&&("field"===s?a.unshift(i):d[u]=i)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)l.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return l}function w(){for(var e=[],t=0;t1||i(e,t)})},t&&(r[e]=t(r[e])))}function i(e,t){try{var n;(n=a[e](t)).value instanceof x?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(e){c(o[0][3],e)}}function s(e){i("next",e)}function u(e){i("throw",e)}function c(e,t){e(t),o.shift(),o.length&&i(o[0][0],o[0][1])}}function _(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:x(e[r](t)),done:!1}:a?a(t):t}:a}}function T(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=y(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,a){var o,l,i;o=r,l=a,i=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){o({value:e,done:i})},l)})}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},P=function(e){return(P=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t})(e)};function N(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=P(e),r=0;r{try{return u.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{let t=u.getItem(n);u.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:u})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{let e=u.getItem(n);u.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:u})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{let t=t=>{t.storageArea===u&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(e){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,e),()=>{}}}}}},3899(e,t,n){"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(4848),a=n(6540),o=n(898),l=n(8491),i=n(2260);let s=({title:e,siteTitle:t,titleDelimiter:n})=>{let r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,a.createContext)(null);function c({formatter:e,children:t}){return(0,r.jsx)(u.Provider,{value:e,children:t})}function d(){let e=function(){let e=(0,a.useContext)(u);if(null===e)throw new i.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:r}=t,{plugin:c}=(0,l.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:r,plugin:c,defaultFormatter:s})}}},5243(e,t,n){"use strict";n.d(t,{o:()=>l});var r=n(898),a=n(6347),o=n(5248);function l(){let{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:l}=(0,a.zy)(),i=(0,o.applyTrailingSlash)(l,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){let r=function(e){let t=n[e];if(!t)throw Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e),a=`${t?r.url:""}`,o=r.baseUrl;return`${a}${o}${i}`}}}},8398(e,t,n){"use strict";n.d(t,{$:()=>l});var r=n(6540),a=n(6347),o=n(2260);function l(e){let t=(0,a.zy)(),n=(0,o.ZC)(t),l=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&l({location:t,previousLocation:n})},[l,t,n])}},1022(e,t,n){"use strict";n.d(t,{p:()=>a});var r=n(898);function a(){return(0,r.A)().siteConfig.themeConfig}},4207(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){let{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#")||void 0===n)return e;let[l]=e.split(/[#?]/),i="/"===l||l===r?l:n?a(l):o(l);return e.replace(l,i)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;let r=n(9262);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},7541(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},5248(e,t,n){"use strict";t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0;let r=n(1635);t.blogPostContainerID="__blog-post-container";var a=n(4207);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r.__importDefault(a).default}}),n(9262);var o=n(7541);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9262(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},4784(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>r});let r={title:"SqlParserX",tagline:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305",favicon:"img/logo.png",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0,siteStorageNamespacing:!0,fasterByDefault:!0,mdx1CompatDisabledByDefault:!0},experimental_vcs:{},experimental_router:"browser",faster:{swcJsLoader:!0,swcJsMinimizer:!0,swcHtmlMinimizer:!0,lightningCssMinimizer:!0,mdxCrossCompilerCache:!0,rspackBundler:!0,rspackPersistentCache:!0,ssgWorkerThreads:!0,gitEagerVcs:!0}},url:"https://dtstack.github.io",baseUrl:"/SqlParserX/",organizationName:"DTStack",projectName:"SqlParserX",deploymentBranch:"gh-pages",trailingSlash:!1,onBrokenLinks:"throw",markdown:{mermaid:!0,hooks:{onBrokenMarkdownLinks:"warn",onBrokenMarkdownImages:"throw"},format:"mdx",emoji:!0,mdx1Compat:{comments:!1,admonitions:!1,headingIds:!1},anchors:{maintainCase:!1}},themes:["@docusaurus/theme-mermaid"],i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans","en"],localeConfigs:{"zh-Hans":{label:"\u7B80\u4F53\u4E2D\u6587",direction:"ltr",htmlLang:"zh-Hans"},en:{label:"English",direction:"ltr",htmlLang:"en"}},path:"i18n"},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",editUrl:"https://github.com/DTStack/SqlParserX/tree/master/website/",showLastUpdateAuthor:!1,showLastUpdateTime:!1,versions:{current:{label:"Next \u{1F6A7}"}},lastVersion:"1.0"},blog:{showReadingTime:!0,feedOptions:{type:["rss","atom"],xslt:!0},editUrl:"https://github.com/DTStack/SqlParserX/tree/master/website/",onInlineTags:"warn",onInlineAuthors:"warn",onUntruncatedBlogPosts:"warn"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/social-card.svg",colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},announcementBar:{id:"announcement",content:"\u2B50 \u5982\u679C\u4F60\u89C9\u5F97 SqlParserX \u6709\u7528\uFF0C\u6B22\u8FCE\u5230 GitHub \u70B9\u4E2A Star",backgroundColor:"#fafbfc",textColor:"#091E42",isCloseable:!0},navbar:{title:"SqlParserX",logo:{alt:"SqlParserX Logo",src:"img/logo.png"},items:[{to:"/",label:"\u9996\u9875",position:"left"},{type:"docSidebar",sidebarId:"docs",position:"left",label:"\u6587\u6863"},{to:"/blog",label:"\u535A\u5BA2",position:"left"},{to:"/community",label:"\u793E\u533A",position:"left"},{type:"docsVersionDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/DTStack/SqlParserX",position:"right",className:"header-github-link","aria-label":"GitHub repository"}],hideOnScroll:!1},footer:{style:"light",links:[{title:"\u6587\u6863",items:[{label:"\u4ECB\u7ECD",to:"/docs/about/introduction"},{label:"\u5FEB\u901F\u5F00\u59CB",to:"/docs/quickstart/setup"},{label:"\u53C2\u4E0E\u8D21\u732E",to:"/docs/contributing"}]},{title:"\u793E\u533A",items:[{label:"GitHub",href:"https://github.com/DTStack/SqlParserX"},{label:"\u535A\u5BA2",to:"/blog"},{label:"\u793E\u533A",to:"/community"}]},{title:"\u66F4\u591A",items:[{label:"\u53D1\u884C\u7248",href:"https://github.com/DTStack/SqlParserX/releases"},{label:"\u67B6\u6784\u8BBE\u8BA1",to:"/docs/about/architecture"}]}],copyright:"Copyright \xa9 2026 dtstack \xb7 SqlParserX"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["bash","json","nginx","java","sql","python"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,storage:{type:"localStorage",namespace:!0},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},8168(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},594(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164(e,t,n){"use strict";n.d(t,{A:()=>r});let r=function(){for(var e,t,n=0,r="",a=arguments.length;nU,f4:()=>ey});var s,u,c,d,f,p,m,g,h,b,y,v,w,S,k,x,E,_,T=n(6540),A=n(4164),C=Object.create,P=Object.defineProperty,N=Object.defineProperties,O=Object.getOwnPropertyDescriptor,L=Object.getOwnPropertyDescriptors,I=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,j=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,M=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))D.call(t,n)&&M(e,n,t[n]);if(R)for(var n of R(t))F.call(t,n)&&M(e,n,t[n]);return e},B=(e,t)=>{var n={};for(var r in e)D.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&R)for(var r of R(e))0>t.indexOf(r)&&F.call(e,r)&&(n[r]=e[r]);return n},U=(i=null!=(o=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=c.reach));k+=S.value.length,S=S.next){var x,E=S.value;if(n.length>t.length)return;if(!(E instanceof a)){var _=1;if(b){if(!(x=o(w,k,t,h))||x.index>=t.length)break;var T=x.index,A=x.index+x[0].length,C=k;for(C+=S.value.length;T>=C;)C+=(S=S.next).value.length;if(C-=S.value.length,k=C,S.value instanceof a)continue;for(var P=S;P!==n.tail&&(Cc.reach&&(c.reach=I);var R=S.prev;if(O&&(R=i(n,R,O),k+=O.length),function(e,t,n){for(var r=t.next,a=0;a1){var j={cause:d+","+p,reach:I};e(t,n,l,S.prev,k,j),c&&j.reach>c.reach&&(c.reach=j.reach)}}}}}}(e,u,t,u.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function i(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach(function(t){a+=e(t,n)}),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},l=t.alias;l&&(Array.isArray(l)?Array.prototype.push.apply(o.classes,l):o.classes.push(l)),r.hooks.run("wrap",o);var i="";for(var s in o.attributes)i+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+i+">"+o.content+""},r}();t.exports=n,n.default=n}},function(){return a||(0,r[I(r)[0]])((a={exports:{}}).exports,a),a.exports})())?C(j(o)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of I(t))D.call(e,a)||a===n||P(e,a,{get:()=>t[a],enumerable:!(r=O(t,a))||r.enumerable});return e})(!l&&o&&o.__esModule?i:P(i,"default",{value:o,enumerable:!0}),o));U.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},U.languages.markup.tag.inside["attr-value"].inside.entity=U.languages.markup.entity,U.languages.markup.doctype.inside["internal-subset"].inside=U.languages.markup,U.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(U.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:U.languages[t]},n.cdata=/^$/i,{"included-cdata":{pattern://i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:U.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},U.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(U.languages.markup.tag,"addAttribute",{value:function(e,t){U.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:U.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),U.languages.html=U.languages.markup,U.languages.mathml=U.languages.markup,U.languages.svg=U.languages.markup,U.languages.xml=U.languages.extend("markup",{}),U.languages.ssml=U.languages.xml,U.languages.atom=U.languages.xml,U.languages.rss=U.languages.xml,s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},c=RegExp((c="(?:[^\\\\-]|"+(u=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")")+"-"+c),d={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},U.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:c,inside:{escape:u,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:u}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":d}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:u,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},U.languages.javascript=U.languages.extend("clike",{"class-name":[U.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),U.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,U.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:U.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:U.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:U.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:U.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:U.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),U.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:U.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),U.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),U.languages.markup&&(U.languages.markup.tag.addInlined("script","javascript"),U.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),U.languages.js=U.languages.javascript,U.languages.actionscript=U.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),U.languages.actionscript["class-name"].alias="function",delete U.languages.actionscript.parameter,delete U.languages.actionscript["literal-property"],U.languages.markup&&U.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:U.languages.markup}}),f=/#(?!\{).+/,p={pattern:/#\{[^}]+\}/,alias:"variable"},U.languages.coffeescript=U.languages.extend("javascript",{comment:f,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:p}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),U.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:f,interpolation:p}}}),U.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:U.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:p}}]}),U.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete U.languages.coffeescript["template-string"],U.languages.coffee=U.languages.coffeescript,Object.defineProperty(m=U.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/},"addSupport",{value:function(e,t){(e="string"==typeof e?[e]:e).forEach(function(e){var n=function(e){e.inside||(e.inside={}),e.inside.rest=t},r="doc-comment";if(a=U.languages[e]){var a,o=a[r];if((o=o||(a=U.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[r])instanceof RegExp&&(o=a[r]={pattern:o}),Array.isArray(o))for(var l=0,i=o.length;l|\+|~|\|\|/,punctuation:/[(),]/}},U.languages.css.atrule.inside["selector-function-argument"].inside=h,U.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),h={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},b={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},U.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:h,number:b,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:h,number:b}),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function l(e,t){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return"(?:"+a+"|"+o+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:l(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:l(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:l(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:l(o),lookbehind:!0,greedy:!0},number:{pattern:l(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(U),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return r}),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,l=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(U),U.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:U.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},U.hooks.add("after-tokenize",function(e){if("graphql"===e.language)for(var t=e.tokens.filter(function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type}),n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function l(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function i(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}e.languages.javascript["template-string"]=[l("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),l("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),l("svg",/\bsvg/.source),l("markdown",/\b(?:markdown|md)/.source),l("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),l("sql",/\bsql/.source),t].filter(Boolean);var s={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};e.hooks.add("after-tokenize",function(t){t.language in s&&function t(n){for(var l=0,s=n.length;l=d.length)return;var l,s,f,p,m,g,h,b=n[o];"string"==typeof b||"string"==typeof b.content?(l=d[u],-1!==(h=(g="string"==typeof b?b:b.content).indexOf(l))&&(++u,s=g.substring(0,h),m=c[l],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(m,p)).length&&((f=[1,1]).push.apply(f,i(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,m),p=g.substring(h+l.length),m=[],s&&m.push(s),m.push(f),p&&(t(g=[p]),m.push.apply(m,g)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):b.content=m)):Array.isArray(h=b.content)?t(h):t([h])}}(s),new e.Token(l,s,"language-"+l,t)}(c,d,f))):t(u):"string"!=typeof u&&t([u]))}}(t.tokens)})}(U),U.languages.typescript=U.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),U.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete U.languages.typescript.parameter,delete U.languages.typescript["literal-property"],y=U.languages.extend("typescript",{}),delete y["class-name"],U.languages.typescript["class-name"].inside=y,U.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:y}}}}),U.languages.ts=U.languages.typescript,v=U.languages.javascript,S="(@(?:arg|argument|param|property)\\s+(?:"+(w=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source)+"\\s+)?)",U.languages.jsdoc=U.languages.extend("javadoclike",{parameter:{pattern:RegExp(S+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),U.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(S+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:v,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return w})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+w),lookbehind:!0,inside:{string:v.string,number:v.number,boolean:v.boolean,keyword:U.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:v,alias:"language-javascript"}}}}),U.languages.javadoclike.addSupport("javascript",U.languages.jsdoc),U.languages.flow=U.languages.extend("javascript",{}),U.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),U.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete U.languages.flow.parameter,U.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(U.languages.flow.keyword)||(U.languages.flow.keyword=[U.languages.flow.keyword]),U.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0}),U.languages.n4js=U.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),U.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),U.languages.n4jsd=U.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return RegExp(e=e.replace(//g,function(){return n}).replace(//g,function(){return r}).replace(//g,function(){return a}),t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",function(t){"jsx"!==t.language&&"tsx"!==t.language||function t(n){for(var r=[],a=0;a"!==o.content[o.content.length-1].content&&r.push({tagName:l(o.content[0].content[1]),openedBraces:0}):0]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},U.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=U.languages.swift}),U.languages.kotlin=U.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete U.languages.kotlin["class-name"],x={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:U.languages.kotlin}},U.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:x},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:x},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete U.languages.kotlin.string,U.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),U.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),U.languages.kt=U.languages.kotlin,U.languages.kts=U.languages.kotlin,U.languages.c=U.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),U.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),U.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},U.languages.c.string],char:U.languages.c.char,comment:U.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:U.languages.c}}}}),U.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete U.languages.c.boolean,U.languages.objectivec=U.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete U.languages.objectivec["class-name"],U.languages.objc=U.languages.objectivec,U.languages.reason=U.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),U.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete U.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(U),U.languages.go=U.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),U.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete U.languages.go["class-name"],E=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,_=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return E.source}),U.languages.cpp=U.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return E.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:E,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),U.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return _})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),U.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:U.languages.cpp}}}}),U.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),U.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:U.languages.extend("cpp",{})}}),U.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},U.languages.cpp["base-clause"]),U.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},U.languages.python["string-interpolation"].inside.interpolation.inside.rest=U.languages.python,U.languages.py=U.languages.python,U.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},U.languages.webmanifest=U.languages.json;var $={},q={dracula:()=>X,duotoneDark:()=>V,duotoneLight:()=>G,github:()=>W,gruvboxMaterialDark:()=>ed,gruvboxMaterialLight:()=>ef,jettwaveDark:()=>ei,jettwaveLight:()=>es,nightOwl:()=>Y,nightOwlLight:()=>K,oceanicNext:()=>J,okaidia:()=>ee,oneDark:()=>eu,oneLight:()=>ec,palenight:()=>et,shadesOfPurple:()=>en,synthwave84:()=>er,ultramin:()=>ea,vsDark:()=>eo,vsLight:()=>el};for(var H in q)P($,H,{get:q[H],enumerable:!0});var X={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},V={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},G={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},W={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},Y={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},K={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Q="#c5a5c5",Z="#8dc891",J={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:Q}},{types:["attr-value"],style:{color:Z}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:Z}},{types:["punctuation"],style:{color:Z}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:Q}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},ee={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},et={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},en={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},er={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},ea={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},eo={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},el={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},ei={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},es={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},eu={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},ec={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},ed={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},ef={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},ep=/\r\n|\r|\n/,em=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},eg=(e,t)=>{let n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},eh=e=>{let t=[[]],n=[e],r=[0],a=[e.length],o=0,l=0,i=[],s=[i];for(;l>-1;){for(;(o=r[l]++)0?u:["plain"],e=c):(u=eg(u,c.type),c.alias&&(u=eg(u,c.alias)),e=c.content),"string"!=typeof e){l++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}let d=e.split(ep),f=d.length;i.push({types:u,content:d[0]});for(let e=1;e{let o,l=t.toLowerCase(),i=((e,t)=>{let{plain:n}=e,r=e.styles.reduce((e,n)=>{let{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{let n=z(z({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=N(z({},n),L({backgroundColor:void 0})),r})(r,l),s=(0,T.useCallback)(e=>{var{className:t,style:n,line:r}=e;let a=N(z({},B(e,["className","style","line"])),L({className:(0,A.A)("token-line",t)}));return"object"==typeof i&&"plain"in i&&(a.style=i.plain),"object"==typeof n&&(a.style=z(z({},a.style||{}),n)),a},[i]),u=(o=(0,T.useCallback)(({types:e,empty:t})=>{if(null!=i)return 1===e.length&&"plain"===e[0]?null!=t?{display:"inline-block"}:void 0:1===e.length&&null!=t?i[e[0]]:Object.assign(null!=t?{display:"inline-block"}:{},...e.map(e=>i[e]))},[i]),(0,T.useCallback)(e=>{var{token:t,className:n,style:r}=e;let a=N(z({},B(e,["token","className","style"])),L({className:(0,A.A)("token",...t.types,n),children:t.content,style:o(t)}));return null!=r&&(a.style=z(z({},a.style||{}),r)),a},[o])),c=a.languages[l];return e({tokens:(({prism:e,code:t,grammar:n,language:r})=>(0,T.useMemo)(()=>{if(null==n)return eh([t]);let a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),eh(a.tokens)},[t,n,r,e]))({prism:a,language:l,code:n,grammar:c}),className:`prism-code language-${l}`,style:null!=i?i.root:{},getLineProps:s,getTokenProps:u})},ey=e=>(0,T.createElement)(eb,N(z({},e),L({prism:e.prism||U,theme:e.theme||eo,code:e.code,language:e.language})))},1561(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}},1635(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>j,__assign:()=>o,__asyncDelegator:()=>_,__asyncGenerator:()=>E,__asyncValues:()=>T,__await:()=>x,__awaiter:()=>m,__classPrivateFieldGet:()=>L,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>I,__createBinding:()=>h,__decorate:()=>i,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>b,__extends:()=>a,__generator:()=>g,__importDefault:()=>O,__importStar:()=>N,__makeTemplateObject:()=>A,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>l,__rewriteRelativeImportExtension:()=>M,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>k,__spreadArrays:()=>S,__values:()=>y,default:()=>z});var r=function(e,t){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}function i(e,t,n,r){var a,o=arguments.length,l=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(a=e[i])&&(l=(o<3?a(l):o>3?a(t,n,l):a(t,n))||l);return o>3&&l&&Object.defineProperty(t,n,l),l}function s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,a,o){function l(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var i,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var m={};for(var g in r)m[g]="access"===g?{}:r[g];for(var g in r.access)m.access[g]=r.access[g];m.addInitializer=function(e){if(f)throw TypeError("Cannot add initializers after decoration has completed");o.push(l(e||null))};var h=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],m);if("accessor"===s){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw TypeError("Object expected");(i=l(h.get))&&(d.get=i),(i=l(h.set))&&(d.set=i),(i=l(h.init))&&a.unshift(i)}else(i=l(h))&&("field"===s?a.unshift(i):d[u]=i)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)l.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return l}function w(){for(var e=[],t=0;t1||i(e,t)})},t&&(r[e]=t(r[e])))}function i(e,t){try{var n;(n=a[e](t)).value instanceof x?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(e){c(o[0][3],e)}}function s(e){i("next",e)}function u(e){i("throw",e)}function c(e,t){e(t),o.shift(),o.length&&i(o[0][0],o[0][1])}}function _(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:x(e[r](t)),done:!1}:a?a(t):t}:a}}function T(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=y(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,a){var o,l,i;o=r,l=a,i=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){o({value:e,done:i})},l)})}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},P=function(e){return(P=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t})(e)};function N(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=P(e),r=0;r{"use strict";var e,a,c,f,d,b,r,t={},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var c=o[e]={exports:{}};return t[e].call(c.exports,c,c.exports,n),c.exports}n.m=t,n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(c,f){if(1&f&&(c=this(c)),8&f||"object"==typeof c&&c&&(4&f&&c.__esModule||16&f&&"function"==typeof c.then))return c;var d=Object.create(null);n.r(d);var b={};e=e||[null,a({}),a([]),a(a)];for(var r=2&f&&c;("object"==typeof r||"function"==typeof r)&&!~e.indexOf(r);r=a(r))Object.getOwnPropertyNames(r).forEach(e=>{b[e]=()=>c[e]});return b.default=()=>c,n.d(d,b),d},n.d=(e,a)=>{for(var c in a)n.o(a,c)&&!n.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,c)=>(n.f[c](e,a),a),[])),n.u=e=>"assets/js/"+(({106:"17896441",1221:"621db11d",143:"925626eb",1668:"5e95c892",1833:"814f3328",1837:"dbbf4deb",191:"36994c47",2052:"1f434cef",2684:"ae60c7b8",2705:"4a65a190",3044:"a9c167f1",3056:"a7456010",3220:"acecf23e",3658:"4277cc0d",3747:"aba21aa0",4063:"6badde6a",4522:"51515e66",4702:"efe00fe9",4796:"37f774df",48:"33fc5bb8",4823:"c4f5d8e4",5217:"0e384e19",5342:"26f3b9ac",5575:"a7bd4aaa",5936:"4d54d076",6074:"ccc49370",6171:"7bd8db71",6235:"78900b38",677:"53a1f56d",6785:"a94703ab",6798:"bec69a53",7214:"1f1ca1a6",7310:"06409a0f",7496:"a6aa9e1f",7503:"a110d8f6",7599:"13e6baf5",766:"6875c492",7768:"ece1c32f",7864:"b5ed4930",8198:"6db0e023",8585:"af051bb0",859:"80dcd7a6",8893:"672ba3d6",9054:"1f362aa0",9375:"4b0ae1c1",9575:"bf45ab0e",9660:"9e4087bc",9784:"e0e79246",9786:"01a85c17",984:"207a8b88"})[e]||e)+"."+({1016:"1b255e6a",106:"06353295",1134:"9de6afc4",1221:"cd6afb65",143:"6fb277ac",1491:"cb46ae3f",1567:"9f44ced9",1668:"a44b09d4",181:"90e2d56b",1833:"2ff0395c",1837:"9562b6f7",1862:"1a43044f",190:"c766b1ae",191:"a19db22c",2052:"30740b15",2107:"f3b80883",2240:"925a2a48",2268:"485f02c6",2358:"f2f121b1",2395:"66d8d46d",255:"9c291378",2684:"5efb8e17",2705:"8608128b",2853:"1bd4804e",2881:"cdbfd8a4",2951:"c9b9b0af",3009:"12978314",3017:"e8b74ccb",3044:"2c2fe63e",3056:"5acfbe30",3220:"319d1801",3312:"b999d1ad",3535:"18db5811",3636:"d70391ac",3658:"0c7523d7",3693:"178dfbe0",3747:"33b48647",3788:"070794c2",3851:"7f972b73",4063:"c6a1d033",4137:"1b2a1b68",4522:"b5eae504",4551:"88d2b179",4617:"6e66f439",4702:"a927140b",4709:"1ea5418e",4788:"eef239cb",4796:"a36f3fde",48:"3fe0f57b",480:"1eb9a3a7",4823:"97d426b8",4875:"484cb0fc",4892:"beb61f34",4936:"2ebabc8b",4950:"3fa51f56",5062:"689c71ca",5082:"46e3206e",5217:"8f3f4a72",5250:"ce6f0efa",5342:"58e5a0a2",5428:"8c0b8a2a",5493:"5c969992",5505:"ad92f9fd",5575:"f3b25130",5576:"62e087a6",5651:"49615f32",5783:"7e9699db",5936:"7e9344e4",6073:"79b4ff37",6074:"0fff0dec",612:"7ca96f70",6171:"d4297dd4",6184:"b444265b",6235:"9a9c1962",6326:"27d6a633",6374:"05518a82",6520:"c5a12252",6726:"ac90325c",6762:"affd9a83",677:"5f6ee735",6771:"da21afb4",6785:"0bcffcab",6798:"55ad773a",6832:"438cdfc9",6856:"9f4ebf6f",718:"659975ba",7214:"9a2d65d7",7256:"bfa531c9",7310:"691e787f",7472:"e543edd6",7496:"5f4ef81b",7503:"2bc864a9",7599:"1ded3d92",766:"0883a958",7693:"12c8b0db",7768:"aa2ebd53",7864:"e99a4908",7874:"d706704a",8198:"5148d681",8272:"20c4caca",8585:"a9139a80",859:"5bf1f6f4",8645:"4532c47b",8665:"cdad3879",8683:"9ee3384f",8738:"3885adf6",8893:"6f76c648",8927:"68e81f0d",896:"d7dfba44",9010:"278a1aa9",9054:"f648ace8",9156:"a3122fd7",9375:"b207de64",9575:"4702a368",9660:"294903d8",9729:"c0276c29",9784:"2dd3162a",9786:"35e1a59a",984:"8040e10c",9948:"5ccdc219",9956:"a105c9b8"})[e]+".js",n.miniCssF=e=>""+e+".css",n.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},n.l=function(e,a,f,d){if(c[e])return void c[e].push(a);if(void 0!==f)for(var b,r,t=document.getElementsByTagName("script"),o=0;o{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f=[],n.O=(e,a,c,d)=>{if(a){d=d||0;for(var b=f.length;b>0&&f[b-1][2]>d;b--)f[b]=f[b-1];f[b]=[a,c,d];return}for(var r=1/0,b=0;b=d)&&Object.keys(n.O).every(e=>n.O[e](a[o]))?a.splice(o--,1):(t=!1,d"1.7.12",n.gca=function(e){return e=({0x11113f9:"106","33fc5bb8":"48","925626eb":"143","36994c47":"191","53a1f56d":"677","6875c492":"766","80dcd7a6":"859","207a8b88":"984","621db11d":"1221","5e95c892":"1668","814f3328":"1833",dbbf4deb:"1837","1f434cef":"2052",ae60c7b8:"2684","4a65a190":"2705",a9c167f1:"3044",a7456010:"3056",acecf23e:"3220","4277cc0d":"3658",aba21aa0:"3747","6badde6a":"4063","51515e66":"4522",efe00fe9:"4702","37f774df":"4796",c4f5d8e4:"4823","0e384e19":"5217","26f3b9ac":"5342",a7bd4aaa:"5575","4d54d076":"5936",ccc49370:"6074","7bd8db71":"6171","78900b38":"6235",a94703ab:"6785",bec69a53:"6798","1f1ca1a6":"7214","06409a0f":"7310",a6aa9e1f:"7496",a110d8f6:"7503","13e6baf5":"7599",ece1c32f:"7768",b5ed4930:"7864","6db0e023":"8198",af051bb0:"8585","672ba3d6":"8893","1f362aa0":"9054","4b0ae1c1":"9375",bf45ab0e:"9575","9e4087bc":"9660",e0e79246:"9784","01a85c17":"9786"})[e]||e,n.p+n.u(e)},d={4014:0,9783:0},n.f.j=function(e,a){var c=n.o(d,e)?d[e]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(4014|9783)$/.test(e))d[e]=0;else{var f=new Promise((a,f)=>c=d[e]=[a,f]);a.push(c[2]=f);var b=n.p+n.u(e),r=Error();n.l(b,function(a){if(n.o(d,e)&&(0!==(c=d[e])&&(d[e]=void 0),c)){var f=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;r.message="Loading chunk "+e+" failed.\n("+f+": "+b+")",r.name="ChunkLoadError",r.type=f,r.request=b,c[1](r)}},"chunk-"+e,e)}},n.O.j=e=>0===d[e],b=(e,a)=>{var c,f,b=a[0],r=a[1],t=a[2],o=0;if(b.some(e=>0!==d[e])){for(c in r)n.o(r,c)&&(n.m[c]=r[c]);if(t)var i=t(n)}for(e&&e(a);o{"use strict";var e,a,f,c,d,b,r,t={},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var f=o[e]={exports:{}};return t[e].call(f.exports,f,f.exports,n),f.exports}n.m=t,n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(f,c){if(1&c&&(f=this(f)),8&c||"object"==typeof f&&f&&(4&c&&f.__esModule||16&c&&"function"==typeof f.then))return f;var d=Object.create(null);n.r(d);var b={};e=e||[null,a({}),a([]),a(a)];for(var r=2&c&&f;("object"==typeof r||"function"==typeof r)&&!~e.indexOf(r);r=a(r))Object.getOwnPropertyNames(r).forEach(e=>{b[e]=()=>f[e]});return b.default=()=>f,n.d(d,b),d},n.d=(e,a)=>{for(var f in a)n.o(a,f)&&!n.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,f)=>(n.f[f](e,a),a),[])),n.u=e=>"assets/js/"+(({106:"17896441",1221:"621db11d",143:"925626eb",1668:"5e95c892",1833:"814f3328",1837:"dbbf4deb",191:"36994c47",2052:"1f434cef",2684:"ae60c7b8",2705:"4a65a190",3044:"a9c167f1",3056:"a7456010",3220:"acecf23e",3658:"4277cc0d",3747:"aba21aa0",4063:"6badde6a",4522:"51515e66",4702:"efe00fe9",4796:"37f774df",48:"33fc5bb8",4823:"c4f5d8e4",5217:"0e384e19",5342:"26f3b9ac",5575:"a7bd4aaa",5936:"4d54d076",6074:"ccc49370",6171:"7bd8db71",6235:"78900b38",677:"53a1f56d",6785:"a94703ab",6798:"bec69a53",7214:"1f1ca1a6",7310:"06409a0f",7496:"a6aa9e1f",7503:"a110d8f6",7599:"13e6baf5",766:"6875c492",7768:"ece1c32f",7864:"b5ed4930",8198:"6db0e023",8585:"af051bb0",859:"80dcd7a6",8893:"672ba3d6",9054:"1f362aa0",9375:"4b0ae1c1",9575:"bf45ab0e",9660:"9e4087bc",9784:"e0e79246",9786:"01a85c17",984:"207a8b88"})[e]||e)+"."+({1016:"1b255e6a",106:"06353295",1134:"9de6afc4",1221:"cd6afb65",143:"8ec80d7f",1491:"cb46ae3f",1567:"9f44ced9",1668:"a44b09d4",181:"90e2d56b",1833:"2ff0395c",1837:"bd47b7ef",1862:"1a43044f",190:"c766b1ae",191:"a19db22c",2052:"90aca92f",2107:"f3b80883",2240:"925a2a48",2268:"485f02c6",2358:"f2f121b1",2395:"66d8d46d",255:"9c291378",2684:"f2159cf2",2705:"37a16155",2853:"1bd4804e",2881:"cdbfd8a4",2951:"c9b9b0af",3009:"12978314",3017:"e8b74ccb",3044:"a288f643",3056:"5acfbe30",3220:"319d1801",3312:"b999d1ad",3535:"18db5811",3636:"d70391ac",3658:"3e705d44",3693:"178dfbe0",3747:"33b48647",3788:"070794c2",3851:"7f972b73",4063:"ff0c6a4f",4137:"1b2a1b68",4522:"dde2f931",4551:"88d2b179",4617:"6e66f439",4702:"648f2287",4709:"1ea5418e",4788:"eef239cb",4796:"88809e17",48:"3fe0f57b",480:"1eb9a3a7",4823:"97d426b8",4875:"484cb0fc",4892:"beb61f34",4936:"2ebabc8b",4950:"3fa51f56",5062:"689c71ca",5082:"46e3206e",5217:"58d81394",5250:"ce6f0efa",5342:"6771eee5",5428:"8c0b8a2a",5493:"5c969992",5505:"ad92f9fd",5575:"f3b25130",5576:"62e087a6",5651:"49615f32",5783:"7e9699db",5936:"da3daff2",6073:"79b4ff37",6074:"0fff0dec",612:"7ca96f70",6171:"6e90e258",6184:"b444265b",6235:"61168a60",6326:"27d6a633",6374:"05518a82",6520:"c5a12252",6726:"ac90325c",6762:"affd9a83",677:"5f6ee735",6771:"da21afb4",6785:"0bcffcab",6798:"55ad773a",6832:"438cdfc9",6856:"9f4ebf6f",718:"659975ba",7214:"cf742e62",7256:"bfa531c9",7310:"691e787f",7472:"e543edd6",7496:"5f4ef81b",7503:"d73a88c4",7599:"1ded3d92",766:"0883a958",7693:"12c8b0db",7768:"aa2ebd53",7864:"e99a4908",7874:"d706704a",8198:"5148d681",8272:"20c4caca",8585:"adcbbc72",859:"63daf50c",8645:"4532c47b",8665:"cdad3879",8683:"9ee3384f",8738:"3885adf6",8893:"6f76c648",8927:"68e81f0d",896:"d7dfba44",9010:"278a1aa9",9054:"9247c25c",9156:"a3122fd7",9375:"d8b39644",9575:"38f8f750",9660:"294903d8",9729:"c0276c29",9784:"7c281c81",9786:"35e1a59a",984:"b873bba7",9948:"5ccdc219",9956:"a105c9b8"})[e]+".js",n.miniCssF=e=>""+e+".css",n.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},n.l=function(e,a,c,d){if(f[e])return void f[e].push(a);if(void 0!==c)for(var b,r,t=document.getElementsByTagName("script"),o=0;o{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c=[],n.O=(e,a,f,d)=>{if(a){d=d||0;for(var b=c.length;b>0&&c[b-1][2]>d;b--)c[b]=c[b-1];c[b]=[a,f,d];return}for(var r=1/0,b=0;b=d)&&Object.keys(n.O).every(e=>n.O[e](a[o]))?a.splice(o--,1):(t=!1,d"1.7.12",n.gca=function(e){return e=({0x11113f9:"106","33fc5bb8":"48","925626eb":"143","36994c47":"191","53a1f56d":"677","6875c492":"766","80dcd7a6":"859","207a8b88":"984","621db11d":"1221","5e95c892":"1668","814f3328":"1833",dbbf4deb:"1837","1f434cef":"2052",ae60c7b8:"2684","4a65a190":"2705",a9c167f1:"3044",a7456010:"3056",acecf23e:"3220","4277cc0d":"3658",aba21aa0:"3747","6badde6a":"4063","51515e66":"4522",efe00fe9:"4702","37f774df":"4796",c4f5d8e4:"4823","0e384e19":"5217","26f3b9ac":"5342",a7bd4aaa:"5575","4d54d076":"5936",ccc49370:"6074","7bd8db71":"6171","78900b38":"6235",a94703ab:"6785",bec69a53:"6798","1f1ca1a6":"7214","06409a0f":"7310",a6aa9e1f:"7496",a110d8f6:"7503","13e6baf5":"7599",ece1c32f:"7768",b5ed4930:"7864","6db0e023":"8198",af051bb0:"8585","672ba3d6":"8893","1f362aa0":"9054","4b0ae1c1":"9375",bf45ab0e:"9575","9e4087bc":"9660",e0e79246:"9784","01a85c17":"9786"})[e]||e,n.p+n.u(e)},d={4014:0,9783:0},n.f.j=function(e,a){var f=n.o(d,e)?d[e]:void 0;if(0!==f)if(f)a.push(f[2]);else if(/^(4014|9783)$/.test(e))d[e]=0;else{var c=new Promise((a,c)=>f=d[e]=[a,c]);a.push(f[2]=c);var b=n.p+n.u(e),r=Error();n.l(b,function(a){if(n.o(d,e)&&(0!==(f=d[e])&&(d[e]=void 0),f)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;r.message="Loading chunk "+e+" failed.\n("+c+": "+b+")",r.name="ChunkLoadError",r.type=c,r.request=b,f[1](r)}},"chunk-"+e,e)}},n.O.j=e=>0===d[e],b=(e,a)=>{var f,c,b=a[0],r=a[1],t=a[2],o=0;if(b.some(e=>0!==d[e])){for(f in r)n.o(r,f)&&(n.m[f]=r[f]);if(t)var i=t(n)}for(e&&e(a);oBlog | SqlParserX +Blog | SqlParserX

    SqlParserX 的诞生起源背景与内部改造

    · 阅读需 17 分钟
    changlu
    SqlParserX 维护者
    diff --git a/blog/archive.html b/blog/archive.html index 341ece9..b5a2397 100644 --- a/blog/archive.html +++ b/blog/archive.html @@ -1,4 +1,4 @@ -历史博文 | SqlParserX +历史博文 | SqlParserX
    \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml index 6a702fd..914cc57 100644 --- a/blog/atom.xml +++ b/blog/atom.xml @@ -170,17 +170,17 @@
  • 语法解析层(sqlparserx-syntax):统一维护 Druid 依赖、SQL→AST、多语句解析与切分,以及后续数据源 Lexer / StatementParser / AST Node 扩展;
  • 业务解析层(sqlparserx-core):基于统一 AST 实现真实表、建表结构、表/字段血缘、函数与 SQL 权限改写。
  • -

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    +

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    6.2 从内部二开走向官方 Druid​

    项目早期依赖内部二开的 Druid 版本,随着能力沉淀,SqlParserX 已统一为官方 Druid 1.2.28,降低维护成本、方便社区协作。语法层坚持「不在业务层用大量正则替换规避语法问题」,方言语法差异一律回到语法层按 Druid 的方式扩展。

    6.3 能力与文档体系​

    SqlParserX 不仅提供代码,也提供了一套可维护的文档体系:

    6.4 目标​

      diff --git a/blog/authors.html b/blog/authors.html index b9bd632..7cce606 100644 --- a/blog/authors.html +++ b/blog/authors.html @@ -1,4 +1,4 @@ -作者 | SqlParserX +作者 | SqlParserX

      作者

      \ No newline at end of file diff --git a/blog/authors/changlu.html b/blog/authors/changlu.html index 52cb328..378dda4 100644 --- a/blog/authors/changlu.html +++ b/blog/authors/changlu.html @@ -1,4 +1,4 @@ -changlu - 1 篇博文 | SqlParserX +changlu - 1 篇博文 | SqlParserX
      changlu
      SqlParserX 维护者
      查看所有作者

      SqlParserX 的诞生起源背景与内部改造

      · 阅读需 17 分钟
      changlu
      SqlParserX 维护者
      diff --git a/blog/origin-of-sqlparserx.html b/blog/origin-of-sqlparserx.html index cc92551..2925148 100644 --- a/blog/origin-of-sqlparserx.html +++ b/blog/origin-of-sqlparserx.html @@ -1,4 +1,4 @@ -SqlParserX 的诞生起源背景与内部改造 | SqlParserX +SqlParserX 的诞生起源背景与内部改造 | SqlParserX

      SqlParserX 的诞生起源背景与内部改造

      · 阅读需 17 分钟
      changlu
      SqlParserX 维护者
      @@ -158,17 +158,17 @@

      6.1 双层
    • 语法解析层(sqlparserx-syntax):统一维护 Druid 依赖、SQL→AST、多语句解析与切分,以及后续数据源 Lexer / StatementParser / AST Node 扩展;
    • 业务解析层(sqlparserx-core):基于统一 AST 实现真实表、建表结构、表/字段血缘、函数与 SQL 权限改写。
    -

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    +

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    6.2 从内部二开走向官方 Druid​

    项目早期依赖内部二开的 Druid 版本,随着能力沉淀,SqlParserX 已统一为官方 Druid 1.2.28,降低维护成本、方便社区协作。语法层坚持「不在业务层用大量正则替换规避语法问题」,方言语法差异一律回到语法层按 Druid 的方式扩展。

    6.3 能力与文档体系​

    SqlParserX 不仅提供代码,也提供了一套可维护的文档体系:

    6.4 目标​

    \ No newline at end of file +
    Java 8 · Druid 1.2.28 · 15+ 方言

    SqlParserX

    多方言 SQL 解析引擎与工具包

    表与字段血缘 · 表/DDL 解析 · 函数提取 · SQL 拆分与行级权限改写

    • 15+数据源方言
    • 4核心解析能力
    • 2层统一架构
    • 100%Java 8 兼容
    LineagePreview
    SQL 输入
    INSERT INTO dwd.order_di
    SELECT o.id, u.name, o.amount
    FROM ods.orders o
    JOIN ods.users u ON o.uid = u.id;
    解析结果
    ✓表血缘ods.orders → dwd.order_di
    ✓表血缘ods.users → dwd.order_di
    ✓字段血缘ods.orders.amount → dwd.order_di.amount

    已适配 15+ 数据源方言

    MySQLMySQL
    DorisDoris
    StarRocksStarRocks
    HiveHive
    ClickHouseClickHouse
    PostgreSQLPostgreSQL
    OracleOracle
    SQL ServerSQL Server
    SparkSpark
    TiDBTiDB
    OceanBaseOceanBase
    GreenplumGreenplum
    核心能力

    一个引擎,覆盖 SQL 解析全链路

    从方言语法到业务语义,统一契约、统一结果,开箱即用。

    🧩

    多方言解析

    通过 DbType 路由 Druid 方言,统一 AST,覆盖 15+ 数据源。

    🔗

    表与字段血缘

    覆盖 JOIN、UNION、子查询、聚合与 CTE 的表级与字段级血缘。

    🗂️

    表与 DDL 解析

    识别真实表、CTE、CREATE TABLE、分区与表属性。

    🧮

    函数解析

    提取普通、聚合、窗口与嵌套函数及其参数表达式。

    ✂️

    SQL 拆分与校验

    拆分多语句脚本,并进行语法校验与行级权限改写。

    🏗️

    两层扩展架构

    语法差异扩展在 syntax 层,业务差异扩展在 core 层,扩展点统一。

    架构设计

    两层统一扩展架构

    语法层基于 Druid 扩展方言 Lexer / Parser / AST,业务层通过 ISqlParser 契约扩展表解析、血缘与改写逻辑,两层由 DbType 与 AST 对齐。

    1. 1接入 SQL + DbType
    2. 2语法层解析为 Druid AST
    3. 3业务层统一解析
    4. 4表 / 血缘 / 函数 / 改写结果
    SqlParserX 两层架构
    文档站

    版本 / 多语言共存

    右侧导航栏即可切换版本(1.0 / Next)与语言(简体中文 / English),互不干扰。

    version

    准备好开始解析你的 SQL 了吗?

    几分钟完成接入,体验多方言表解析、血缘与函数提取能力。

    Java 8 · Druid 1.2.28 · 15+ dialects

    SqlParserX

    A multi-dialect SQL parsing engine and toolkit

    Table & column lineage · Table/DDL parsing · Function extraction · SQL splitting and row-level permission rewriting

    • 15+Datasource dialects
    • 4Core capabilities
    • 2Unified layers
    • 100%Java 8 compatible
    LineagePreview
    SQL Input
    INSERT INTO dwd.order_di
    SELECT o.id, u.name, o.amount
    FROM ods.orders o
    JOIN ods.users u ON o.uid = u.id;
    Parse Result
    ✓Table lineageods.orders → dwd.order_di
    ✓表血缘ods.users → dwd.order_di
    ✓Field lineageods.orders.amount → dwd.order_di.amount

    15+ datasource dialects supported

    MySQLMySQL
    DorisDoris
    StarRocksStarRocks
    HiveHive
    ClickHouseClickHouse
    PostgreSQLPostgreSQL
    OracleOracle
    SQL ServerSQL Server
    SparkSpark
    TiDBTiDB
    OceanBaseOceanBase
    GreenplumGreenplum
    Capabilities

    One engine for the full SQL parsing pipeline

    From dialect syntax to business semantics — unified contract, unified result, ready to use.

    🧩

    Multi-dialect parsing

    Route Druid dialects via DbType with a unified AST, covering 15+ datasources.

    🔗

    Table & column lineage

    Table and column lineage across JOIN, UNION, subqueries, aggregates and CTEs.

    🗂️

    Table & DDL parsing

    Identify real tables, CTEs, CREATE TABLE, partitions and table properties.

    🧮

    Function parsing

    Extract regular, aggregate, window and nested functions with their arguments.

    ✂️

    SQL splitting & validation

    Split multi-statement scripts, validate syntax and rewrite row-level permissions.

    🏗️

    Two-layer extension

    Syntax differences extend the syntax layer, business differences the core layer, via unified points.

    Architecture

    Two-layer unified extension architecture

    The syntax layer extends dialect Lexer/Parser/AST on Druid; the business layer extends parsing, lineage and rewriting via the ISqlParser contract, aligned by DbType and AST.

    1. 1Feed SQL + DbType
    2. 2Syntax layer parses into Druid AST
    3. 3Business layer unified parsing
    4. 4Table / lineage / function / rewrite results
    SqlParserX 两层架构
    Documentation

    Version / i18n coexistence

    Switch version (1.0 / Next) and language (简体中文 / English) from the navbar.

    version

    Ready to parse your SQL?

    Get started in minutes with multi-dialect table parsing, lineage and function extraction.

    \ No newline at end of file diff --git a/blog/rss.xml b/blog/rss.xml index 1f940de..a408278 100644 --- a/blog/rss.xml +++ b/blog/rss.xml @@ -171,17 +171,17 @@
  • 语法解析层(sqlparserx-syntax):统一维护 Druid 依赖、SQL→AST、多语句解析与切分,以及后续数据源 Lexer / StatementParser / AST Node 扩展;
  • 业务解析层(sqlparserx-core):基于统一 AST 实现真实表、建表结构、表/字段血缘、函数与 SQL 权限改写。
  • -

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    +

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    6.2 从内部二开走向官方 Druid​

    项目早期依赖内部二开的 Druid 版本,随着能力沉淀,SqlParserX 已统一为官方 Druid 1.2.28,降低维护成本、方便社区协作。语法层坚持「不在业务层用大量正则替换规避语法问题」,方言语法差异一律回到语法层按 Druid 的方式扩展。

    6.3 能力与文档体系​

    SqlParserX 不仅提供代码,也提供了一套可维护的文档体系:

    6.4 目标​

    \ No newline at end of file diff --git a/docs/about/introduction.html b/docs/about/introduction.html index eb58a69..b888a70 100644 --- a/docs/about/introduction.html +++ b/docs/about/introduction.html @@ -1,4 +1,4 @@ -SqlParserX 介绍 | SqlParserX +SqlParserX 介绍 | SqlParserX \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/contributing.html b/docs/contributing.html index 0be2bd9..9d0d74d 100644 --- a/docs/contributing.html +++ b/docs/contributing.html @@ -1,4 +1,4 @@ -贡献指南 | SqlParserX +贡献指南 | SqlParserX \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/core/field-lineage.html b/docs/core/field-lineage.html index 1e149c7..6d8a377 100644 --- a/docs/core/field-lineage.html +++ b/docs/core/field-lineage.html @@ -1,4 +1,4 @@ -字段血缘解析 | SqlParserX +字段血缘解析 | SqlParserX \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/core/function-parse.html b/docs/core/function-parse.html index c21b013..6eba36f 100644 --- a/docs/core/function-parse.html +++ b/docs/core/function-parse.html @@ -1,4 +1,4 @@ -函数解析 | SqlParserX +函数解析 | SqlParserX
    版本:1.0

    函数解析

    @@ -21,4 +21,4 @@

    5. 支持粒
    能力项支持情况说明
    普通函数调用已支持 ✅如 substr(name, 1, 3)
    聚合函数已支持 ✅如 sum、count、max
    窗口函数已支持 ✅如 row_number() over(...)
    嵌套函数已支持 ✅递归收集内外层函数

    更多函数场景与数据源差异,以项目 docs/02、SQL业务层解析能力支撑情况/能力支持情况/通用解析能力/函数解析支持情况.md 为准。

    -

    \ No newline at end of file +
    \ No newline at end of file diff --git a/docs/core/parameter-compile.html b/docs/core/parameter-compile.html index 279557b..ec0a0b5 100644 --- a/docs/core/parameter-compile.html +++ b/docs/core/parameter-compile.html @@ -1,4 +1,4 @@ -参数提取与预编译 | SqlParserX +参数提取与预编译 | SqlParserX
    版本:1.0

    参数提取与预编译

    @@ -8,4 +8,4 @@
    SELECT id, name FROM users WHERE dt = ? AND region = ?
    [20261014, hangzhou]

    返回内容​

    阶段返回内容
    参数提取输入参数名称、类型、是否必填、默认值、SQL 片段以及输出字段
    预编译格式化后的占位符 SQL 与有序绑定值列表
    -

    当前通用实现面向 SELECT;排序、分组等标识符位置的变量会以内联方式处理。

    \ No newline at end of file +

    当前通用实现面向 SELECT;排序、分组等标识符位置的变量会以内联方式处理。

    \ No newline at end of file diff --git a/docs/core/sql-type.html b/docs/core/sql-type.html index 14999b3..429a395 100644 --- a/docs/core/sql-type.html +++ b/docs/core/sql-type.html @@ -1,4 +1,4 @@ -SQL 类型识别 | SqlParserX +SQL 类型识别 | SqlParserX
    版本:1.0

    SQL 类型识别

    @@ -6,4 +6,4 @@
    SqlTypeDemo.java
    import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;
    import com.dtstack.sqlparserx.core.enums.SqlType;
    import com.dtstack.sqlparserx.core.parser.ISqlParser;
    import com.dtstack.sqlparserx.core.parser.SqlParserFactory;

    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);

    SqlType queryType = parser.parseSqlType("SELECT id FROM users");
    SqlType insertType = parser.parseSqlType(
    "INSERT INTO target_table SELECT id FROM source_table");

    System.out.println(queryType); // QUERY
    System.out.println(insertType); // INSERT

    支持范围​

    分类典型类型
    查询QUERY、WITH_QUERY、QUERY_NO_FROM
    DMLINSERT、UPDATE、DELETE、MERGE_INTO
    DDLCREATE、CREATE_AS、ALTER、DROP、TRUNCATE
    管理与查看SHOW_TABLES、SHOW_COLUMNS、DESC_TABLE、EXPLAIN
    其他无法归类的 AST 返回 OTHER
    -

    具体 SQL 能否构建 AST,仍取决于所选数据源的方言支持情况。

    \ No newline at end of file +

    具体 SQL 能否构建 AST,仍取决于所选数据源的方言支持情况。

    \ No newline at end of file diff --git a/docs/core/table-lineage.html b/docs/core/table-lineage.html index c15d1e0..b89801b 100644 --- a/docs/core/table-lineage.html +++ b/docs/core/table-lineage.html @@ -1,4 +1,4 @@ -表血缘解析 | SqlParserX +表血缘解析 | SqlParserX
    版本:1.0

    表血缘解析

    @@ -21,4 +21,4 @@

    5. 支持粒
    能力项支持情况说明
    单表 / 多表 JOIN已支持 ✅解析所有参与表
    UNION / UNION ALL已支持 ✅归并各分支来源表
    子查询 / 派生表已支持 ✅递归收集真实表
    CTE(WITH)已支持 ✅识别 CTE 与其真实来源
    INSERT INTO ... SELECT已支持 ✅输出目标表与来源表

    更多表血缘场景与数据源差异,以项目 docs/02、SQL业务层解析能力支撑情况/能力支持情况/通用解析能力/表血缘解析支持情况.md 为准。

    -

    \ No newline at end of file + \ No newline at end of file diff --git a/docs/core/table-parse.html b/docs/core/table-parse.html index 19b5b0f..e740aff 100644 --- a/docs/core/table-parse.html +++ b/docs/core/table-parse.html @@ -1,4 +1,4 @@ -表解析 | SqlParserX +表解析 | SqlParserX
    版本:1.0

    表解析

    @@ -21,4 +21,4 @@

    5. 支持粒
    能力项支持情况说明
    查询用表识别已支持 ✅SELECT / INSERT / UPDATE / DELETE
    CTE 识别已支持 ✅WITH 定义的临时表
    CREATE TABLE DDL已支持 ✅表名、字段、类型、注释
    分区与表属性已支持 ✅各数据源方言差异内聚在语法层
    catalog.db.table 多级命名已支持 ✅多 catalog 场景

    更多表解析场景与数据源差异,以项目 docs/02、SQL业务层解析能力支撑情况/能力支持情况/通用解析能力/表解析支持情况.md 为准。

    -

    \ No newline at end of file + \ No newline at end of file diff --git a/docs/intro.html b/docs/intro.html index a5adc04..3fe049a 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -1,4 +1,4 @@ -SqlParserX 文档 | SqlParserX +SqlParserX 文档 | SqlParserX \ No newline at end of file +::: \ No newline at end of file diff --git a/docs/next/about/architecture.html b/docs/next/about/architecture.html index 54cbedc..f20754d 100644 --- a/docs/next/about/architecture.html +++ b/docs/next/about/architecture.html @@ -1,4 +1,4 @@ -架构设计 | SqlParserX +架构设计 | SqlParserX
    \ No newline at end of file +

    业务扩展遵循 SqlParserFactory → ISqlParser → BaseSqlParser → 方言实现的模式。完整的模块依赖与包结构见 sqlparserx-core 模块的 README。

    \ No newline at end of file diff --git a/docs/next/about/introduction.html b/docs/next/about/introduction.html index fc20642..504abf2 100644 --- a/docs/next/about/introduction.html +++ b/docs/next/about/introduction.html @@ -1,4 +1,4 @@ -SqlParserX 介绍 | SqlParserX +SqlParserX 介绍 | SqlParserX \ No newline at end of file + \ No newline at end of file diff --git a/docs/next/contributing.html b/docs/next/contributing.html index 68c1828..0cbd3ef 100644 --- a/docs/next/contributing.html +++ b/docs/next/contributing.html @@ -1,4 +1,4 @@ -贡献指南 | SqlParserX +贡献指南 | SqlParserX \ No newline at end of file + \ No newline at end of file diff --git a/docs/next/core/field-lineage.html b/docs/next/core/field-lineage.html index 96c5734..846ad84 100644 --- a/docs/next/core/field-lineage.html +++ b/docs/next/core/field-lineage.html @@ -1,4 +1,4 @@ -字段血缘解析 | SqlParserX +字段血缘解析 | SqlParserX \ No newline at end of file + \ No newline at end of file diff --git a/docs/next/core/function-parse.html b/docs/next/core/function-parse.html index f622e54..d6ed46c 100644 --- a/docs/next/core/function-parse.html +++ b/docs/next/core/function-parse.html @@ -1,4 +1,4 @@ -函数解析 | SqlParserX +函数解析 | SqlParserX
    版本:Next 🚧

    函数解析

    @@ -21,4 +21,4 @@

    5. 支持粒
    能力项支持情况说明
    普通函数调用已支持 ✅如 substr(name, 1, 3)
    聚合函数已支持 ✅如 sum、count、max
    窗口函数已支持 ✅如 row_number() over(...)
    嵌套函数已支持 ✅递归收集内外层函数

    更多函数场景与数据源差异,以项目 docs/02、SQL业务层解析能力支撑情况/能力支持情况/通用解析能力/函数解析支持情况.md 为准。

    -

    \ No newline at end of file + \ No newline at end of file diff --git a/docs/next/core/parameter-compile.html b/docs/next/core/parameter-compile.html index e175ecf..25d99d3 100644 --- a/docs/next/core/parameter-compile.html +++ b/docs/next/core/parameter-compile.html @@ -1,4 +1,4 @@ -参数提取与预编译 | SqlParserX +参数提取与预编译 | SqlParserX
    版本:Next 🚧

    参数提取与预编译

    @@ -8,4 +8,4 @@
    SELECT id, name FROM users WHERE dt = ? AND region = ?
    [20261014, hangzhou]

    返回内容​

    阶段返回内容
    参数提取输入参数名称、类型、是否必填、默认值、SQL 片段以及输出字段
    预编译格式化后的占位符 SQL 与有序绑定值列表
    -

    当前通用实现面向 SELECT;排序、分组等标识符位置的变量会以内联方式处理。

    \ No newline at end of file +

    当前通用实现面向 SELECT;排序、分组等标识符位置的变量会以内联方式处理。

    \ No newline at end of file diff --git a/docs/next/core/sql-type.html b/docs/next/core/sql-type.html index 12ff039..ded0d5a 100644 --- a/docs/next/core/sql-type.html +++ b/docs/next/core/sql-type.html @@ -1,4 +1,4 @@ -SQL 类型识别 | SqlParserX +SQL 类型识别 | SqlParserX
    版本:Next 🚧

    SQL 类型识别

    @@ -6,4 +6,4 @@
    SqlTypeDemo.java
    import com.dtstack.sqlparserx.core.enums.SqlParserDataSourceType;
    import com.dtstack.sqlparserx.core.enums.SqlType;
    import com.dtstack.sqlparserx.core.parser.ISqlParser;
    import com.dtstack.sqlparserx.core.parser.SqlParserFactory;

    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);

    SqlType queryType = parser.parseSqlType("SELECT id FROM users");
    SqlType insertType = parser.parseSqlType(
    "INSERT INTO target_table SELECT id FROM source_table");

    System.out.println(queryType); // QUERY
    System.out.println(insertType); // INSERT

    支持范围​

    分类典型类型
    查询QUERY、WITH_QUERY、QUERY_NO_FROM
    DMLINSERT、UPDATE、DELETE、MERGE_INTO
    DDLCREATE、CREATE_AS、ALTER、DROP、TRUNCATE
    管理与查看SHOW_TABLES、SHOW_COLUMNS、DESC_TABLE、EXPLAIN
    其他无法归类的 AST 返回 OTHER
    -

    具体 SQL 能否构建 AST,仍取决于所选数据源的方言支持情况。

    \ No newline at end of file +

    具体 SQL 能否构建 AST,仍取决于所选数据源的方言支持情况。

    \ No newline at end of file diff --git a/docs/next/core/table-lineage.html b/docs/next/core/table-lineage.html index 8919f66..3522d2c 100644 --- a/docs/next/core/table-lineage.html +++ b/docs/next/core/table-lineage.html @@ -1,4 +1,4 @@ -表血缘解析 | SqlParserX +表血缘解析 | SqlParserX
    版本:Next 🚧

    表血缘解析

    @@ -21,4 +21,4 @@

    5. 支持粒
    能力项支持情况说明
    单表 / 多表 JOIN已支持 ✅解析所有参与表
    UNION / UNION ALL已支持 ✅归并各分支来源表
    子查询 / 派生表已支持 ✅递归收集真实表
    CTE(WITH)已支持 ✅识别 CTE 与其真实来源
    INSERT INTO ... SELECT已支持 ✅输出目标表与来源表

    更多表血缘场景与数据源差异,以项目 docs/02、SQL业务层解析能力支撑情况/能力支持情况/通用解析能力/表血缘解析支持情况.md 为准。

    -

    \ No newline at end of file + \ No newline at end of file diff --git a/docs/next/core/table-parse.html b/docs/next/core/table-parse.html index ab7926d..a42015b 100644 --- a/docs/next/core/table-parse.html +++ b/docs/next/core/table-parse.html @@ -1,4 +1,4 @@ -表解析 | SqlParserX +表解析 | SqlParserX
    版本:Next 🚧

    表解析

    @@ -21,4 +21,4 @@

    5. 支持粒
    能力项支持情况说明
    查询用表识别已支持 ✅SELECT / INSERT / UPDATE / DELETE
    CTE 识别已支持 ✅WITH 定义的临时表
    CREATE TABLE DDL已支持 ✅表名、字段、类型、注释
    分区与表属性已支持 ✅各数据源方言差异内聚在语法层
    catalog.db.table 多级命名已支持 ✅多 catalog 场景

    更多表解析场景与数据源差异,以项目 docs/02、SQL业务层解析能力支撑情况/能力支持情况/通用解析能力/表解析支持情况.md 为准。

    -

    \ No newline at end of file + \ No newline at end of file diff --git a/docs/next/intro.html b/docs/next/intro.html index 5a5dfaa..86e2928 100644 --- a/docs/next/intro.html +++ b/docs/next/intro.html @@ -1,4 +1,4 @@ -SqlParserX 文档 | SqlParserX +SqlParserX 文档 | SqlParserX \ No newline at end of file +::: \ No newline at end of file diff --git a/docs/next/quickstart/setup.html b/docs/next/quickstart/setup.html index 7c41d82..36ef018 100644 --- a/docs/next/quickstart/setup.html +++ b/docs/next/quickstart/setup.html @@ -1,4 +1,4 @@ -快速开始 | SqlParserX +快速开始 | SqlParserX \ No newline at end of file + \ No newline at end of file diff --git a/docs/quickstart/setup.html b/docs/quickstart/setup.html index 53cf096..fb15af4 100644 --- a/docs/quickstart/setup.html +++ b/docs/quickstart/setup.html @@ -1,4 +1,4 @@ -快速开始 | SqlParserX +快速开始 | SqlParserX \ No newline at end of file + \ No newline at end of file diff --git a/en/404.html b/en/404.html index b06a46e..d0c7dba 100644 --- a/en/404.html +++ b/en/404.html @@ -1,4 +1,4 @@ -Page Not Found | SqlParserX +Page Not Found | SqlParserX

    Page Not Found

    We could not find what you were looking for.

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

    \ No newline at end of file diff --git a/en/assets/js/02854a60.34877af3.js b/en/assets/js/02854a60.34877af3.js deleted file mode 100644 index 57b060f..0000000 --- a/en/assets/js/02854a60.34877af3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8384"],{7455(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>l,contentTitle:()=>i,toc:()=>d,assets:()=>o});var s=JSON.parse('{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/en/docs/next/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/quickstart/setup.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar_label":"Setup & Build","sidebar_position":1},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/SqlParserX/en/docs/next/about/architecture"},"next":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/next/core/sql-type"}}'),a=r(4848),t=r(8453);let l={title:"Quick Start",description:"Add the dependency, build and run SqlParserX locally",sidebar_label:"Setup & Build",sidebar_position:1},i="Quick Start",o={},d=[{value:"1. Requirements",id:"1-requirements",level:2},{value:"2. Add the Dependency",id:"2-add-the-dependency",level:2},{value:"3. Hello World: Parse a SQL",id:"3-hello-world-parse-a-sql",level:2},{value:"4. Next Steps",id:"4-next-steps",level:2}];function c(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"quick-start",children:"Quick Start"})}),"\n",(0,a.jsx)(n.h2,{id:"1-requirements",children:"1. Requirements"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Dependency"}),(0,a.jsx)(n.th,{children:"Version"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"JDK"}),(0,a.jsx)(n.td,{children:"Java 8+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Maven"}),(0,a.jsx)(n.td,{children:"3.6+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsxs)(n.td,{children:["Node.js (only ",(0,a.jsx)(n.code,{children:"sqlparserx-ui"}),")"]}),(0,a.jsx)(n.td,{children:">= 20"})]})]})]}),"\n",(0,a.jsx)(n.h2,{id:"2-add-the-dependency",children:"2. Add the Dependency"}),"\n",(0,a.jsxs)(n.p,{children:["Add the ",(0,a.jsx)(n.strong,{children:"business parsing layer"})," ",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," to your ",(0,a.jsx)(n.code,{children:"pom.xml"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,a.jsxs)(n.p,{children:[":::tip Dependency note\n",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," (syntax layer) and official Druid, so business parsing only needs the single ",(0,a.jsx)(n.code,{children:"core"})," coordinate. If you only need SQL\u2192AST syntax parsing, you can depend on ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," alone.\n:::"]}),"\n",(0,a.jsxs)(n.p,{children:[":::note Use from source\nIf ",(0,a.jsx)(n.code,{children:"1.0-SNAPSHOT"})," is not published to a remote repository yet, build and install it locally first:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,a.jsx)(n.p,{children:":::"}),"\n",(0,a.jsx)(n.h2,{id:"3-hello-world-parse-a-sql",children:"3. Hello World: Parse a SQL"}),"\n",(0,a.jsxs)(n.p,{children:["A ",(0,a.jsx)(n.strong,{children:"complete runnable"})," class covering table parsing, column lineage, table lineage and functions, consistent with the official ",(0,a.jsx)(n.code,{children:"sqlparserx-core/README.md"})," demo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser by datasource type (mysql/hive/doris/... 15+ dialects)\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse column lineage (pass metadata for select * cases)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4. Parse table lineage\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("table lineage: " + tableLineages);\n\n // 5. Parse functions\n Set functions = parser.parseFunction(sql);\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\ntable lineage: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\nfunctions: [sum, count]\n"})}),"\n",(0,a.jsx)(n.h2,{id:"4-next-steps",children:"4. Next Steps"}),"\n",(0,a.jsx)(n.p,{children:"Dependency + complete example for each capability:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/field-lineage",children:"Field lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/table-lineage",children:"Table lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/table-parse",children:"Table parsing"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/function-parse",children:"Function parsing"})}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>l,x:()=>i});var s=r(6540);let a={},t=s.createContext(a);function l(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/02854a60.7f72547b.js b/en/assets/js/02854a60.7f72547b.js new file mode 100644 index 0000000..e3e9aa0 --- /dev/null +++ b/en/assets/js/02854a60.7f72547b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8384"],{7455(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>l,contentTitle:()=>i,toc:()=>d,assets:()=>o});var s=JSON.parse('{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/en/docs/next/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/quickstart/setup.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar_label":"Setup & Build","sidebar_position":1},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/SqlParserX/en/docs/next/about/architecture"},"next":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/next/core/sql-type"}}'),a=r(4848),t=r(8453);let l={title:"Quick Start",description:"Add the dependency, build and run SqlParserX locally",sidebar_label:"Setup & Build",sidebar_position:1},i="Quick Start",o={},d=[{value:"1. Requirements",id:"1-requirements",level:2},{value:"2. Add the Dependency",id:"2-add-the-dependency",level:2},{value:"3. Hello World: Parse a SQL",id:"3-hello-world-parse-a-sql",level:2},{value:"4. Next Steps",id:"4-next-steps",level:2}];function c(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"quick-start",children:"Quick Start"})}),"\n",(0,a.jsx)(n.h2,{id:"1-requirements",children:"1. Requirements"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Dependency"}),(0,a.jsx)(n.th,{children:"Version"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"JDK"}),(0,a.jsx)(n.td,{children:"Java 8+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Maven"}),(0,a.jsx)(n.td,{children:"3.6+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsxs)(n.td,{children:["Node.js (only ",(0,a.jsx)(n.code,{children:"sqlparserx-ui"}),")"]}),(0,a.jsx)(n.td,{children:">= 20"})]})]})]}),"\n",(0,a.jsx)(n.h2,{id:"2-add-the-dependency",children:"2. Add the Dependency"}),"\n",(0,a.jsxs)(n.p,{children:["Add the ",(0,a.jsx)(n.strong,{children:"business parsing layer"})," ",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," to your ",(0,a.jsx)(n.code,{children:"pom.xml"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,a.jsxs)(n.p,{children:[":::tip Dependency note\n",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," (syntax layer) and official Druid, so business parsing only needs the single ",(0,a.jsx)(n.code,{children:"core"})," coordinate. If you only need SQL\u2192AST syntax parsing, you can depend on ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," alone.\n:::"]}),"\n",(0,a.jsxs)(n.p,{children:[":::note Use from source\nIf ",(0,a.jsx)(n.code,{children:"1.0-SNAPSHOT"})," is not published to a remote repository yet, build and install it locally first:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,a.jsx)(n.p,{children:":::"}),"\n",(0,a.jsx)(n.h2,{id:"3-hello-world-parse-a-sql",children:"3. Hello World: Parse a SQL"}),"\n",(0,a.jsxs)(n.p,{children:["A ",(0,a.jsx)(n.strong,{children:"complete runnable"})," class covering table parsing, column lineage, table lineage and functions, consistent with the official ",(0,a.jsx)(n.code,{children:"sqlparserx-core/README.md"})," demo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser by datasource type (mysql/hive/doris/... 15+ dialects)\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse column lineage (pass metadata for select * cases)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4. Parse table lineage\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("table lineage: " + tableLineages);\n\n // 5. Parse functions\n Set functions = parser.parseFunction(sql);\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\ntable lineage: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\nfunctions: [sum, count]\n"})}),"\n",(0,a.jsx)(n.h2,{id:"4-next-steps",children:"4. Next Steps"}),"\n",(0,a.jsx)(n.p,{children:"Dependency + complete example for each capability:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/field-lineage",children:"Field lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/table-lineage",children:"Table lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/table-parse",children:"Table parsing"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/next/core/function-parse",children:"Function parsing"})}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>l,x:()=>i});var s=r(6540);let a={},t=s.createContext(a);function l(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1078a278.2d55bc20.js b/en/assets/js/1078a278.2d55bc20.js deleted file mode 100644 index b940d7c..0000000 --- a/en/assets/js/1078a278.2d55bc20.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3674"],{3445(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/en/docs/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/table-lineage.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar_label":"Table Lineage","sidebar_position":2},"sidebar":"docs","previous":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/core/field-lineage"},"next":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/core/table-parse"}}'),s=n(4848),a=n(8453);let l={title:"Table Lineage",description:"Parse source-to-target table lineage from SQL",sidebar_label:"Table Lineage",sidebar_position:2},i="Table Lineage",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"table-lineage",children:"Table Lineage"})}),"\n",(0,s.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(r.p,{children:["Using the official ",(0,s.jsx)(r.code,{children:"sqlparserx-core/README.md"})," sample SQL, from parser creation to printing table lineage:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse table lineage\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3. Read the result\n System.out.println("target table: " + result.getTargetTable());\n System.out.println("source tables: " + result.getSourceTables());\n\n List tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,s.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"target table: user_order_summary\nsource tables: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,s.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(r.p,{children:["Parse ",(0,s.jsx)(r.strong,{children:"target table \u2192 source table"})," table-level lineage from SQL, covering JOIN, UNION, subqueries, aggregates and CTEs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 collect source tables + target tables\n \u2192 TableLineageResult\n"})}),"\n",(0,s.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Item"}),(0,s.jsx)(r.th,{children:"Content"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Core entry"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Default impl"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,s.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Return type"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"TableLineageResult"})," (",(0,s.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,s.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,s.jsx)(r.code,{children:"getTableLineages()"}),")"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Coverage"}),(0,s.jsx)(r.td,{children:"JOIN, UNION, subquery, aggregate, CTE"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Capability"}),(0,s.jsx)(r.th,{children:"Status"}),(0,s.jsx)(r.th,{children:"Notes"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Single/multi-table JOIN"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"All participating tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Merge branches"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Subquery / derived table"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recursively collect real tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"CTE (WITH)"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recognize CTE and real sources"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Output target and source tables"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>l,x:()=>i});var t=n(6540);let s={},a=t.createContext(s);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1078a278.d2a43e18.js b/en/assets/js/1078a278.d2a43e18.js new file mode 100644 index 0000000..abd61b8 --- /dev/null +++ b/en/assets/js/1078a278.d2a43e18.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3674"],{3445(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/en/docs/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/table-lineage.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar_label":"Table Lineage","sidebar_position":2},"sidebar":"docs","previous":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/core/field-lineage"},"next":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/core/table-parse"}}'),s=n(4848),a=n(8453);let l={title:"Table Lineage",description:"Parse source-to-target table lineage from SQL",sidebar_label:"Table Lineage",sidebar_position:2},i="Table Lineage",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"table-lineage",children:"Table Lineage"})}),"\n",(0,s.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(r.p,{children:["Using the official ",(0,s.jsx)(r.code,{children:"sqlparserx-core/README.md"})," sample SQL, from parser creation to printing table lineage:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse table lineage\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3. Read the result\n System.out.println("target table: " + result.getTargetTable());\n System.out.println("source tables: " + result.getSourceTables());\n\n List tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,s.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"target table: user_order_summary\nsource tables: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,s.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(r.p,{children:["Parse ",(0,s.jsx)(r.strong,{children:"target table \u2192 source table"})," table-level lineage from SQL, covering JOIN, UNION, subqueries, aggregates and CTEs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 collect source tables + target tables\n \u2192 TableLineageResult\n"})}),"\n",(0,s.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Item"}),(0,s.jsx)(r.th,{children:"Content"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Core entry"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Default impl"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,s.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Return type"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"TableLineageResult"})," (",(0,s.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,s.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,s.jsx)(r.code,{children:"getTableLineages()"}),")"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Coverage"}),(0,s.jsx)(r.td,{children:"JOIN, UNION, subquery, aggregate, CTE"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Capability"}),(0,s.jsx)(r.th,{children:"Status"}),(0,s.jsx)(r.th,{children:"Notes"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Single/multi-table JOIN"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"All participating tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Merge branches"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Subquery / derived table"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recursively collect real tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"CTE (WITH)"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recognize CTE and real sources"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Output target and source tables"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>l,x:()=>i});var t=n(6540);let s={},a=t.createContext(s);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1a0052a3.183e63f0.js b/en/assets/js/1a0052a3.183e63f0.js deleted file mode 100644 index 56cbccd..0000000 --- a/en/assets/js/1a0052a3.183e63f0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1389"],{6185(e,r,a){a.r(r),a.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>i,contentTitle:()=>o,toc:()=>c,assets:()=>l});var t=JSON.parse('{"id":"core/parameter-compile","title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/en/docs/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/parameter-compile.md","tags":[],"version":"1.0","sidebarPosition":6,"frontMatter":{"title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","sidebar_label":"Parameter Extraction","sidebar_position":6},"sidebar":"docs","previous":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/core/function-parse"},"next":{"title":"Contributing","permalink":"/SqlParserX/en/docs/contributing"}}'),n=a(4848),s=a(8453);let i={title:"Parameter Extraction and Prepared SQL",description:"Extract dynamic SELECT parameters and build JDBC prepared SQL",sidebar_label:"Parameter Extraction",sidebar_position:6},o="Parameter Extraction and Prepared SQL",l={},c=[];function d(e){let r={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"parameter-extraction-and-prepared-sql",children:"Parameter Extraction and Prepared SQL"})}),"\n",(0,n.jsxs)(r.p,{children:["SqlParserX extracts ",(0,n.jsx)(r.code,{children:"${variable}"})," expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ",(0,n.jsx)(r.code,{children:"?"})," placeholders and an ordered binding list."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\n\nMap values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,n.jsx)(r.p,{children:"The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined."})]})}function p(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453(e,r,a){a.d(r,{R:()=>i,x:()=>o});var t=a(6540);let n={},s=t.createContext(n);function i(e){let r=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1a0052a3.2e24b2ea.js b/en/assets/js/1a0052a3.2e24b2ea.js new file mode 100644 index 0000000..6298b48 --- /dev/null +++ b/en/assets/js/1a0052a3.2e24b2ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1389"],{6185(e,r,t){t.r(r),t.d(r,{metadata:()=>a,default:()=>p,frontMatter:()=>i,contentTitle:()=>o,toc:()=>c,assets:()=>l});var a=JSON.parse('{"id":"core/parameter-compile","title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/en/docs/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/parameter-compile.md","tags":[],"version":"1.0","sidebarPosition":6,"frontMatter":{"title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","sidebar_label":"Parameter Extraction","sidebar_position":6},"sidebar":"docs","previous":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/core/function-parse"},"next":{"title":"Contributing","permalink":"/SqlParserX/en/docs/contributing"}}'),n=t(4848),s=t(8453);let i={title:"Parameter Extraction and Prepared SQL",description:"Extract dynamic SELECT parameters and build JDBC prepared SQL",sidebar_label:"Parameter Extraction",sidebar_position:6},o="Parameter Extraction and Prepared SQL",l={},c=[];function d(e){let r={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"parameter-extraction-and-prepared-sql",children:"Parameter Extraction and Prepared SQL"})}),"\n",(0,n.jsxs)(r.p,{children:["SqlParserX extracts ",(0,n.jsx)(r.code,{children:"${variable}"})," expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ",(0,n.jsx)(r.code,{children:"?"})," placeholders and an ordered binding list."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\n\nMap values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,n.jsx)(r.p,{children:"The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined."})]})}function p(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453(e,r,t){t.d(r,{R:()=>i,x:()=>o});var a=t(6540);let n={},s=a.createContext(n);function i(e){let r=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),a.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1f5cb825.56402be9.js b/en/assets/js/1f5cb825.56402be9.js new file mode 100644 index 0000000..38483f0 --- /dev/null +++ b/en/assets/js/1f5cb825.56402be9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4684"],{8607(e,t,r){r.r(t),r.d(t,{metadata:()=>s,default:()=>d,frontMatter:()=>a,contentTitle:()=>o,toc:()=>l,assets:()=>c});var s=JSON.parse('{"id":"core/sql-type","title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/en/docs/next/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/sql-type.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","sidebar_label":"SQL Type Detection","sidebar_position":1},"sidebar":"docs","previous":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/next/quickstart/setup"},"next":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage"}}'),n=r(4848),i=r(8453);let a={title:"SQL Type Detection",description:"Detect the business SQL type from the parsed syntax tree",sidebar_label:"SQL Type Detection",sidebar_position:1},o="SQL Type Detection",c={},l=[];function p(e){let t={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"sql-type-detection",children:"SQL Type Detection"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"parseSqlType"})," parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified ",(0,n.jsx)(t.code,{children:"SqlType"}),". It can drive statement routing, audit classification, and execution policies."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,n.jsxs)(t.p,{children:["The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns ",(0,n.jsx)(t.code,{children:"OTHER"}),"; syntax support still depends on the selected dialect."]})]})}function d(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},8453(e,t,r){r.d(t,{R:()=>a,x:()=>o});var s=r(6540);let n={},i=s.createContext(n);function a(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1f5cb825.cbb867bf.js b/en/assets/js/1f5cb825.cbb867bf.js deleted file mode 100644 index f35d75e..0000000 --- a/en/assets/js/1f5cb825.cbb867bf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4684"],{8607(e,t,r){r.r(t),r.d(t,{metadata:()=>n,default:()=>d,frontMatter:()=>a,contentTitle:()=>o,toc:()=>l,assets:()=>c});var n=JSON.parse('{"id":"core/sql-type","title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/en/docs/next/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/sql-type.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","sidebar_label":"SQL Type Detection","sidebar_position":1},"sidebar":"docs","previous":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/next/quickstart/setup"},"next":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage"}}'),s=r(4848),i=r(8453);let a={title:"SQL Type Detection",description:"Detect the business SQL type from the parsed syntax tree",sidebar_label:"SQL Type Detection",sidebar_position:1},o="SQL Type Detection",c={},l=[];function p(e){let t={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"sql-type-detection",children:"SQL Type Detection"})}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"parseSqlType"})," parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified ",(0,s.jsx)(t.code,{children:"SqlType"}),". It can drive statement routing, audit classification, and execution policies."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,s.jsxs)(t.p,{children:["The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns ",(0,s.jsx)(t.code,{children:"OTHER"}),"; syntax support still depends on the selected dialect."]})]})}function d(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453(e,t,r){r.d(t,{R:()=>a,x:()=>o});var n=r(6540);let s={},i=n.createContext(s);function a(e){let t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/2cb18a50.16e7a45e.js b/en/assets/js/2cb18a50.16e7a45e.js deleted file mode 100644 index 59a3b3f..0000000 --- a/en/assets/js/2cb18a50.16e7a45e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9548"],{1564(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>l,toc:()=>o,assets:()=>c});var t=JSON.parse('{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/en/docs/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/about/architecture.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar_label":"Architecture","sidebar_position":2},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/SqlParserX/en/docs/about/introduction"},"next":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/quickstart/setup"}}'),s=n(4848),i=n(8453);let a={title:"Architecture",description:"The two-layer unified extension architecture of SqlParserX",sidebar_label:"Architecture",sidebar_position:2},l="Two-Layer Unified Extension Architecture",c={},o=[{value:"Overall Architecture",id:"overall-architecture",level:2},{value:"Module Dependencies",id:"module-dependencies",level:2}];function d(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"two-layer-unified-extension-architecture",children:"Two-Layer Unified Extension Architecture"})}),"\n",(0,s.jsx)(r.p,{children:"The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SQL syntax layer (",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"}),")"]}),": built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SqlParserX business layer (",(0,s.jsx)(r.code,{children:"sqlparserx-core"}),")"]}),": extending table parsing, lineage and SQL rewriting per datasource through unified dialect routing, the ",(0,s.jsx)(r.code,{children:"ISqlParser"})," contract and business clients."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Both layers follow the pattern ",(0,s.jsx)(r.strong,{children:"unified entry \u2192 common base \u2192 unified extension point \u2192 datasource implementation \u2192 unified result"}),". When adding a datasource, syntax differences are extended in the Druid layer and business differences in the SqlParserX layer, aligned via ",(0,s.jsx)(r.code,{children:"DbType"})," and Druid AST."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"SqlParserX two-layer unified extension architecture",src:n(702).A+"",width:"1421",height:"1107"})}),"\n",(0,s.jsx)(r.h2,{id:"overall-architecture",children:"Overall Architecture"}),"\n",(0,s.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CBusiness parsing layer]\n direction LR\n B_ROUTE[Dialect routing
    SqlParserFactory]\n B_BASE[Common base
    ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[Extension points
    Dialect Client \xb7 Strategy]\n B_DIALECT[Datasource implementations
    MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[Unified results
    Table \xb7 DDL \xb7 Lineage \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSyntax parsing layer, on Druid]\n direction LR\n S_ROUTE[Dialect routing
    SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[Common base
    Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[Extension points
    Dialect Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[Datasource implementations
    MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[Unified results
    SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType alignment .-> S_ROUTE\n B_DIALECT -. same datasource dialect .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,s.jsx)(r.h2,{id:"module-dependencies",children:"Module Dependencies"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Business extensions follow ",(0,s.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,s.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,s.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 dialect implementations."]})]})}function u(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},702(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-en-710c1c16b39bd3885dfe50d51143759f.png"},8453(e,r,n){n.d(r,{R:()=>a,x:()=>l});var t=n(6540);let s={},i=t.createContext(s);function a(e){let r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/2cb18a50.881d2316.js b/en/assets/js/2cb18a50.881d2316.js new file mode 100644 index 0000000..02204d9 --- /dev/null +++ b/en/assets/js/2cb18a50.881d2316.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9548"],{1564(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>l,toc:()=>o,assets:()=>c});var t=JSON.parse('{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/en/docs/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/about/architecture.md","tags":[],"version":"1.0","sidebarPosition":2,"frontMatter":{"title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar_label":"Architecture","sidebar_position":2},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/SqlParserX/en/docs/about/introduction"},"next":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/quickstart/setup"}}'),s=n(4848),i=n(8453);let a={title:"Architecture",description:"The two-layer unified extension architecture of SqlParserX",sidebar_label:"Architecture",sidebar_position:2},l="Two-Layer Unified Extension Architecture",c={},o=[{value:"Overall Architecture",id:"overall-architecture",level:2},{value:"Module Dependencies",id:"module-dependencies",level:2}];function d(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"two-layer-unified-extension-architecture",children:"Two-Layer Unified Extension Architecture"})}),"\n",(0,s.jsx)(r.p,{children:"The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SQL syntax layer (",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"}),")"]}),": built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SqlParserX business layer (",(0,s.jsx)(r.code,{children:"sqlparserx-core"}),")"]}),": extending table parsing, lineage and SQL rewriting per datasource through unified dialect routing, the ",(0,s.jsx)(r.code,{children:"ISqlParser"})," contract and business clients."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Both layers follow the pattern ",(0,s.jsx)(r.strong,{children:"unified entry \u2192 common base \u2192 unified extension point \u2192 datasource implementation \u2192 unified result"}),". When adding a datasource, syntax differences are extended in the Druid layer and business differences in the SqlParserX layer, aligned via ",(0,s.jsx)(r.code,{children:"DbType"})," and Druid AST."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"SqlParserX two-layer unified extension architecture",src:n(702).A+"",width:"1421",height:"1107"})}),"\n",(0,s.jsx)(r.h2,{id:"overall-architecture",children:"Overall Architecture"}),"\n",(0,s.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CBusiness parsing layer]\n direction LR\n B_ROUTE[Dialect routing
    SqlParserFactory]\n B_BASE[Common base
    ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[Extension points
    Dialect Client \xb7 Strategy]\n B_DIALECT[Datasource implementations
    MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[Unified results
    Table \xb7 DDL \xb7 Lineage \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSyntax parsing layer, on Druid]\n direction LR\n S_ROUTE[Dialect routing
    SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[Common base
    Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[Extension points
    Dialect Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[Datasource implementations
    MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[Unified results
    SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType alignment .-> S_ROUTE\n B_DIALECT -. same datasource dialect .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,s.jsx)(r.h2,{id:"module-dependencies",children:"Module Dependencies"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Business extensions follow ",(0,s.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,s.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,s.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 dialect implementations."]})]})}function u(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},702(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-en-710c1c16b39bd3885dfe50d51143759f.png"},8453(e,r,n){n.d(r,{R:()=>a,x:()=>l});var t=n(6540);let s={},i=t.createContext(s);function a(e){let r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/4a65a190.c43c3324.js b/en/assets/js/4a65a190.1b475153.js similarity index 83% rename from en/assets/js/4a65a190.c43c3324.js rename to en/assets/js/4a65a190.1b475153.js index d950939..86d63ef 100644 --- a/en/assets/js/4a65a190.c43c3324.js +++ b/en/assets/js/4a65a190.1b475153.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2705"],{670(e,n,s){s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>a});var r=s(5816),l=s(4848),i=s(8453);let d={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},c,t={authorsImageUrls:[void 0]},a=[{value:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",level:2},{value:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668",id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",level:3},{value:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",level:3},{value:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668",id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",level:3},{value:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",level:3},{value:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848",id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",level:2},{value:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4",id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",level:3},{value:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec",id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",level:3},{value:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid",id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",level:3},{value:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",level:3},{value:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4",id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",level:3},{value:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",level:2},{value:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",level:3},{value:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",level:3},{value:"3.3 \u4E3B\u8981\u95EE\u9898",id:"33-\u4E3B\u8981\u95EE\u9898",level:3},{value:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42",id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",level:2},{value:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09",id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",level:3},{value:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42",id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",level:3},{value:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",level:3},{value:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",level:2},{value:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790",id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",level:3},{value:"5.2 \u8868\u8840\u7F18\u89E3\u6790",id:"52-\u8868\u8840\u7F18\u89E3\u6790",level:3},{value:"5.3 \u8868\u89E3\u6790",id:"53-\u8868\u89E3\u6790",level:3},{value:"5.4 \u51FD\u6570\u89E3\u6790",id:"54-\u51FD\u6570\u89E3\u6790",level:3},{value:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",level:3},{value:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F",id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",level:2},{value:"6.1 \u53CC\u5C42\u67B6\u6784",id:"61-\u53CC\u5C42\u67B6\u6784",level:3},{value:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid",id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",level:3},{value:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",level:3},{value:"6.4 \u76EE\u6807",id:"64-\u76EE\u6807",level:3},{value:"\u4E03\u3001\u7ED3\u8BED",id:"\u4E03\u7ED3\u8BED",level:2}];function h(e){let n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]}),"\n","\n",(0,l.jsx)(n.h2,{id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",children:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668"}),"\n",(0,l.jsx)(n.h3,{id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",children:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F",(0,l.jsx)(n.strong,{children:"\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784"}),"\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F",(0,l.jsx)(n.strong,{children:"\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32"}),"\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 ",(0,l.jsx)(n.code,{children:"x = (a + b) * 3"})," \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 ",(0,l.jsx)(n.code,{children:"a + b"}),"\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 ",(0,l.jsx)(n.code,{children:"x"}),"\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n\n [=]\n / \\\n [x] [*]\n / \\\n [+] [3]\n / \\\n [a] [b]\n\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n [if]\n / \\\n [>] [block]\n / \\ \\\n[x] [0] [=]\n / \\\n [y] [10]\n\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5668\u7684\u4F5C\u7528"}),"\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",children:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F",(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790"}),"\uFF1A"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790"}),"\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u5206\u6790"}),"\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\n\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\n1 INTEGER \u6574\u6570 1\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\n2 INTEGER \u6574\u6570 2\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\n3 INTEGER \u6574\u6570 3\n\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\n\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\n [+]\n / \\\n 1 [*]\n / \\\n 2 3\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E00"}),"\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E8C"}),"\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",children:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["SQL \u89E3\u6790\u5668\u662F",(0,l.jsx)(n.strong,{children:"\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6"}),"\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"# \u67E5\u8BE2\nSELECT * FROM users WHERE status = 'active';\n# \u63D2\u5165\nINSERT INTO customers (name, email) VALUES ('\u674E\u56DB', 'lisi@example.com');\n# \u66F4\u65B0\nUPDATE products SET price = 5999 WHERE id = 1001;\n# \u5220\u9664\nDELETE FROM logs WHERE create_time < '2024-01-01';\n# \u521B\u5EFA\u8868\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\n# \u4FEE\u6539\u8868\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\n# \u5220\u9664\u8868\nDROP TABLE temp_data;\n# \u6388\u6743\nGRANT SELECT ON customers TO user1;\n"})}),"\n",(0,l.jsx)(n.h3,{id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",children:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E"}),"\n",(0,l.jsx)(n.p,{children:"\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D"}),"\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",children:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848"}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD",src:s(3519).A+"",width:"2884",height:"1540"})}),"\n",(0,l.jsx)(n.h3,{id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",children:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u7279\u6027"}),(0,l.jsx)(n.th,{children:"JavaCC"}),(0,l.jsx)(n.th,{children:"ANTLR 3"}),(0,l.jsx)(n.th,{children:"ANTLR 4"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u5206\u6790\u7B97\u6CD5"}),(0,l.jsx)(n.td,{children:"LL(k)"}),(0,l.jsx)(n.td,{children:"LL(*)"}),(0,l.jsx)(n.td,{children:"LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5DE6\u9012\u5F52\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u81EA\u52A8\u5904\u7406"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u76EE\u6807\u8BED\u8A00"}),(0,l.jsx)(n.td,{children:"Java"}),(0,l.jsx)(n.td,{children:"Java\u3001C#\u3001Python \u7B49"}),(0,l.jsx)(n.td,{children:"\u540C ANTLR 3"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9519\u8BEF\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u57FA\u7840\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u590D\u6742\u5EA6"}),(0,l.jsx)(n.td,{children:"\u7B80\u5355\u76F4\u89C2"}),(0,l.jsx)(n.td,{children:"\u8F83\u590D\u6742"}),(0,l.jsx)(n.td,{children:"\u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5E94\u7528\u573A\u666F"}),(0,l.jsx)(n.td,{children:"\u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2"}),(0,l.jsx)(n.td,{children:"\u4E2D\u5927\u578B\u9879\u76EE"}),(0,l.jsx)(n.td,{children:"\u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5"})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",children:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec"}),"\n",(0,l.jsx)(n.p,{children:"\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09"}),"\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09"}),"\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",children:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"JSqlParser"}),"\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"select"})," \u2192 ",(0,l.jsx)(n.code,{children:"SelectStatement"}),"\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 ",(0,l.jsx)(n.strong,{children:"API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31"}),"\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Druid"}),"\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F",(0,l.jsx)(n.strong,{children:"\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09"}),"\uFF0C\u5E76\u4E14",(0,l.jsx)(n.strong,{children:"\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55"}),"\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",children:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u4F9D\u8D56\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u89E3\u6790 SQL \u80FD\u529B"}),(0,l.jsx)(n.th,{children:"\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F"}),(0,l.jsx)(n.th,{children:"\u4F18\u7F3A\u70B9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JavaCC"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"ANTLR4"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Calcite"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"hive-exec"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E ANTLR3"}),(0,l.jsx)(n.td,{children:"\u4EC5 Hive\u3001Spark"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JSqlParser"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Druid"})}),(0,l.jsx)(n.td,{children:"\u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6"}),(0,l.jsx)(n.td,{children:"\u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u6709\uFF08\u6781\u5F3A\uFF09"})}),(0,l.jsx)(n.td,{children:"\u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6"})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:["\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 ",(0,l.jsx)(n.code,{children:"Insert"}),"\u3001",(0,l.jsx)(n.code,{children:"Select"}),"\u3001",(0,l.jsx)(n.code,{children:"Update"}),"\u3001",(0,l.jsx)(n.code,{children:"Delete"})," \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002"})," \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",children:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4"}),"\n",(0,l.jsxs)(n.p,{children:["ANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811",(0,l.jsx)(n.strong,{children:"\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"}),"\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",children:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4"}),"\n",(0,l.jsx)(n.h3,{id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",children:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\n\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\n\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\n \u5B9E\u73B0\uFF1Acalcite\n\n\u5B9E\u65F6 streamparser\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u95EE\u9898\u662F\uFF1A",(0,l.jsx)(n.strong,{children:"\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11"}),"\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",children:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",src:s(6809).A+"",width:"16384",height:"5838"})}),"\n",(0,l.jsx)(n.p,{children:"\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsx)(n.li,{children:"\u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811"}),"\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002"}),"\n"]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22",src:s(3784).A+"",width:"1710",height:"852"})}),"\n",(0,l.jsx)(n.h3,{id:"33-\u4E3B\u8981\u95EE\u9898",children:"3.3 \u4E3B\u8981\u95EE\u9898"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31"}),"\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE"}),"\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F ",(0,l.jsx)(n.code,{children:"if"})," \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8"}),"\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",children:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42"}),"\n",(0,l.jsxs)(n.p,{children:["\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A",(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"})," \u4E0E ",(0,l.jsx)(n.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",children:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42",src:s(3130).A+"",width:"2120",height:"712"})}),"\n",(0,l.jsx)(n.p,{children:"\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Druid \u5206\u5C42\u7ED3\u6784\u7C7B",src:s(4037).A+"",width:"3080",height:"1824"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\nSQLStatement statement = parser.parseStatement();\n\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\nDorisStatementParser statementParser = new DorisStatementParser(sql);\nSQLStatement sqlStatement = statementParser.parseStatement();\n"})}),"\n",(0,l.jsx)(n.h3,{id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",children:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5C42"}),"\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u5E94\u7528\u5C42"}),"\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u4E1A\u52A1\u89E3\u6790\u5206\u5C42",src:s(3042).A+"",width:"3972",height:"2296"})}),"\n",(0,l.jsx)(n.p,{children:"\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6",src:s(4560).A+"",width:"9256",height:"1888"})}),"\n",(0,l.jsxs)(n.p,{children:["\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F ",(0,l.jsx)(n.code,{children:"BaseXxxClient"}),"\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u7EE7\u627F BaseXxxClient \u6269\u5C55",src:s(3694).A+"",width:"2324",height:"1252"})}),"\n",(0,l.jsxs)(n.p,{children:["\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 ",(0,l.jsx)(n.code,{children:"XxxSqlParser"})," \u4E2D\u6CE8\u518C\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client",src:s(3220).A+"",width:"2100",height:"648"})}),"\n",(0,l.jsx)(n.p,{children:"\u793A\u4F8B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u51C6\u5907 SQL\nString sql = getSql();\n\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n// 2.1\u3001\u89E3\u6790\u8868\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\n\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\n\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\n\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\nSet functions = sqlParser.parseFunction(sql);\n"})}),"\n",(0,l.jsx)(n.h3,{id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",children:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",src:s(4778).A+"",width:"5684",height:"2764"})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",children:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002"}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B"}),"\uFF1A",(0,l.jsx)(n.code,{children:"insert into/overwrite ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"create ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"with as ... insert"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\u662F",(0,l.jsx)(n.strong,{children:"\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868"}),"\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EE5\u4E00\u6761 ",(0,l.jsx)(n.code,{children:"insert select"})," \u4E3A\u4F8B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"insert into new_table (id, name)\nselect a.id as aid, b.name as bname\nfrom old_table as a\nleft join old_table2 b on a.id = b.id\n"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u7AEF\u3001",(0,l.jsx)(n.code,{children:"select"})," \u6765\u6E90\u7AEF\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u76EE\u6807\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id id new_table\n name name new_table\n\n# \u6765\u6E90\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id aid old_table\n name bname old_table2\n"})}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsx)(n.li,{children:"\u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u7B2C\u4E00\u6761\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\n# \u7B2C\u4E8C\u6761\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002"}),"\n",(0,l.jsxs)(n.p,{children:["\u5BF9\u4E8E ",(0,l.jsx)(n.code,{children:"with as"})," \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 ",(0,l.jsx)(n.code,{children:"()"})," \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E",(0,l.jsx)(n.strong,{children:"\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5"}),"\u7684\u573A\u666F\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"concat(t1.name, t2.name)"}),"\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 ",(0,l.jsx)(n.code,{children:","})," \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"52-\u8868\u8840\u7F18\u89E3\u6790",children:"5.2 \u8868\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A ",(0,l.jsx)(n.code,{children:"select"})," \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E ",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"53-\u8868\u89E3\u6790",children:"5.3 \u8868\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08",(0,l.jsx)(n.code,{children:"select"}),"\u3001",(0,l.jsx)(n.code,{children:"update"}),"\u3001",(0,l.jsx)(n.code,{children:"delete"}),"\u3001",(0,l.jsx)(n.code,{children:"insert"}),"\u3001",(0,l.jsx)(n.code,{children:"drop"}),"\u3001",(0,l.jsx)(n.code,{children:"rename"})," \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"54-\u51FD\u6570\u89E3\u6790",children:"5.4 \u51FD\u6570\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 ",(0,l.jsx)(n.strong,{children:"Visitor \u6A21\u5F0F"}),"\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790",src:s(593).A+"",width:"2150",height:"1224"})}),"\n",(0,l.jsx)(n.h3,{id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",children:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09"}),"\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL"}),"\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",children:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A",(0,l.jsx)(n.strong,{children:"\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E8E\u662F\u6709\u4E86 ",(0,l.jsx)(n.strong,{children:"SqlParserX"})," \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790"}),"\u7684\u5F00\u6E90\u9879\u76EE\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"61-\u53CC\u5C42\u67B6\u6784",children:"6.1 \u53CC\u5C42\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SqlParserX\uFF08\u6839 Reactor\uFF09\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\n"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002"]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E24\u5C42\u4EE5 ",(0,l.jsx)(n.code,{children:"DbType + SQLStatement AST"})," \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C",(0,l.jsx)(n.strong,{children:"\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST"}),"\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",children:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid"}),"\n",(0,l.jsxs)(n.p,{children:["\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A",(0,l.jsx)(n.strong,{children:"\u5B98\u65B9 Druid 1.2.28"}),"\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C",(0,l.jsx)(n.strong,{children:"\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898"}),"\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",children:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/01%E3%80%81SQL%E8%AF%AD%E6%B3%95%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/Druid%E7%89%88%E6%9C%AC%E4%B8%8ESQL%E8%AF%AD%E6%B3%95%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5.md",children:"Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/tree/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E8%83%BD%E5%8A%9B%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5",children:"\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/main/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%96%87%E6%A1%A3/SqlParserX%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%8C%87%E5%8D%97.md",children:"\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357"})}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"64-\u76EE\u6807",children:"6.4 \u76EE\u6807"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid"})," \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX"}),"\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:["\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,l.jsx)(n.code,{children:"DbType"})," \u4E0E AST \u5BF9\u9F50\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E03\u7ED3\u8BED",children:"\u4E03\u3001\u7ED3\u8BED"}),"\n",(0,l.jsx)(n.p,{children:"\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002"})}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u6587\u56FE\u7247\u4F4D\u4E8E ",(0,l.jsx)(n.code,{children:"assets/"})," \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"]}),"\n"]})]})}function x(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},3519(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png"},6809(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png"},3784(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png"},3130(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/04-druid-syntax-layer-815515eac5295f9f772e1beb97f04c11.png"},4037(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/05-druid-layer-structure-5737c5a7826cff1a2874cf2b927ccd34.png"},3042(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png"},4560(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/07-application-components-3fa01967e1605c21791788f2a06212eb.png"},3694(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png"},3220(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/09-register-client-c6216b08439b96af51fda129de838a4e.png"},4778(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/10-after-refactor-c8b89cd447d9cea7894354ffea6a2fdf.png"},593(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/11-function-visitor-43a9830686ce367f536545b5691f504f.png"},8453(e,n,s){s.d(n,{R:()=>d,x:()=>c});var r=s(6540);let l={},i=r.createContext(l);function d(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),r.createElement(i.Provider,{value:n},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2705"],{670(e,n,s){s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>c,default:()=>x,frontMatter:()=>d,metadata:()=>r,toc:()=>a});var r=s(5816),l=s(4848),i=s(8453);let d={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},c,t={authorsImageUrls:[void 0]},a=[{value:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",level:2},{value:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668",id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",level:3},{value:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",level:3},{value:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668",id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",level:3},{value:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",level:3},{value:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848",id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",level:2},{value:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4",id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",level:3},{value:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec",id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",level:3},{value:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid",id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",level:3},{value:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",level:3},{value:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4",id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",level:3},{value:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",level:2},{value:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",level:3},{value:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",level:3},{value:"3.3 \u4E3B\u8981\u95EE\u9898",id:"33-\u4E3B\u8981\u95EE\u9898",level:3},{value:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42",id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",level:2},{value:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09",id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",level:3},{value:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42",id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",level:3},{value:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",level:3},{value:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",level:2},{value:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790",id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",level:3},{value:"5.2 \u8868\u8840\u7F18\u89E3\u6790",id:"52-\u8868\u8840\u7F18\u89E3\u6790",level:3},{value:"5.3 \u8868\u89E3\u6790",id:"53-\u8868\u89E3\u6790",level:3},{value:"5.4 \u51FD\u6570\u89E3\u6790",id:"54-\u51FD\u6570\u89E3\u6790",level:3},{value:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",level:3},{value:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F",id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",level:2},{value:"6.1 \u53CC\u5C42\u67B6\u6784",id:"61-\u53CC\u5C42\u67B6\u6784",level:3},{value:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid",id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",level:3},{value:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",level:3},{value:"6.4 \u76EE\u6807",id:"64-\u76EE\u6807",level:3},{value:"\u4E03\u3001\u7ED3\u8BED",id:"\u4E03\u7ED3\u8BED",level:2}];function h(e){let n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]}),"\n","\n",(0,l.jsx)(n.h2,{id:"\u4E00\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668",children:"\u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668"}),"\n",(0,l.jsx)(n.h3,{id:"11-\u4EC0\u4E48\u662F\u89E3\u6790\u5668",children:"1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F",(0,l.jsx)(n.strong,{children:"\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784"}),"\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F",(0,l.jsx)(n.strong,{children:"\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32"}),"\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 ",(0,l.jsx)(n.code,{children:"x = (a + b) * 3"})," \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 ",(0,l.jsx)(n.code,{children:"a + b"}),"\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 ",(0,l.jsx)(n.code,{children:"x"}),"\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n\n [=]\n / \\\n [x] [*]\n / \\\n [+] [3]\n / \\\n [a] [b]\n\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\n [if]\n / \\\n [>] [block]\n / \\ \\\n[x] [0] [=]\n / \\\n [y] [10]\n\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5668\u7684\u4F5C\u7528"}),"\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"12-\u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668",children:"1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F",(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790"}),"\uFF1A"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BCD\u6CD5\u5206\u6790"}),"\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u5206\u6790"}),"\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\n\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\n1 INTEGER \u6574\u6570 1\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\n2 INTEGER \u6574\u6570 2\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\n3 INTEGER \u6574\u6570 3\n\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\n\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\n [+]\n / \\\n 1 [*]\n / \\\n 2 3\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E00"}),"\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u65B9\u5F0F\u4E8C"}),"\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"13-\u4EC0\u4E48\u662F-sql-\u89E3\u6790\u5668",children:"1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668"}),"\n",(0,l.jsxs)(n.p,{children:["SQL \u89E3\u6790\u5668\u662F",(0,l.jsx)(n.strong,{children:"\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6"}),"\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"# \u67E5\u8BE2\nSELECT * FROM users WHERE status = 'active';\n# \u63D2\u5165\nINSERT INTO customers (name, email) VALUES ('\u674E\u56DB', 'lisi@example.com');\n# \u66F4\u65B0\nUPDATE products SET price = 5999 WHERE id = 1001;\n# \u5220\u9664\nDELETE FROM logs WHERE create_time < '2024-01-01';\n# \u521B\u5EFA\u8868\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\n# \u4FEE\u6539\u8868\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\n# \u5220\u9664\u8868\nDROP TABLE temp_data;\n# \u6388\u6743\nGRANT SELECT ON customers TO user1;\n"})}),"\n",(0,l.jsx)(n.h3,{id:"14-sql-\u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E",children:"1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E"}),"\n",(0,l.jsx)(n.p,{children:"\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D"}),"\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E8C\u5E02\u9762\u4E0A\u5E38\u89C1\u7684-sql-\u89E3\u6790\u65B9\u6848",children:"\u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848"}),"\n",(0,l.jsx)(n.p,{children:"\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD",src:s(3519).A+"",width:"2884",height:"1540"})}),"\n",(0,l.jsx)(n.h3,{id:"21-\u5E95\u5C42\u89E3\u6790\u5668\u4EF6javacc--antlr-3--antlr-4",children:"2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u7279\u6027"}),(0,l.jsx)(n.th,{children:"JavaCC"}),(0,l.jsx)(n.th,{children:"ANTLR 3"}),(0,l.jsx)(n.th,{children:"ANTLR 4"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u5206\u6790\u7B97\u6CD5"}),(0,l.jsx)(n.td,{children:"LL(k)"}),(0,l.jsx)(n.td,{children:"LL(*)"}),(0,l.jsx)(n.td,{children:"LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5DE6\u9012\u5F52\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u8F6C\u6362"}),(0,l.jsx)(n.td,{children:"\u81EA\u52A8\u5904\u7406"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u76EE\u6807\u8BED\u8A00"}),(0,l.jsx)(n.td,{children:"Java"}),(0,l.jsx)(n.td,{children:"Java\u3001C#\u3001Python \u7B49"}),(0,l.jsx)(n.td,{children:"\u540C ANTLR 3"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u9519\u8BEF\u5904\u7406"}),(0,l.jsx)(n.td,{children:"\u57FA\u7840\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D"}),(0,l.jsx)(n.td,{children:"\u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u590D\u6742\u5EA6"}),(0,l.jsx)(n.td,{children:"\u7B80\u5355\u76F4\u89C2"}),(0,l.jsx)(n.td,{children:"\u8F83\u590D\u6742"}),(0,l.jsx)(n.td,{children:"\u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"\u5E94\u7528\u573A\u666F"}),(0,l.jsx)(n.td,{children:"\u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2"}),(0,l.jsx)(n.td,{children:"\u4E2D\u5927\u578B\u9879\u76EE"}),(0,l.jsx)(n.td,{children:"\u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5"})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"22-sql-\u89E3\u6790\u5668\u811A\u624B\u67B6calcite--hive-exec",children:"2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec"}),"\n",(0,l.jsx)(n.p,{children:"\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09"}),"\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09"}),"\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"23-\u66F4\u5177\u8C61\u5316\u7684\u89E3\u6790\u5668jsqlparser--druid",children:"2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"JSqlParser"}),"\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"select"})," \u2192 ",(0,l.jsx)(n.code,{children:"SelectStatement"}),"\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 ",(0,l.jsx)(n.strong,{children:"API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31"}),"\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Druid"}),"\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F",(0,l.jsx)(n.strong,{children:"\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09"}),"\uFF0C\u5E76\u4E14",(0,l.jsx)(n.strong,{children:"\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55"}),"\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"24-\u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA",children:"2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u4F9D\u8D56\u5DE5\u5177"}),(0,l.jsx)(n.th,{children:"\u89E3\u6790 SQL \u80FD\u529B"}),(0,l.jsx)(n.th,{children:"\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F"}),(0,l.jsx)(n.th,{children:"\u4F18\u7F3A\u70B9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JavaCC"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"ANTLR4"}),(0,l.jsx)(n.td,{children:"\u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219"}),(0,l.jsx)(n.td,{children:"\u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Calcite"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"\u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"hive-exec"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E ANTLR3"}),(0,l.jsx)(n.td,{children:"\u4EC5 Hive\u3001Spark"}),(0,l.jsx)(n.td,{children:"\u65E0"}),(0,l.jsx)(n.td,{children:"\u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JSqlParser"}),(0,l.jsx)(n.td,{children:"\u57FA\u4E8E JavaCC"}),(0,l.jsx)(n.td,{children:"\u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00"}),(0,l.jsx)(n.td,{children:"\u6709"}),(0,l.jsx)(n.td,{children:"API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"Druid"})}),(0,l.jsx)(n.td,{children:"\u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6"}),(0,l.jsx)(n.td,{children:"\u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"\u6709\uFF08\u6781\u5F3A\uFF09"})}),(0,l.jsx)(n.td,{children:"\u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6"})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:["\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 ",(0,l.jsx)(n.code,{children:"Insert"}),"\u3001",(0,l.jsx)(n.code,{children:"Select"}),"\u3001",(0,l.jsx)(n.code,{children:"Update"}),"\u3001",(0,l.jsx)(n.code,{children:"Delete"})," \u7B49\u7ED3\u6784\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002"})," \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"25-\u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528-antlr4",children:"2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4"}),"\n",(0,l.jsxs)(n.p,{children:["ANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811",(0,l.jsx)(n.strong,{children:"\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB"}),"\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E09\u5386\u53F2\u80CC\u666F\u6539\u9020\u524D\u7684-sql-\u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4",children:"\u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4"}),"\n",(0,l.jsx)(n.h3,{id:"31-\u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218",children:"3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\n\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\n\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\n \u5B9E\u73B0\uFF1Acalcite\n\n\u5B9E\u65F6 streamparser\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\n\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\n"})}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u95EE\u9898\u662F\uFF1A",(0,l.jsx)(n.strong,{children:"\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11"}),"\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"32-\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",children:"3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784",src:s(6809).A+"",width:"16384",height:"5838"})}),"\n",(0,l.jsx)(n.p,{children:"\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsx)(n.li,{children:"\u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B"}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811"}),"\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002"}),"\n"]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22",src:s(3784).A+"",width:"1710",height:"852"})}),"\n",(0,l.jsx)(n.h3,{id:"33-\u4E3B\u8981\u95EE\u9898",children:"3.3 \u4E3B\u8981\u95EE\u9898"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31"}),"\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE"}),"\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F ",(0,l.jsx)(n.code,{children:"if"})," \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8"}),"\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u56DB\u6280\u672F\u6539\u9020\u53CC\u5C42\u5206\u5C42",children:"\u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42"}),"\n",(0,l.jsxs)(n.p,{children:["\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A",(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u89E3\u6790\u5C42"})," \u4E0E ",(0,l.jsx)(n.strong,{children:"\u4E1A\u52A1\u89E3\u6790\u5C42"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"41-\u8BED\u6CD5\u89E3\u6790\u5C42\u57FA\u4E8E-druid",children:"4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42",src:s(3130).A+"",width:"2120",height:"712"})}),"\n",(0,l.jsx)(n.p,{children:"\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"Druid \u5206\u5C42\u7ED3\u6784\u7C7B",src:s(4037).A+"",width:"3080",height:"1824"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\nSQLStatement statement = parser.parseStatement();\n\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\nDorisStatementParser statementParser = new DorisStatementParser(sql);\nSQLStatement sqlStatement = statementParser.parseStatement();\n"})}),"\n",(0,l.jsx)(n.h3,{id:"42-\u4E1A\u52A1\u89E3\u6790\u5C42",children:"4.2 \u4E1A\u52A1\u89E3\u6790\u5C42"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u89E3\u6790\u5C42"}),"\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u5E94\u7528\u5C42"}),"\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u4E1A\u52A1\u89E3\u6790\u5206\u5C42",src:s(3042).A+"",width:"3972",height:"2296"})}),"\n",(0,l.jsx)(n.p,{children:"\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6",src:s(4560).A+"",width:"9256",height:"1888"})}),"\n",(0,l.jsxs)(n.p,{children:["\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F ",(0,l.jsx)(n.code,{children:"BaseXxxClient"}),"\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u7EE7\u627F BaseXxxClient \u6269\u5C55",src:s(3694).A+"",width:"2324",height:"1252"})}),"\n",(0,l.jsxs)(n.p,{children:["\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 ",(0,l.jsx)(n.code,{children:"XxxSqlParser"})," \u4E2D\u6CE8\u518C\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client",src:s(3220).A+"",width:"2100",height:"648"})}),"\n",(0,l.jsx)(n.p,{children:"\u793A\u4F8B\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-java",children:"// \u51C6\u5907 SQL\nString sql = getSql();\n\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n// 2.1\u3001\u89E3\u6790\u8868\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\n\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\n\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\n\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\nSet functions = sqlParser.parseFunction(sql);\n"})}),"\n",(0,l.jsx)(n.h3,{id:"43-\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",children:"4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0",src:s(4778).A+"",width:"5684",height:"2764"})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E94\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0",children:"\u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0"}),"\n",(0,l.jsx)(n.p,{children:"\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002"}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B"}),"\uFF1A",(0,l.jsx)(n.code,{children:"insert into/overwrite ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"create ... select"}),"\u3001",(0,l.jsx)(n.code,{children:"with as ... insert"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"51-\u5B57\u6BB5\u8840\u7F18\u89E3\u6790",children:"5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u6838\u5FC3\u601D\u8DEF\u662F",(0,l.jsx)(n.strong,{children:"\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868"}),"\u3002"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4EE5\u4E00\u6761 ",(0,l.jsx)(n.code,{children:"insert select"})," \u4E3A\u4F8B\uFF1A"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sql",children:"insert into new_table (id, name)\nselect a.id as aid, b.name as bname\nfrom old_table as a\nleft join old_table2 b on a.id = b.id\n"})}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u7AEF\u3001",(0,l.jsx)(n.code,{children:"select"})," \u6765\u6E90\u7AEF\uFF1B"]}),"\n",(0,l.jsx)(n.li,{children:"\u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u76EE\u6807\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id id new_table\n name name new_table\n\n# \u6765\u6E90\u7AEF\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\n id aid old_table\n name bname old_table2\n"})}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsx)(n.li,{children:"\u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"# \u7B2C\u4E00\u6761\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\n# \u7B2C\u4E8C\u6761\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\n"})}),"\n",(0,l.jsx)(n.p,{children:"\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002"}),"\n",(0,l.jsxs)(n.p,{children:["\u5BF9\u4E8E ",(0,l.jsx)(n.code,{children:"with as"})," \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 ",(0,l.jsx)(n.code,{children:"()"})," \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E",(0,l.jsx)(n.strong,{children:"\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5"}),"\u7684\u573A\u666F\uFF08\u5982 ",(0,l.jsx)(n.code,{children:"concat(t1.name, t2.name)"}),"\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 ",(0,l.jsx)(n.code,{children:","})," \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"52-\u8868\u8840\u7F18\u89E3\u6790",children:"5.2 \u8868\u8840\u7F18\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A ",(0,l.jsx)(n.code,{children:"select"})," \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E ",(0,l.jsx)(n.code,{children:"insert"})," \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"53-\u8868\u89E3\u6790",children:"5.3 \u8868\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08",(0,l.jsx)(n.code,{children:"select"}),"\u3001",(0,l.jsx)(n.code,{children:"update"}),"\u3001",(0,l.jsx)(n.code,{children:"delete"}),"\u3001",(0,l.jsx)(n.code,{children:"insert"}),"\u3001",(0,l.jsx)(n.code,{children:"drop"}),"\u3001",(0,l.jsx)(n.code,{children:"rename"})," \u7B49\uFF09\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"54-\u51FD\u6570\u89E3\u6790",children:"5.4 \u51FD\u6570\u89E3\u6790"}),"\n",(0,l.jsxs)(n.p,{children:["\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 ",(0,l.jsx)(n.strong,{children:"Visitor \u6A21\u5F0F"}),"\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790",src:s(593).A+"",width:"2150",height:"1224"})}),"\n",(0,l.jsx)(n.h3,{id:"55-\u5176\u4ED6\u4E1A\u52A1\u80FD\u529B",children:"5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09"}),"\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL"}),"\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u516Dsqlparserx-\u7684\u8BDE\u751F",children:"\u516D\u3001SqlParserX \u7684\u8BDE\u751F"}),"\n",(0,l.jsxs)(n.p,{children:["\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A",(0,l.jsx)(n.strong,{children:"\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F"})]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E8E\u662F\u6709\u4E86 ",(0,l.jsx)(n.strong,{children:"SqlParserX"})," \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790"}),"\u7684\u5F00\u6E90\u9879\u76EE\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"61-\u53CC\u5C42\u67B6\u6784",children:"6.1 \u53CC\u5C42\u67B6\u6784"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-text",children:"SqlParserX\uFF08\u6839 Reactor\uFF09\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\n"})}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-syntax"}),"\uFF09"]}),"\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsxs)(n.strong,{children:["\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08",(0,l.jsx)(n.code,{children:"sqlparserx-core"}),"\uFF09"]}),"\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002"]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["\u4E24\u5C42\u4EE5 ",(0,l.jsx)(n.code,{children:"DbType + SQLStatement AST"})," \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C",(0,l.jsx)(n.strong,{children:"\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST"}),"\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 ",(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/master/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"62-\u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9-druid",children:"6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid"}),"\n",(0,l.jsxs)(n.p,{children:["\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A",(0,l.jsx)(n.strong,{children:"\u5B98\u65B9 Druid 1.2.28"}),"\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C",(0,l.jsx)(n.strong,{children:"\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898"}),"\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002"]}),"\n",(0,l.jsx)(n.h3,{id:"63-\u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB",children:"6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB"}),"\n",(0,l.jsx)(n.p,{children:"SqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"/docs/about/architecture",children:"\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/master/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A8%A1%E5%9D%97%E4%BE%9D%E8%B5%96%E5%8C%85%E5%BC%95%E7%94%A8%E7%BB%93%E6%9E%84%E8%AE%BE%E8%AE%A1.md",children:"\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/master/docs/01%E3%80%81SQL%E8%AF%AD%E6%B3%95%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/Druid%E7%89%88%E6%9C%AC%E4%B8%8ESQL%E8%AF%AD%E6%B3%95%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5.md",children:"Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/tree/master/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E8%83%BD%E5%8A%9B%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5",children:"\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/blob/master/docs/02%E3%80%81SQL%E4%B8%9A%E5%8A%A1%E5%B1%82%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%94%AF%E6%92%91%E6%83%85%E5%86%B5/%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%96%87%E6%A1%A3/SqlParserX%E8%A7%A3%E6%9E%90%E8%83%BD%E5%8A%9B%E6%A0%87%E5%87%86%E8%BF%AD%E4%BB%A3%E7%BB%B4%E6%8A%A4%E6%89%A9%E5%B1%95%E6%8C%87%E5%8D%97.md",children:"\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357"})}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"64-\u76EE\u6807",children:"6.4 \u76EE\u6807"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C",(0,l.jsx)(n.strong,{children:"\u5B8C\u5168\u57FA\u4E8E Druid"})," \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX"}),"\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B"]}),"\n",(0,l.jsxs)(n.li,{children:["\u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 ",(0,l.jsx)(n.code,{children:"DbType"})," \u4E0E AST \u5BF9\u9F50\u3002"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"\u4E03\u7ED3\u8BED",children:"\u4E03\u3001\u7ED3\u8BED"}),"\n",(0,l.jsx)(n.p,{children:"\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A"}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002"})}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002"}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28"}),"\n",(0,l.jsxs)(n.p,{children:["\u672C\u6587\u56FE\u7247\u4F4D\u4E8E ",(0,l.jsx)(n.code,{children:"assets/"})," \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"]}),"\n"]})]})}function x(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},3519(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/01-parser-market-69347f790ddfccf38bcd49b4df85e909.png"},6809(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/02-legacy-architecture-8c0e245dcac8e3570e5a686b9f58b9d9.png"},3784(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/03-calcite-layered-article-1d0e86b355eba0e53d237d95afd4d3a6.png"},3130(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/04-druid-syntax-layer-815515eac5295f9f772e1beb97f04c11.png"},4037(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/05-druid-layer-structure-5737c5a7826cff1a2874cf2b927ccd34.png"},3042(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/06-business-layer-46c84fa8b5f3c12f0316fc058e9daf15.png"},4560(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/07-application-components-3fa01967e1605c21791788f2a06212eb.png"},3694(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/08-inherit-baseclient-cb4fb84bd3af91ceb7d6b08e4ec7d466.png"},3220(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/09-register-client-c6216b08439b96af51fda129de838a4e.png"},4778(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/10-after-refactor-c8b89cd447d9cea7894354ffea6a2fdf.png"},593(e,n,s){s.d(n,{A:()=>r});let r=s.p+"assets/images/11-function-visitor-43a9830686ce367f536545b5691f504f.png"},8453(e,n,s){s.d(n,{R:()=>d,x:()=>c});var r=s(6540);let l={},i=r.createContext(l);function d(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),r.createElement(i.Provider,{value:n},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file diff --git a/en/assets/js/4b0ae1c1.8ac82777.js b/en/assets/js/4b0ae1c1.8ac82777.js deleted file mode 100644 index 35e0575..0000000 --- a/en/assets/js/4b0ae1c1.8ac82777.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9375"],{8786(e,r,t){t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>n,toc:()=>c});var n=t(5816),s=t(4848),a=t(8453);let o={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},i,l={authorsImageUrls:[void 0]},c=[];function u(e){let r={a:"a",blockquote:"blockquote",p:"p",...(0,a.R)(),...e.components};return(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsx)(r.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,s.jsxs)(r.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,s.jsx)(r.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,s.jsx)(r.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},8453(e,r,t){t.d(r,{R:()=>o,x:()=>i});var n=t(6540);let s={},a=n.createContext(s);function o(e){let r=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(a.Provider,{value:r},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file diff --git a/en/assets/js/4b0ae1c1.9cebb942.js b/en/assets/js/4b0ae1c1.9cebb942.js new file mode 100644 index 0000000..803559a --- /dev/null +++ b/en/assets/js/4b0ae1c1.9cebb942.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9375"],{8786(e,r,t){t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var s=t(5816),n=t(4848),a=t(8453);let o={slug:"origin-of-sqlparserx",title:"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020",authors:["changlu"],tags:["origin"],date:new Date("2026-09-28T00:00:00.000Z"),description:"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},l,i={authorsImageUrls:[void 0]},c=[];function u(e){let r={a:"a",blockquote:"blockquote",p:"p",...(0,a.R)(),...e.components};return(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsx)(r.p,{children:"\u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28"}),"\n",(0,n.jsxs)(r.p,{children:["\u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\n\u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 ",(0,n.jsx)(r.a,{href:"https://github.com/DTStack/SqlParserX",children:"SqlParserX \u4ED3\u5E93"}),"\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 ",(0,n.jsx)(r.a,{href:"/docs/about/architecture",children:"\u67B6\u6784\u8BBE\u8BA1"}),"\u3002"]}),"\n"]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},8453(e,r,t){t.d(r,{R:()=>o,x:()=>l});var s=t(6540);let n={},a=s.createContext(n);function o(e){let r=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(a.Provider,{value:r},e.children)}},5816(e){e.exports=JSON.parse('{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false}')}}]); \ No newline at end of file diff --git a/en/assets/js/533336a0.1b9c14e6.js b/en/assets/js/533336a0.1b9c14e6.js new file mode 100644 index 0000000..90f230b --- /dev/null +++ b/en/assets/js/533336a0.1b9c14e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8102"],{1082(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/table-lineage.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar_label":"Table Lineage","sidebar_position":2},"sidebar":"docs","previous":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage"},"next":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/next/core/table-parse"}}'),s=n(4848),a=n(8453);let l={title:"Table Lineage",description:"Parse source-to-target table lineage from SQL",sidebar_label:"Table Lineage",sidebar_position:2},i="Table Lineage",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"table-lineage",children:"Table Lineage"})}),"\n",(0,s.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(r.p,{children:["Using the official ",(0,s.jsx)(r.code,{children:"sqlparserx-core/README.md"})," sample SQL, from parser creation to printing table lineage:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse table lineage\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3. Read the result\n System.out.println("target table: " + result.getTargetTable());\n System.out.println("source tables: " + result.getSourceTables());\n\n List tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,s.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"target table: user_order_summary\nsource tables: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,s.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(r.p,{children:["Parse ",(0,s.jsx)(r.strong,{children:"target table \u2192 source table"})," table-level lineage from SQL, covering JOIN, UNION, subqueries, aggregates and CTEs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 collect source tables + target tables\n \u2192 TableLineageResult\n"})}),"\n",(0,s.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Item"}),(0,s.jsx)(r.th,{children:"Content"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Core entry"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Default impl"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,s.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Return type"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"TableLineageResult"})," (",(0,s.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,s.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,s.jsx)(r.code,{children:"getTableLineages()"}),")"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Coverage"}),(0,s.jsx)(r.td,{children:"JOIN, UNION, subquery, aggregate, CTE"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Capability"}),(0,s.jsx)(r.th,{children:"Status"}),(0,s.jsx)(r.th,{children:"Notes"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Single/multi-table JOIN"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"All participating tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Merge branches"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Subquery / derived table"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recursively collect real tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"CTE (WITH)"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recognize CTE and real sources"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Output target and source tables"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>l,x:()=>i});var t=n(6540);let s={},a=t.createContext(s);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/533336a0.2c9aa3e0.js b/en/assets/js/533336a0.2c9aa3e0.js deleted file mode 100644 index 8595d77..0000000 --- a/en/assets/js/533336a0.2c9aa3e0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8102"],{1082(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-lineage","title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-lineage.md","sourceDirName":"core","slug":"/core/table-lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/table-lineage.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Table Lineage","description":"Parse source-to-target table lineage from SQL","sidebar_label":"Table Lineage","sidebar_position":2},"sidebar":"docs","previous":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage"},"next":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/next/core/table-parse"}}'),s=n(4848),a=n(8453);let l={title:"Table Lineage",description:"Parse source-to-target table lineage from SQL",sidebar_label:"Table Lineage",sidebar_position:2},i="Table Lineage",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"table-lineage",children:"Table Lineage"})}),"\n",(0,s.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(r.blockquote,{children:["\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(r.p,{children:["Using the official ",(0,s.jsx)(r.code,{children:"sqlparserx-core/README.md"})," sample SQL, from parser creation to printing table lineage:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-java",metastring:'title="TableLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.List;\n\npublic class TableLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse table lineage\n TableLineageResult result = parser.parseTableLineages(sql);\n\n // 3. Read the result\n System.out.println("target table: " + result.getTargetTable());\n System.out.println("source tables: " + result.getSourceTables());\n\n List tableLineages = result.getTableLineages();\n for (TableLineage lineage : tableLineages) {\n System.out.println(lineage.getFromTable() + " -> " + lineage.getToTable());\n }\n }\n}\n'})}),"\n",(0,s.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"target table: user_order_summary\nsource tables: [users, orders]\nusers -> user_order_summary\norders -> user_order_summary\n"})}),"\n",(0,s.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(r.p,{children:["Parse ",(0,s.jsx)(r.strong,{children:"target table \u2192 source table"})," table-level lineage from SQL, covering JOIN, UNION, subqueries, aggregates and CTEs."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 TableLineageClient.parseTableLineages\n \u2192 collect source tables + target tables\n \u2192 TableLineageResult\n"})}),"\n",(0,s.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Item"}),(0,s.jsx)(r.th,{children:"Content"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Core entry"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"ISqlParser.parseTableLineages(sql)"})})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Default impl"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"BaseSqlParser.parseTableLineages"})," \u2192 ",(0,s.jsx)(r.code,{children:"TableLineageClient"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Return type"}),(0,s.jsxs)(r.td,{children:[(0,s.jsx)(r.code,{children:"TableLineageResult"})," (",(0,s.jsx)(r.code,{children:"getTargetTable()"})," + ",(0,s.jsx)(r.code,{children:"getSourceTables()"})," + ",(0,s.jsx)(r.code,{children:"getTableLineages()"}),")"]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Coverage"}),(0,s.jsx)(r.td,{children:"JOIN, UNION, subquery, aggregate, CTE"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Capability"}),(0,s.jsx)(r.th,{children:"Status"}),(0,s.jsx)(r.th,{children:"Notes"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Single/multi-table JOIN"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"All participating tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"UNION / UNION ALL"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Merge branches"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Subquery / derived table"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recursively collect real tables"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"CTE (WITH)"}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Recognize CTE and real sources"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"INSERT INTO ... SELECT"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Supported \u2705"})}),(0,s.jsx)(r.td,{children:"Output target and source tables"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8453(e,r,n){n.d(r,{R:()=>l,x:()=>i});var t=n(6540);let s={},a=t.createContext(s);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/5b44acae.22f632d6.js b/en/assets/js/5b44acae.22f632d6.js new file mode 100644 index 0000000..5137e15 --- /dev/null +++ b/en/assets/js/5b44acae.22f632d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8637"],{2424(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>u,frontMatter:()=>o,contentTitle:()=>a,toc:()=>c,assets:()=>l});var r=JSON.parse('{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/en/docs/next/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/intro.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar_label":"Docs Guide","sidebar_position":1},"sidebar":"docs","next":{"title":"Introduction","permalink":"/SqlParserX/en/docs/next/about/introduction"}}'),s=t(4848),i=t(8453);let o={title:"SqlParserX Docs",description:"Entry point for the SqlParserX multi-dialect SQL parsing engine",sidebar_label:"Docs Guide",sidebar_position:1},a="Welcome to SqlParserX",l={},c=[{value:"Get Started",id:"get-started",level:2},{value:"Documentation Map",id:"documentation-map",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"welcome-to-sqlparserx",children:"Welcome to SqlParserX"})}),"\n",(0,s.jsxs)(n.p,{children:["SqlParserX is a ",(0,s.jsx)(n.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," for SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,s.jsxs)(n.p,{children:["It is built around two layers: ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," parses SQL into Druid ASTs and owns syntax extensions; ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})," consumes those ASTs through the unified ",(0,s.jsx)(n.code,{children:"ISqlParser"})," contract and produces business parsing results. ",(0,s.jsx)(n.code,{children:"sqlparserx-web"})," and ",(0,s.jsx)(n.code,{children:"sqlparserx-ui"})," provide service and visualization access."]}),"\n",(0,s.jsx)(n.h2,{id:"get-started",children:"Get Started"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u{1F680} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/next/quickstart/setup",children:"Quick Start"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F4D6} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/next/about/introduction",children:"Introduction"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F3D7}\uFE0F ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/next/about/architecture",children:"Architecture"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation-map",children:"Documentation Map"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"About SqlParserX"}),": project introduction and two-layer architecture"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Quick Start"}),": environment setup, build and run"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Core Parsing Capabilities"}),": SQL type detection, field lineage, table lineage, table parsing, function extraction, and parameter extraction"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Contributing"}),": how to contribute"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[":::tip Tip\nUse the navbar to switch ",(0,s.jsx)(n.strong,{children:"version"})," (",(0,s.jsx)(n.code,{children:"1.0"})," / ",(0,s.jsx)(n.code,{children:"Next"}),") and ",(0,s.jsx)(n.strong,{children:"language"})," (\u7B80\u4F53\u4E2D\u6587 / English).\n:::"]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>o,x:()=>a});var r=t(6540);let s={},i=r.createContext(s);function o(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/5b44acae.5f304454.js b/en/assets/js/5b44acae.5f304454.js deleted file mode 100644 index 52ee9fa..0000000 --- a/en/assets/js/5b44acae.5f304454.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8637"],{2424(e,n,t){t.r(n),t.d(n,{metadata:()=>r,default:()=>u,frontMatter:()=>o,contentTitle:()=>a,toc:()=>c,assets:()=>l});var r=JSON.parse('{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/en/docs/next/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/intro.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar_label":"Docs Guide","sidebar_position":1},"sidebar":"docs","next":{"title":"Introduction","permalink":"/SqlParserX/en/docs/next/about/introduction"}}'),s=t(4848),i=t(8453);let o={title:"SqlParserX Docs",description:"Entry point for the SqlParserX multi-dialect SQL parsing engine",sidebar_label:"Docs Guide",sidebar_position:1},a="Welcome to SqlParserX",l={},c=[{value:"Get Started",id:"get-started",level:2},{value:"Documentation Map",id:"documentation-map",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"welcome-to-sqlparserx",children:"Welcome to SqlParserX"})}),"\n",(0,s.jsxs)(n.p,{children:["SqlParserX is a ",(0,s.jsx)(n.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," for SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,s.jsxs)(n.p,{children:["It is built around two layers: ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," parses SQL into Druid ASTs and owns syntax extensions; ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})," consumes those ASTs through the unified ",(0,s.jsx)(n.code,{children:"ISqlParser"})," contract and produces business parsing results. ",(0,s.jsx)(n.code,{children:"sqlparserx-web"})," and ",(0,s.jsx)(n.code,{children:"sqlparserx-ui"})," provide service and visualization access."]}),"\n",(0,s.jsx)(n.h2,{id:"get-started",children:"Get Started"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u{1F680} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/next/quickstart/setup",children:"Quick Start"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F4D6} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/next/about/introduction",children:"Introduction"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F3D7}\uFE0F ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/next/about/architecture",children:"Architecture"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation-map",children:"Documentation Map"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"About SqlParserX"}),": project introduction and two-layer architecture"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Quick Start"}),": environment setup, build and run"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Core Parsing Capabilities"}),": SQL type detection, field lineage, table lineage, table parsing, function extraction, and parameter extraction"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Contributing"}),": how to contribute"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[":::tip Tip\nUse the navbar to switch ",(0,s.jsx)(n.strong,{children:"version"})," (",(0,s.jsx)(n.code,{children:"1.0"})," / ",(0,s.jsx)(n.code,{children:"Next"}),") and ",(0,s.jsx)(n.strong,{children:"language"})," (\u7B80\u4F53\u4E2D\u6587 / English).\n:::"]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>o,x:()=>a});var r=t(6540);let s={},i=r.createContext(s);function o(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/773100d1.d8d80707.js b/en/assets/js/773100d1.d8d80707.js deleted file mode 100644 index bb77621..0000000 --- a/en/assets/js/773100d1.d8d80707.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4413"],{4282(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>l,contentTitle:()=>i,toc:()=>d,assets:()=>o});var s=JSON.parse('{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/en/docs/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/quickstart/setup.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar_label":"Setup & Build","sidebar_position":1},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/SqlParserX/en/docs/about/architecture"},"next":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/core/sql-type"}}'),a=r(4848),t=r(8453);let l={title:"Quick Start",description:"Add the dependency, build and run SqlParserX locally",sidebar_label:"Setup & Build",sidebar_position:1},i="Quick Start",o={},d=[{value:"1. Requirements",id:"1-requirements",level:2},{value:"2. Add the Dependency",id:"2-add-the-dependency",level:2},{value:"3. Hello World: Parse a SQL",id:"3-hello-world-parse-a-sql",level:2},{value:"4. Next Steps",id:"4-next-steps",level:2}];function c(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"quick-start",children:"Quick Start"})}),"\n",(0,a.jsx)(n.h2,{id:"1-requirements",children:"1. Requirements"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Dependency"}),(0,a.jsx)(n.th,{children:"Version"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"JDK"}),(0,a.jsx)(n.td,{children:"Java 8+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Maven"}),(0,a.jsx)(n.td,{children:"3.6+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsxs)(n.td,{children:["Node.js (only ",(0,a.jsx)(n.code,{children:"sqlparserx-ui"}),")"]}),(0,a.jsx)(n.td,{children:">= 20"})]})]})]}),"\n",(0,a.jsx)(n.h2,{id:"2-add-the-dependency",children:"2. Add the Dependency"}),"\n",(0,a.jsxs)(n.p,{children:["Add the ",(0,a.jsx)(n.strong,{children:"business parsing layer"})," ",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," to your ",(0,a.jsx)(n.code,{children:"pom.xml"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,a.jsxs)(n.p,{children:[":::tip Dependency note\n",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," (syntax layer) and official Druid, so business parsing only needs the single ",(0,a.jsx)(n.code,{children:"core"})," coordinate. If you only need SQL\u2192AST syntax parsing, you can depend on ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," alone.\n:::"]}),"\n",(0,a.jsxs)(n.p,{children:[":::note Use from source\nIf ",(0,a.jsx)(n.code,{children:"1.0-SNAPSHOT"})," is not published to a remote repository yet, build and install it locally first:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,a.jsx)(n.p,{children:":::"}),"\n",(0,a.jsx)(n.h2,{id:"3-hello-world-parse-a-sql",children:"3. Hello World: Parse a SQL"}),"\n",(0,a.jsxs)(n.p,{children:["A ",(0,a.jsx)(n.strong,{children:"complete runnable"})," class covering table parsing, column lineage, table lineage and functions, consistent with the official ",(0,a.jsx)(n.code,{children:"sqlparserx-core/README.md"})," demo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser by datasource type (mysql/hive/doris/... 15+ dialects)\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse column lineage (pass metadata for select * cases)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4. Parse table lineage\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("table lineage: " + tableLineages);\n\n // 5. Parse functions\n Set functions = parser.parseFunction(sql);\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\ntable lineage: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\nfunctions: [sum, count]\n"})}),"\n",(0,a.jsx)(n.h2,{id:"4-next-steps",children:"4. Next Steps"}),"\n",(0,a.jsx)(n.p,{children:"Dependency + complete example for each capability:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/field-lineage",children:"Field lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/table-lineage",children:"Table lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/table-parse",children:"Table parsing"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/function-parse",children:"Function parsing"})}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>l,x:()=>i});var s=r(6540);let a={},t=s.createContext(a);function l(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/773100d1.f9c041bb.js b/en/assets/js/773100d1.f9c041bb.js new file mode 100644 index 0000000..3c17942 --- /dev/null +++ b/en/assets/js/773100d1.f9c041bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4413"],{4282(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>l,contentTitle:()=>i,toc:()=>d,assets:()=>o});var s=JSON.parse('{"id":"quickstart/setup","title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/quickstart/setup.md","sourceDirName":"quickstart","slug":"/quickstart/setup","permalink":"/SqlParserX/en/docs/quickstart/setup","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/quickstart/setup.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Quick Start","description":"Add the dependency, build and run SqlParserX locally","sidebar_label":"Setup & Build","sidebar_position":1},"sidebar":"docs","previous":{"title":"Architecture","permalink":"/SqlParserX/en/docs/about/architecture"},"next":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/core/sql-type"}}'),a=r(4848),t=r(8453);let l={title:"Quick Start",description:"Add the dependency, build and run SqlParserX locally",sidebar_label:"Setup & Build",sidebar_position:1},i="Quick Start",o={},d=[{value:"1. Requirements",id:"1-requirements",level:2},{value:"2. Add the Dependency",id:"2-add-the-dependency",level:2},{value:"3. Hello World: Parse a SQL",id:"3-hello-world-parse-a-sql",level:2},{value:"4. Next Steps",id:"4-next-steps",level:2}];function c(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"quick-start",children:"Quick Start"})}),"\n",(0,a.jsx)(n.h2,{id:"1-requirements",children:"1. Requirements"}),"\n",(0,a.jsxs)(n.table,{children:[(0,a.jsx)(n.thead,{children:(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.th,{children:"Dependency"}),(0,a.jsx)(n.th,{children:"Version"})]})}),(0,a.jsxs)(n.tbody,{children:[(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"JDK"}),(0,a.jsx)(n.td,{children:"Java 8+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsx)(n.td,{children:"Maven"}),(0,a.jsx)(n.td,{children:"3.6+"})]}),(0,a.jsxs)(n.tr,{children:[(0,a.jsxs)(n.td,{children:["Node.js (only ",(0,a.jsx)(n.code,{children:"sqlparserx-ui"}),")"]}),(0,a.jsx)(n.td,{children:">= 20"})]})]})]}),"\n",(0,a.jsx)(n.h2,{id:"2-add-the-dependency",children:"2. Add the Dependency"}),"\n",(0,a.jsxs)(n.p,{children:["Add the ",(0,a.jsx)(n.strong,{children:"business parsing layer"})," ",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," to your ",(0,a.jsx)(n.code,{children:"pom.xml"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,a.jsxs)(n.p,{children:[":::tip Dependency note\n",(0,a.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," (syntax layer) and official Druid, so business parsing only needs the single ",(0,a.jsx)(n.code,{children:"core"})," coordinate. If you only need SQL\u2192AST syntax parsing, you can depend on ",(0,a.jsx)(n.code,{children:"sqlparserx-syntax"})," alone.\n:::"]}),"\n",(0,a.jsxs)(n.p,{children:[":::note Use from source\nIf ",(0,a.jsx)(n.code,{children:"1.0-SNAPSHOT"})," is not published to a remote repository yet, build and install it locally first:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/DTStack/SqlParserX.git\ncd SqlParserX\nmvn clean install -DskipTests\n"})}),"\n",(0,a.jsx)(n.p,{children:":::"}),"\n",(0,a.jsx)(n.h2,{id:"3-hello-world-parse-a-sql",children:"3. Hello World: Parse a SQL"}),"\n",(0,a.jsxs)(n.p,{children:["A ",(0,a.jsx)(n.strong,{children:"complete runnable"})," class covering table parsing, column lineage, table lineage and functions, consistent with the official ",(0,a.jsx)(n.code,{children:"sqlparserx-core/README.md"})," demo:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="SqlParserXDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.domain.TableLineage;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.table.TableLineageResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.*;\n\npublic class SqlParserXDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser by datasource type (mysql/hive/doris/... 15+ dialects)\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse column lineage (pass metadata for select * cases)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(new Column("amount", 0), new Column("id", 1)));\n ColumnLineageResult columnLineageResult =\n parser.parseColumnLineages(sql, tableColumnsMap);\n columnLineageResult.printColumnLineage();\n\n // 4. Parse table lineage\n TableLineageResult tableLineageResult = parser.parseTableLineages(sql);\n List tableLineages = tableLineageResult.getTableLineages();\n System.out.println("table lineage: " + tableLineages);\n\n // 5. Parse functions\n Set functions = parser.parseFunction(sql);\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\ntable lineage: [TableLineage{fromCatalog='null', fromDb='null', fromTable='users', toCatalog='null', toDb='null', toTable='user_order_summary'}, ...]\nfunctions: [sum, count]\n"})}),"\n",(0,a.jsx)(n.h2,{id:"4-next-steps",children:"4. Next Steps"}),"\n",(0,a.jsx)(n.p,{children:"Dependency + complete example for each capability:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/field-lineage",children:"Field lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/table-lineage",children:"Table lineage"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/table-parse",children:"Table parsing"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"/SqlParserX/en/docs/core/function-parse",children:"Function parsing"})}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>l,x:()=>i});var s=r(6540);let a={},t=s.createContext(a);function l(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/7ba64a19.89e1fa40.js b/en/assets/js/7ba64a19.89e1fa40.js new file mode 100644 index 0000000..b9c388b --- /dev/null +++ b/en/assets/js/7ba64a19.89e1fa40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["947"],{6296(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>o,assets:()=>d});var t=JSON.parse('{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/en/docs/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/field-lineage.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar_label":"Field Lineage","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/core/sql-type"},"next":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/core/table-lineage"}}'),s=r(4848),l=r(8453);let a={title:"Field Lineage",description:"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL",sidebar_label:"Field Lineage",sidebar_position:1},i="Field Lineage",d={},o=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function c(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"field-lineage",children:"Field Lineage"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"complete runnable"})," class from parser creation to printing column lineage, using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Metadata: table -> columns (used for select * / column expansion)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3. Parse column lineage\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4. Print result: target table + target column -> source column\n System.out.println("target table: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"target table: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Derive ",(0,s.jsx)(n.strong,{children:"source table.column \u2192 target table.column"})," column-level lineage from SQL."]}),"\n",(0,s.jsxs)(n.p,{children:["The core idea: normalize the source select field list and target field list into sets of ",(0,s.jsx)(n.code,{children:"(real column, alias, real table)"})," triples, then generate lineage by fixed matching rules. Field lineage takes insert/create-table SQL as input; pure query SQL produces no lineage."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 target column list + source select column list\n \u2192 addColumnRelations match one by one\n \u2192 ColumnLineageResult\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,s.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"ColumnLineageResult"})," (",(0,s.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,s.jsx)(n.code,{children:"getColumnLineages()"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Applicable"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"SQLInsertStatement"}),", ",(0,s.jsx)(n.code,{children:"SQLCreateTableStatement"})," (AS SELECT)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Metadata input"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Map> tableColumnsMap"})})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"catalog.db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Multi-catalog scenarios such as Hive/Trino/StarRocks"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Standard MySQL/PostgreSQL usage"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:["Column expressions (",(0,s.jsx)(n.code,{children:"SQLBinaryOpExpr"}),")"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"t5.level + 1"}),", recursively collect columns"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"*"})," / ",(0,s.jsx)(n.code,{children:"xx.*"})," expansion"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["Read from metadata ",(0,s.jsx)(n.code,{children:"tableColumnsMap"}),"; keep ",(0,s.jsx)(n.code,{children:"*"})," without metadata"]})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>a,x:()=>i});var t=r(6540);let s={},l=t.createContext(s);function a(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/7ba64a19.c7666b43.js b/en/assets/js/7ba64a19.c7666b43.js deleted file mode 100644 index 937496a..0000000 --- a/en/assets/js/7ba64a19.c7666b43.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["947"],{6296(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>o,assets:()=>d});var t=JSON.parse('{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/en/docs/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/field-lineage.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar_label":"Field Lineage","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/core/sql-type"},"next":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/core/table-lineage"}}'),s=r(4848),l=r(8453);let a={title:"Field Lineage",description:"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL",sidebar_label:"Field Lineage",sidebar_position:1},i="Field Lineage",d={},o=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function c(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"field-lineage",children:"Field Lineage"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"complete runnable"})," class from parser creation to printing column lineage, using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Metadata: table -> columns (used for select * / column expansion)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3. Parse column lineage\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4. Print result: target table + target column -> source column\n System.out.println("target table: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"target table: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Derive ",(0,s.jsx)(n.strong,{children:"source table.column \u2192 target table.column"})," column-level lineage from SQL."]}),"\n",(0,s.jsxs)(n.p,{children:["The core idea: normalize the source select field list and target field list into sets of ",(0,s.jsx)(n.code,{children:"(real column, alias, real table)"})," triples, then generate lineage by fixed matching rules. Field lineage takes insert/create-table SQL as input; pure query SQL produces no lineage."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 target column list + source select column list\n \u2192 addColumnRelations match one by one\n \u2192 ColumnLineageResult\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,s.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"ColumnLineageResult"})," (",(0,s.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,s.jsx)(n.code,{children:"getColumnLineages()"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Applicable"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"SQLInsertStatement"}),", ",(0,s.jsx)(n.code,{children:"SQLCreateTableStatement"})," (AS SELECT)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Metadata input"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Map> tableColumnsMap"})})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"catalog.db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Multi-catalog scenarios such as Hive/Trino/StarRocks"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Standard MySQL/PostgreSQL usage"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:["Column expressions (",(0,s.jsx)(n.code,{children:"SQLBinaryOpExpr"}),")"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"t5.level + 1"}),", recursively collect columns"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"*"})," / ",(0,s.jsx)(n.code,{children:"xx.*"})," expansion"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["Read from metadata ",(0,s.jsx)(n.code,{children:"tableColumnsMap"}),"; keep ",(0,s.jsx)(n.code,{children:"*"})," without metadata"]})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>a,x:()=>i});var t=r(6540);let s={},l=t.createContext(s);function a(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/92d5f697.1b48d711.js b/en/assets/js/92d5f697.1b48d711.js deleted file mode 100644 index 1bdba21..0000000 --- a/en/assets/js/92d5f697.1b48d711.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4128"],{1110(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>c,contentTitle:()=>d,toc:()=>a,assets:()=>o});var t=JSON.parse('{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/en/docs/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/function-parse.md","tags":[],"version":"1.0","sidebarPosition":4,"frontMatter":{"title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar_label":"Function Parsing","sidebar_position":4},"sidebar":"docs","previous":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/core/table-parse"},"next":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/core/parameter-compile"}}'),s=r(4848),i=r(8453);let c={title:"Function Parsing",description:"Extract functions, arguments and contexts used in SQL",sidebar_label:"Function Parsing",sidebar_position:4},d="Function Parsing",o={},a=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function l(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"function-parsing",children:"Function Parsing"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["Using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL to extract the set of functions:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse functions used in the SQL\n Set functions = parser.parseFunction(sql);\n\n // 3. Read the result\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"functions: [sum, count]\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Extract ",(0,s.jsx)(n.strong,{children:"function calls"})," from SQL as a de-duplicated set of function names for function-level governance and dependency analysis."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 traverse AST to collect function expressions\n \u2192 Set functions\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Set"})," (function names, lower-cased)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Coverage"}),(0,s.jsx)(n.td,{children:"built-in, aggregate, window, custom functions"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Regular function calls"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"substr(name, 1, 3)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Aggregate functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"sum"}),", ",(0,s.jsx)(n.code,{children:"count"}),", ",(0,s.jsx)(n.code,{children:"max"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Window functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"row_number() over(...)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Nested functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Recursively collect inner and outer functions"})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453(e,n,r){r.d(n,{R:()=>c,x:()=>d});var t=r(6540);let s={},i=t.createContext(s);function c(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/92d5f697.8d513838.js b/en/assets/js/92d5f697.8d513838.js new file mode 100644 index 0000000..7fce593 --- /dev/null +++ b/en/assets/js/92d5f697.8d513838.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["4128"],{1110(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>c,contentTitle:()=>d,toc:()=>a,assets:()=>o});var t=JSON.parse('{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/en/docs/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/function-parse.md","tags":[],"version":"1.0","sidebarPosition":4,"frontMatter":{"title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar_label":"Function Parsing","sidebar_position":4},"sidebar":"docs","previous":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/core/table-parse"},"next":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/core/parameter-compile"}}'),s=r(4848),i=r(8453);let c={title:"Function Parsing",description:"Extract functions, arguments and contexts used in SQL",sidebar_label:"Function Parsing",sidebar_position:4},d="Function Parsing",o={},a=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function l(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"function-parsing",children:"Function Parsing"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["Using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL to extract the set of functions:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse functions used in the SQL\n Set functions = parser.parseFunction(sql);\n\n // 3. Read the result\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"functions: [sum, count]\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Extract ",(0,s.jsx)(n.strong,{children:"function calls"})," from SQL as a de-duplicated set of function names for function-level governance and dependency analysis."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 traverse AST to collect function expressions\n \u2192 Set functions\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Set"})," (function names, lower-cased)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Coverage"}),(0,s.jsx)(n.td,{children:"built-in, aggregate, window, custom functions"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Regular function calls"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"substr(name, 1, 3)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Aggregate functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"sum"}),", ",(0,s.jsx)(n.code,{children:"count"}),", ",(0,s.jsx)(n.code,{children:"max"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Window functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"row_number() over(...)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Nested functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Recursively collect inner and outer functions"})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453(e,n,r){r.d(n,{R:()=>c,x:()=>d});var t=r(6540);let s={},i=t.createContext(s);function c(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/9aae347e.2a52863b.js b/en/assets/js/9aae347e.2a52863b.js deleted file mode 100644 index 94040e4..0000000 --- a/en/assets/js/9aae347e.2a52863b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1759"],{1421(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/en/docs/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/table-parse.md","tags":[],"version":"1.0","sidebarPosition":3,"frontMatter":{"title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar_label":"Table Parsing","sidebar_position":3},"sidebar":"docs","previous":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/core/table-lineage"},"next":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/core/function-parse"}}'),n=s(4848),a=s(8453);let l={title:"Table Parsing",description:"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL",sidebar_label:"Table Parsing",sidebar_position:3},i="Table Parsing",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"table-parsing",children:"Table Parsing"})}),"\n",(0,n.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,n.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,n.jsxs)(r.p,{children:["Using the official ",(0,n.jsx)(r.code,{children:"sqlparserx-core/README.md"}),' sample SQL to demonstrate both "parse real tables" and "parse CREATE TABLE":']}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables in the SQL\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse the CREATE TABLE structure\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("created table: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("column count: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,n.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\ncreated table: null.user_order_summary\ncolumn count: 4\n"})}),"\n",(0,n.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,n.jsxs)(r.p,{children:["Identify ",(0,n.jsx)(r.strong,{children:"real tables"})," from SQL text, including query tables, CTEs, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"})," definitions, partitions and table properties."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 collect tables / CTEs / DDL / partitions / properties\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,n.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Item"}),(0,n.jsx)(r.th,{children:"Content"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Core entry"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),", ",(0,n.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Default impl"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,n.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Return type"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ParseTableResult"}),", ",(0,n.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Coverage"}),(0,n.jsxs)(r.td,{children:["query tables, CTE, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"}),", partitions, properties"]})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Capability"}),(0,n.jsx)(r.th,{children:"Status"}),(0,n.jsx)(r.th,{children:"Notes"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Query table detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"CTE detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"WITH-defined temporary tables"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Table name, columns, types, comments"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Partitions & properties"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Dialect differences internalized in syntax layer"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"catalog.db.table"})}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Multi-catalog scenarios"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>l,x:()=>i});var t=s(6540);let n={},a=t.createContext(n);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/9aae347e.a020d1e5.js b/en/assets/js/9aae347e.a020d1e5.js new file mode 100644 index 0000000..abbc9e2 --- /dev/null +++ b/en/assets/js/9aae347e.a020d1e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1759"],{1421(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/en/docs/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/table-parse.md","tags":[],"version":"1.0","sidebarPosition":3,"frontMatter":{"title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar_label":"Table Parsing","sidebar_position":3},"sidebar":"docs","previous":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/core/table-lineage"},"next":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/core/function-parse"}}'),n=s(4848),a=s(8453);let l={title:"Table Parsing",description:"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL",sidebar_label:"Table Parsing",sidebar_position:3},i="Table Parsing",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"table-parsing",children:"Table Parsing"})}),"\n",(0,n.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,n.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,n.jsxs)(r.p,{children:["Using the official ",(0,n.jsx)(r.code,{children:"sqlparserx-core/README.md"}),' sample SQL to demonstrate both "parse real tables" and "parse CREATE TABLE":']}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables in the SQL\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse the CREATE TABLE structure\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("created table: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("column count: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,n.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\ncreated table: null.user_order_summary\ncolumn count: 4\n"})}),"\n",(0,n.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,n.jsxs)(r.p,{children:["Identify ",(0,n.jsx)(r.strong,{children:"real tables"})," from SQL text, including query tables, CTEs, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"})," definitions, partitions and table properties."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 collect tables / CTEs / DDL / partitions / properties\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,n.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Item"}),(0,n.jsx)(r.th,{children:"Content"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Core entry"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),", ",(0,n.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Default impl"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,n.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Return type"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ParseTableResult"}),", ",(0,n.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Coverage"}),(0,n.jsxs)(r.td,{children:["query tables, CTE, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"}),", partitions, properties"]})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Capability"}),(0,n.jsx)(r.th,{children:"Status"}),(0,n.jsx)(r.th,{children:"Notes"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Query table detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"CTE detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"WITH-defined temporary tables"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Table name, columns, types, comments"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Partitions & properties"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Dialect differences internalized in syntax layer"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"catalog.db.table"})}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Multi-catalog scenarios"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>l,x:()=>i});var t=s(6540);let n={},a=t.createContext(n);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/9c37e8a9.53558edc.js b/en/assets/js/9c37e8a9.53558edc.js new file mode 100644 index 0000000..3f775d8 --- /dev/null +++ b/en/assets/js/9c37e8a9.53558edc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1033"],{6845(e,r,t){t.r(r),t.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>a,assets:()=>o});var s=JSON.parse('{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/en/docs/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/about/introduction.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar_label":"Introduction","sidebar_position":1},"sidebar":"docs","previous":{"title":"Docs Guide","permalink":"/SqlParserX/en/docs/intro"},"next":{"title":"Architecture","permalink":"/SqlParserX/en/docs/about/architecture"}}'),i=t(4848),n=t(8453);let d={title:"Introduction",description:"Positioning, capabilities and modules of SqlParserX",sidebar_label:"Introduction",sidebar_position:1},l="Introduction to SqlParserX",o={},a=[{value:"Problems It Solves",id:"problems-it-solves",level:2},{value:"Modules",id:"modules",level:2},{value:"Supported Datasources",id:"supported-datasources",level:2},{value:"Further Reading",id:"further-reading",level:2}];function c(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"introduction-to-sqlparserx",children:"Introduction to SqlParserX"})}),"\n",(0,i.jsxs)(r.p,{children:["SqlParserX is a ",(0,i.jsx)(r.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," offering SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,i.jsx)(r.h2,{id:"problems-it-solves",children:"Problems It Solves"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Problem"}),(0,i.jsx)(r.th,{children:"Solution"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Dialects differ greatly"}),(0,i.jsxs)(r.td,{children:["Route Druid dialects via ",(0,i.jsx)(r.code,{children:"DbType"})," with a unified AST"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Real tables and DDL hide in SQL text"}),(0,i.jsxs)(r.td,{children:["Table, CTE, ",(0,i.jsx)(r.code,{children:"CREATE TABLE"}),", partition and property parsing"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Data dependencies are hard to trace"}),(0,i.jsx)(r.td,{children:"Table/column lineage across JOIN, UNION, subqueries, aggregates and CTEs"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Scripts contain multiple statements"}),(0,i.jsx)(r.td,{children:"SQL splitting and syntax validation"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Permission predicates are hard to maintain"}),(0,i.jsx)(r.td,{children:"Row-level permission SQL rewriting"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"modules",children:"Modules"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Module"}),(0,i.jsx)(r.th,{children:"Layer"}),(0,i.jsx)(r.th,{children:"Description"}),(0,i.jsx)(r.th,{children:"Technology"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-syntax"})}),(0,i.jsx)(r.td,{children:"Syntax parsing"}),(0,i.jsx)(r.td,{children:"SQL-to-AST, validation, splitting and Druid dialect extensions"}),(0,i.jsx)(r.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-core"})}),(0,i.jsx)(r.td,{children:"Business parsing"}),(0,i.jsx)(r.td,{children:"Tables, lineage, DDL, functions and SQL rewriting"}),(0,i.jsxs)(r.td,{children:["Java 8 + ",(0,i.jsx)(r.code,{children:"sqlparserx-syntax"})]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-web"})}),(0,i.jsx)(r.td,{children:"Access layer"}),(0,i.jsx)(r.td,{children:"Spring Boot REST service"}),(0,i.jsx)(r.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-ui"})}),(0,i.jsx)(r.td,{children:"Access layer"}),(0,i.jsx)(r.td,{children:"Lineage visualization and online parsing tools"}),(0,i.jsx)(r.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"supported-datasources",children:"Supported Datasources"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Datasource"}),(0,i.jsx)(r.th,{children:"Support"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"MySQL"}),(0,i.jsxs)(r.td,{children:["Priority support with enhanced ",(0,i.jsx)(r.code,{children:"RENAME TABLE"})," handling"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Doris"}),(0,i.jsx)(r.td,{children:"Strong support with dedicated DDL and lineage tests"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"StarRocks"}),(0,i.jsxs)(r.td,{children:["Dedicated ",(0,i.jsx)(r.code,{children:"DISTRIBUTED BY"})," and key DDL support"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,i.jsx)(r.td,{children:"Registered parsers with common business implementation"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"further-reading",children:"Further Reading"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.a,{href:"/SqlParserX/en/docs/about/architecture",children:"Architecture"})}),"\n",(0,i.jsxs)(r.li,{children:["Background: ",(0,i.jsx)(r.a,{href:"/blog/origin-of-sqlparserx",children:"The Origin of SqlParserX"})]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453(e,r,t){t.d(r,{R:()=>d,x:()=>l});var s=t(6540);let i={},n=s.createContext(i);function d(e){let r=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/9c37e8a9.639e262d.js b/en/assets/js/9c37e8a9.639e262d.js deleted file mode 100644 index ec63277..0000000 --- a/en/assets/js/9c37e8a9.639e262d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1033"],{6845(e,r,t){t.r(r),t.d(r,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>a,assets:()=>o});var s=JSON.parse('{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/en/docs/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/about/introduction.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar_label":"Introduction","sidebar_position":1},"sidebar":"docs","previous":{"title":"Docs Guide","permalink":"/SqlParserX/en/docs/intro"},"next":{"title":"Architecture","permalink":"/SqlParserX/en/docs/about/architecture"}}'),i=t(4848),n=t(8453);let d={title:"Introduction",description:"Positioning, capabilities and modules of SqlParserX",sidebar_label:"Introduction",sidebar_position:1},l="Introduction to SqlParserX",o={},a=[{value:"Problems It Solves",id:"problems-it-solves",level:2},{value:"Modules",id:"modules",level:2},{value:"Supported Datasources",id:"supported-datasources",level:2},{value:"Further Reading",id:"further-reading",level:2}];function c(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"introduction-to-sqlparserx",children:"Introduction to SqlParserX"})}),"\n",(0,i.jsxs)(r.p,{children:["SqlParserX is a ",(0,i.jsx)(r.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," offering SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,i.jsx)(r.h2,{id:"problems-it-solves",children:"Problems It Solves"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Problem"}),(0,i.jsx)(r.th,{children:"Solution"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Dialects differ greatly"}),(0,i.jsxs)(r.td,{children:["Route Druid dialects via ",(0,i.jsx)(r.code,{children:"DbType"})," with a unified AST"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Real tables and DDL hide in SQL text"}),(0,i.jsxs)(r.td,{children:["Table, CTE, ",(0,i.jsx)(r.code,{children:"CREATE TABLE"}),", partition and property parsing"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Data dependencies are hard to trace"}),(0,i.jsx)(r.td,{children:"Table/column lineage across JOIN, UNION, subqueries, aggregates and CTEs"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Scripts contain multiple statements"}),(0,i.jsx)(r.td,{children:"SQL splitting and syntax validation"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Permission predicates are hard to maintain"}),(0,i.jsx)(r.td,{children:"Row-level permission SQL rewriting"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"modules",children:"Modules"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Module"}),(0,i.jsx)(r.th,{children:"Layer"}),(0,i.jsx)(r.th,{children:"Description"}),(0,i.jsx)(r.th,{children:"Technology"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-syntax"})}),(0,i.jsx)(r.td,{children:"Syntax parsing"}),(0,i.jsx)(r.td,{children:"SQL-to-AST, validation, splitting and Druid dialect extensions"}),(0,i.jsx)(r.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-core"})}),(0,i.jsx)(r.td,{children:"Business parsing"}),(0,i.jsx)(r.td,{children:"Tables, lineage, DDL, functions and SQL rewriting"}),(0,i.jsxs)(r.td,{children:["Java 8 + ",(0,i.jsx)(r.code,{children:"sqlparserx-syntax"})]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-web"})}),(0,i.jsx)(r.td,{children:"Access layer"}),(0,i.jsx)(r.td,{children:"Spring Boot REST service"}),(0,i.jsx)(r.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sqlparserx-ui"})}),(0,i.jsx)(r.td,{children:"Access layer"}),(0,i.jsx)(r.td,{children:"Lineage visualization and online parsing tools"}),(0,i.jsx)(r.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"supported-datasources",children:"Supported Datasources"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Datasource"}),(0,i.jsx)(r.th,{children:"Support"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"MySQL"}),(0,i.jsxs)(r.td,{children:["Priority support with enhanced ",(0,i.jsx)(r.code,{children:"RENAME TABLE"})," handling"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Doris"}),(0,i.jsx)(r.td,{children:"Strong support with dedicated DDL and lineage tests"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"StarRocks"}),(0,i.jsxs)(r.td,{children:["Dedicated ",(0,i.jsx)(r.code,{children:"DISTRIBUTED BY"})," and key DDL support"]})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,i.jsx)(r.td,{children:"Registered parsers with common business implementation"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"further-reading",children:"Further Reading"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:(0,i.jsx)(r.a,{href:"/SqlParserX/en/docs/about/architecture",children:"Architecture"})}),"\n",(0,i.jsxs)(r.li,{children:["Background: ",(0,i.jsx)(r.a,{href:"/blog/origin-of-sqlparserx",children:"The Origin of SqlParserX"})]}),"\n"]})]})}function h(e={}){let{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453(e,r,t){t.d(r,{R:()=>d,x:()=>l});var s=t(6540);let i={},n=s.createContext(i);function d(e){let r=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/a16ef744.4468786b.js b/en/assets/js/a16ef744.4468786b.js deleted file mode 100644 index c17c0ba..0000000 --- a/en/assets/js/a16ef744.4468786b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9984"],{3349(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>u,frontMatter:()=>o,contentTitle:()=>l,toc:()=>a,assets:()=>c});var i=JSON.parse('{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/en/docs/next/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/contributing.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Contributing","description":"How to contribute to SqlParserX","sidebar_label":"Contributing","sidebar_position":1},"sidebar":"docs","previous":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/next/core/parameter-compile"}}'),s=t(4848),r=t(8453);let o={title:"Contributing",description:"How to contribute to SqlParserX",sidebar_label:"Contributing",sidebar_position:1},l="Contributing",c={},a=[{value:"Ways to Contribute",id:"ways-to-contribute",level:2},{value:"Development Workflow",id:"development-workflow",level:2},{value:"Conventions",id:"conventions",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"contributing",children:"Contributing"})}),"\n",(0,s.jsx)(n.p,{children:"Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome."}),"\n",(0,s.jsx)(n.h2,{id:"ways-to-contribute",children:"Ways to Contribute"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Report bugs or request features: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["Submit code: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Join discussions: see ",(0,s.jsx)(n.a,{href:"/community",children:"Community"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"development-workflow",children:"Development Workflow"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Fork the repo and create a feature branch: ",(0,s.jsx)(n.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,s.jsxs)(n.li,{children:["Build locally: ",(0,s.jsx)(n.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Write code and tests, ensure ",(0,s.jsx)(n.code,{children:"mvn test"})," passes"]}),"\n",(0,s.jsx)(n.li,{children:"Push the branch and open a Pull Request"}),"\n",(0,s.jsx)(n.li,{children:"Merge after CI and review"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conventions",children:"Conventions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Follow the module layering: syntax differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"}),", business differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})]}),"\n",(0,s.jsx)(n.li,{children:"When adding a datasource, also update capability docs and regression tests"}),"\n",(0,s.jsx)(n.li,{children:"Match the existing code style and avoid unrelated dependencies"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Docs are maintained in the project root ",(0,s.jsx)(n.code,{children:"docs/"})," and synced to this site"]}),"\n",(0,s.jsx)(n.li,{children:"Update the relevant capability docs when adding parsing capabilities"}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>o,x:()=>l});var i=t(6540);let s={},r=i.createContext(s);function o(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/a16ef744.604b3864.js b/en/assets/js/a16ef744.604b3864.js new file mode 100644 index 0000000..4f3d09e --- /dev/null +++ b/en/assets/js/a16ef744.604b3864.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9984"],{3349(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>u,frontMatter:()=>o,contentTitle:()=>l,toc:()=>a,assets:()=>c});var i=JSON.parse('{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/en/docs/next/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/contributing.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Contributing","description":"How to contribute to SqlParserX","sidebar_label":"Contributing","sidebar_position":1},"sidebar":"docs","previous":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/next/core/parameter-compile"}}'),s=t(4848),r=t(8453);let o={title:"Contributing",description:"How to contribute to SqlParserX",sidebar_label:"Contributing",sidebar_position:1},l="Contributing",c={},a=[{value:"Ways to Contribute",id:"ways-to-contribute",level:2},{value:"Development Workflow",id:"development-workflow",level:2},{value:"Conventions",id:"conventions",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"contributing",children:"Contributing"})}),"\n",(0,s.jsx)(n.p,{children:"Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome."}),"\n",(0,s.jsx)(n.h2,{id:"ways-to-contribute",children:"Ways to Contribute"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Report bugs or request features: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["Submit code: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Join discussions: see ",(0,s.jsx)(n.a,{href:"/community",children:"Community"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"development-workflow",children:"Development Workflow"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Fork the repo and create a feature branch: ",(0,s.jsx)(n.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,s.jsxs)(n.li,{children:["Build locally: ",(0,s.jsx)(n.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Write code and tests, ensure ",(0,s.jsx)(n.code,{children:"mvn test"})," passes"]}),"\n",(0,s.jsx)(n.li,{children:"Push the branch and open a Pull Request"}),"\n",(0,s.jsx)(n.li,{children:"Merge after CI and review"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conventions",children:"Conventions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Follow the module layering: syntax differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"}),", business differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})]}),"\n",(0,s.jsx)(n.li,{children:"When adding a datasource, also update capability docs and regression tests"}),"\n",(0,s.jsx)(n.li,{children:"Match the existing code style and avoid unrelated dependencies"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Docs are maintained in the project root ",(0,s.jsx)(n.code,{children:"docs/"})," and synced to this site"]}),"\n",(0,s.jsx)(n.li,{children:"Update the relevant capability docs when adding parsing capabilities"}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>o,x:()=>l});var i=t(6540);let s={},r=i.createContext(s);function o(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/a84fc31f.1d7e9083.js b/en/assets/js/a84fc31f.1d7e9083.js deleted file mode 100644 index 05e9a93..0000000 --- a/en/assets/js/a84fc31f.1d7e9083.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9414"],{3893(e,t,r){r.r(t),r.d(t,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>a,assets:()=>c});var s=JSON.parse('{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/en/docs/next/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/about/introduction.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar_label":"Introduction","sidebar_position":1},"sidebar":"docs","previous":{"title":"Docs Guide","permalink":"/SqlParserX/en/docs/next/intro"},"next":{"title":"Architecture","permalink":"/SqlParserX/en/docs/next/about/architecture"}}'),n=r(4848),i=r(8453);let d={title:"Introduction",description:"Positioning, capabilities and modules of SqlParserX",sidebar_label:"Introduction",sidebar_position:1},l="Introduction to SqlParserX",c={},a=[{value:"Problems It Solves",id:"problems-it-solves",level:2},{value:"Modules",id:"modules",level:2},{value:"Supported Datasources",id:"supported-datasources",level:2},{value:"Further Reading",id:"further-reading",level:2}];function o(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"introduction-to-sqlparserx",children:"Introduction to SqlParserX"})}),"\n",(0,n.jsxs)(t.p,{children:["SqlParserX is a ",(0,n.jsx)(t.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," offering SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,n.jsx)(t.h2,{id:"problems-it-solves",children:"Problems It Solves"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Problem"}),(0,n.jsx)(t.th,{children:"Solution"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Dialects differ greatly"}),(0,n.jsxs)(t.td,{children:["Route Druid dialects via ",(0,n.jsx)(t.code,{children:"DbType"})," with a unified AST"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Real tables and DDL hide in SQL text"}),(0,n.jsxs)(t.td,{children:["Table, CTE, ",(0,n.jsx)(t.code,{children:"CREATE TABLE"}),", partition and property parsing"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Data dependencies are hard to trace"}),(0,n.jsx)(t.td,{children:"Table/column lineage across JOIN, UNION, subqueries, aggregates and CTEs"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Scripts contain multiple statements"}),(0,n.jsx)(t.td,{children:"SQL splitting and syntax validation"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Permission predicates are hard to maintain"}),(0,n.jsx)(t.td,{children:"Row-level permission SQL rewriting"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"modules",children:"Modules"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Module"}),(0,n.jsx)(t.th,{children:"Layer"}),(0,n.jsx)(t.th,{children:"Description"}),(0,n.jsx)(t.th,{children:"Technology"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-syntax"})}),(0,n.jsx)(t.td,{children:"Syntax parsing"}),(0,n.jsx)(t.td,{children:"SQL-to-AST, validation, splitting and Druid dialect extensions"}),(0,n.jsx)(t.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-core"})}),(0,n.jsx)(t.td,{children:"Business parsing"}),(0,n.jsx)(t.td,{children:"Tables, lineage, DDL, functions and SQL rewriting"}),(0,n.jsxs)(t.td,{children:["Java 8 + ",(0,n.jsx)(t.code,{children:"sqlparserx-syntax"})]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-web"})}),(0,n.jsx)(t.td,{children:"Access layer"}),(0,n.jsx)(t.td,{children:"Spring Boot REST service"}),(0,n.jsx)(t.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-ui"})}),(0,n.jsx)(t.td,{children:"Access layer"}),(0,n.jsx)(t.td,{children:"Lineage visualization and online parsing tools"}),(0,n.jsx)(t.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"supported-datasources",children:"Supported Datasources"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Datasource"}),(0,n.jsx)(t.th,{children:"Support"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"MySQL"}),(0,n.jsxs)(t.td,{children:["Priority support with enhanced ",(0,n.jsx)(t.code,{children:"RENAME TABLE"})," handling"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Doris"}),(0,n.jsx)(t.td,{children:"Strong support with dedicated DDL and lineage tests"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"StarRocks"}),(0,n.jsxs)(t.td,{children:["Dedicated ",(0,n.jsx)(t.code,{children:"DISTRIBUTED BY"})," and key DDL support"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,n.jsx)(t.td,{children:"Registered parsers with common business implementation"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"further-reading",children:"Further Reading"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"/SqlParserX/en/docs/next/about/architecture",children:"Architecture"})}),"\n",(0,n.jsxs)(t.li,{children:["Background: ",(0,n.jsx)(t.a,{href:"/blog/origin-of-sqlparserx",children:"The Origin of SqlParserX"})]}),"\n"]})]})}function h(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453(e,t,r){r.d(t,{R:()=>d,x:()=>l});var s=r(6540);let n={},i=s.createContext(n);function d(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/a84fc31f.9913e20d.js b/en/assets/js/a84fc31f.9913e20d.js new file mode 100644 index 0000000..af3f146 --- /dev/null +++ b/en/assets/js/a84fc31f.9913e20d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9414"],{3893(e,t,r){r.r(t),r.d(t,{metadata:()=>s,default:()=>h,frontMatter:()=>d,contentTitle:()=>l,toc:()=>a,assets:()=>c});var s=JSON.parse('{"id":"about/introduction","title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/about/introduction.md","sourceDirName":"about","slug":"/about/introduction","permalink":"/SqlParserX/en/docs/next/about/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/about/introduction.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Introduction","description":"Positioning, capabilities and modules of SqlParserX","sidebar_label":"Introduction","sidebar_position":1},"sidebar":"docs","previous":{"title":"Docs Guide","permalink":"/SqlParserX/en/docs/next/intro"},"next":{"title":"Architecture","permalink":"/SqlParserX/en/docs/next/about/architecture"}}'),n=r(4848),i=r(8453);let d={title:"Introduction",description:"Positioning, capabilities and modules of SqlParserX",sidebar_label:"Introduction",sidebar_position:1},l="Introduction to SqlParserX",c={},a=[{value:"Problems It Solves",id:"problems-it-solves",level:2},{value:"Modules",id:"modules",level:2},{value:"Supported Datasources",id:"supported-datasources",level:2},{value:"Further Reading",id:"further-reading",level:2}];function o(e){let t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"introduction-to-sqlparserx",children:"Introduction to SqlParserX"})}),"\n",(0,n.jsxs)(t.p,{children:["SqlParserX is a ",(0,n.jsx)(t.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," offering SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,n.jsx)(t.h2,{id:"problems-it-solves",children:"Problems It Solves"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Problem"}),(0,n.jsx)(t.th,{children:"Solution"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Dialects differ greatly"}),(0,n.jsxs)(t.td,{children:["Route Druid dialects via ",(0,n.jsx)(t.code,{children:"DbType"})," with a unified AST"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Real tables and DDL hide in SQL text"}),(0,n.jsxs)(t.td,{children:["Table, CTE, ",(0,n.jsx)(t.code,{children:"CREATE TABLE"}),", partition and property parsing"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Data dependencies are hard to trace"}),(0,n.jsx)(t.td,{children:"Table/column lineage across JOIN, UNION, subqueries, aggregates and CTEs"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Scripts contain multiple statements"}),(0,n.jsx)(t.td,{children:"SQL splitting and syntax validation"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Permission predicates are hard to maintain"}),(0,n.jsx)(t.td,{children:"Row-level permission SQL rewriting"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"modules",children:"Modules"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Module"}),(0,n.jsx)(t.th,{children:"Layer"}),(0,n.jsx)(t.th,{children:"Description"}),(0,n.jsx)(t.th,{children:"Technology"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-syntax"})}),(0,n.jsx)(t.td,{children:"Syntax parsing"}),(0,n.jsx)(t.td,{children:"SQL-to-AST, validation, splitting and Druid dialect extensions"}),(0,n.jsx)(t.td,{children:"Java 8 + Druid 1.2.28"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-core"})}),(0,n.jsx)(t.td,{children:"Business parsing"}),(0,n.jsx)(t.td,{children:"Tables, lineage, DDL, functions and SQL rewriting"}),(0,n.jsxs)(t.td,{children:["Java 8 + ",(0,n.jsx)(t.code,{children:"sqlparserx-syntax"})]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-web"})}),(0,n.jsx)(t.td,{children:"Access layer"}),(0,n.jsx)(t.td,{children:"Spring Boot REST service"}),(0,n.jsx)(t.td,{children:"Spring Boot 2.3.12 + Java 8"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:(0,n.jsx)(t.code,{children:"sqlparserx-ui"})}),(0,n.jsx)(t.td,{children:"Access layer"}),(0,n.jsx)(t.td,{children:"Lineage visualization and online parsing tools"}),(0,n.jsx)(t.td,{children:"Vue 2.7 + Element UI 2.x + Vite 5 + ECharts 5"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"supported-datasources",children:"Supported Datasources"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Datasource"}),(0,n.jsx)(t.th,{children:"Support"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"MySQL"}),(0,n.jsxs)(t.td,{children:["Priority support with enhanced ",(0,n.jsx)(t.code,{children:"RENAME TABLE"})," handling"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Doris"}),(0,n.jsx)(t.td,{children:"Strong support with dedicated DDL and lineage tests"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"StarRocks"}),(0,n.jsxs)(t.td,{children:["Dedicated ",(0,n.jsx)(t.code,{children:"DISTRIBUTED BY"})," and key DDL support"]})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"Hive / ClickHouse / Oracle / DM"}),(0,n.jsx)(t.td,{children:"Registered parsers with common business implementation"})]})]})]}),"\n",(0,n.jsx)(t.h2,{id:"further-reading",children:"Further Reading"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"/SqlParserX/en/docs/next/about/architecture",children:"Architecture"})}),"\n",(0,n.jsxs)(t.li,{children:["Background: ",(0,n.jsx)(t.a,{href:"/blog/origin-of-sqlparserx",children:"The Origin of SqlParserX"})]}),"\n"]})]})}function h(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453(e,t,r){r.d(t,{R:()=>d,x:()=>l});var s=r(6540);let n={},i=s.createContext(n);function d(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/ac311984.55eb5a96.js b/en/assets/js/ac311984.55eb5a96.js new file mode 100644 index 0000000..df8dbfa --- /dev/null +++ b/en/assets/js/ac311984.55eb5a96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9590"],{7821(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/en/docs/next/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/table-parse.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar_label":"Table Parsing","sidebar_position":3},"sidebar":"docs","previous":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage"},"next":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/next/core/function-parse"}}'),n=s(4848),a=s(8453);let l={title:"Table Parsing",description:"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL",sidebar_label:"Table Parsing",sidebar_position:3},i="Table Parsing",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"table-parsing",children:"Table Parsing"})}),"\n",(0,n.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,n.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,n.jsxs)(r.p,{children:["Using the official ",(0,n.jsx)(r.code,{children:"sqlparserx-core/README.md"}),' sample SQL to demonstrate both "parse real tables" and "parse CREATE TABLE":']}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables in the SQL\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse the CREATE TABLE structure\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("created table: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("column count: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,n.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\ncreated table: null.user_order_summary\ncolumn count: 4\n"})}),"\n",(0,n.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,n.jsxs)(r.p,{children:["Identify ",(0,n.jsx)(r.strong,{children:"real tables"})," from SQL text, including query tables, CTEs, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"})," definitions, partitions and table properties."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 collect tables / CTEs / DDL / partitions / properties\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,n.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Item"}),(0,n.jsx)(r.th,{children:"Content"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Core entry"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),", ",(0,n.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Default impl"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,n.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Return type"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ParseTableResult"}),", ",(0,n.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Coverage"}),(0,n.jsxs)(r.td,{children:["query tables, CTE, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"}),", partitions, properties"]})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Capability"}),(0,n.jsx)(r.th,{children:"Status"}),(0,n.jsx)(r.th,{children:"Notes"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Query table detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"CTE detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"WITH-defined temporary tables"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Table name, columns, types, comments"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Partitions & properties"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Dialect differences internalized in syntax layer"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"catalog.db.table"})}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Multi-catalog scenarios"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>l,x:()=>i});var t=s(6540);let n={},a=t.createContext(n);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/ac311984.eb22d05b.js b/en/assets/js/ac311984.eb22d05b.js deleted file mode 100644 index 6910082..0000000 --- a/en/assets/js/ac311984.eb22d05b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9590"],{7821(e,r,s){s.r(r),s.d(r,{metadata:()=>t,default:()=>p,frontMatter:()=>l,contentTitle:()=>i,toc:()=>c,assets:()=>d});var t=JSON.parse('{"id":"core/table-parse","title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/table-parse.md","sourceDirName":"core","slug":"/core/table-parse","permalink":"/SqlParserX/en/docs/next/core/table-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/table-parse.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Table Parsing","description":"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL","sidebar_label":"Table Parsing","sidebar_position":3},"sidebar":"docs","previous":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage"},"next":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/next/core/function-parse"}}'),n=s(4848),a=s(8453);let l={title:"Table Parsing",description:"Parse real tables, CTEs, CREATE TABLE, partitions and properties from SQL",sidebar_label:"Table Parsing",sidebar_position:3},i="Table Parsing",d={},c=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function o(e){let r={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"table-parsing",children:"Table Parsing"})}),"\n",(0,n.jsx)(r.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"sqlparserx-core"})," transitively brings in ",(0,n.jsx)(r.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,n.jsxs)(r.p,{children:["Using the official ",(0,n.jsx)(r.code,{children:"sqlparserx-core/README.md"}),' sample SQL to demonstrate both "parse real tables" and "parse CREATE TABLE":']}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",metastring:'title="TableParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseCreateTableResult;\nimport com.dtstack.sqlparserx.core.parser.base.table.domain.ParseTableResult;\n\nimport com.alibaba.druid.DbType;\n\npublic class TableParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse real tables in the SQL\n ParseTableResult tableResult = parser.parseTables(sql);\n System.out.println("main table: " + tableResult.getMainTable().getName());\n System.out.println("all tables: " + tableResult.getAllTableName());\n\n // 3. Parse the CREATE TABLE structure\n ParseCreateTableResult createResult = parser.parseCreateTable(sql);\n System.out.println("created table: " + createResult.getDb() + "." + createResult.getTableName());\n System.out.println("column count: " + createResult.getTableElementList().size());\n }\n}\n'})}),"\n",(0,n.jsx)(r.p,{children:"Console output (example):"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"main table: users\nall tables: [user_order_summary, users, orders]\ncreated table: null.user_order_summary\ncolumn count: 4\n"})}),"\n",(0,n.jsx)(r.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,n.jsxs)(r.p,{children:["Identify ",(0,n.jsx)(r.strong,{children:"real tables"})," from SQL text, including query tables, CTEs, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"})," definitions, partitions and table properties."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SQLStatement AST\n \u2192 ParseTableClient.parseTables / parseCreateTable\n \u2192 collect tables / CTEs / DDL / partitions / properties\n \u2192 ParseTableResult / ParseCreateTableResult\n"})}),"\n",(0,n.jsx)(r.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Item"}),(0,n.jsx)(r.th,{children:"Content"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Core entry"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ISqlParser.parseTables(sql)"}),", ",(0,n.jsx)(r.code,{children:"ISqlParser.parseCreateTable(sql)"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Default impl"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"BaseSqlParser.parseTables"})," \u2192 ",(0,n.jsx)(r.code,{children:"ParseTableClient"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Return type"}),(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"ParseTableResult"}),", ",(0,n.jsx)(r.code,{children:"ParseCreateTableResult"})]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Coverage"}),(0,n.jsxs)(r.td,{children:["query tables, CTE, ",(0,n.jsx)(r.code,{children:"CREATE TABLE"}),", partitions, properties"]})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Capability"}),(0,n.jsx)(r.th,{children:"Status"}),(0,n.jsx)(r.th,{children:"Notes"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Query table detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"SELECT / INSERT / UPDATE / DELETE"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"CTE detection"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"WITH-defined temporary tables"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsxs)(r.td,{children:[(0,n.jsx)(r.code,{children:"CREATE TABLE"})," DDL"]}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Table name, columns, types, comments"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Partitions & properties"}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Dialect differences internalized in syntax layer"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:(0,n.jsx)(r.code,{children:"catalog.db.table"})}),(0,n.jsx)(r.td,{children:(0,n.jsx)(r.strong,{children:"Supported \u2705"})}),(0,n.jsx)(r.td,{children:"Multi-catalog scenarios"})]})]})]})]})}function p(e={}){let{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},8453(e,r,s){s.d(r,{R:()=>l,x:()=>i});var t=s(6540);let n={},a=t.createContext(n);function l(e){let r=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(a.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/ac4ff279.267aacc1.js b/en/assets/js/ac4ff279.267aacc1.js new file mode 100644 index 0000000..4e8cc34 --- /dev/null +++ b/en/assets/js/ac4ff279.267aacc1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8222"],{6462(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>u,frontMatter:()=>o,contentTitle:()=>l,toc:()=>a,assets:()=>c});var i=JSON.parse('{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/en/docs/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/contributing.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Contributing","description":"How to contribute to SqlParserX","sidebar_label":"Contributing","sidebar_position":1},"sidebar":"docs","previous":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/core/parameter-compile"}}'),s=t(4848),r=t(8453);let o={title:"Contributing",description:"How to contribute to SqlParserX",sidebar_label:"Contributing",sidebar_position:1},l="Contributing",c={},a=[{value:"Ways to Contribute",id:"ways-to-contribute",level:2},{value:"Development Workflow",id:"development-workflow",level:2},{value:"Conventions",id:"conventions",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"contributing",children:"Contributing"})}),"\n",(0,s.jsx)(n.p,{children:"Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome."}),"\n",(0,s.jsx)(n.h2,{id:"ways-to-contribute",children:"Ways to Contribute"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Report bugs or request features: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["Submit code: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Join discussions: see ",(0,s.jsx)(n.a,{href:"/community",children:"Community"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"development-workflow",children:"Development Workflow"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Fork the repo and create a feature branch: ",(0,s.jsx)(n.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,s.jsxs)(n.li,{children:["Build locally: ",(0,s.jsx)(n.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Write code and tests, ensure ",(0,s.jsx)(n.code,{children:"mvn test"})," passes"]}),"\n",(0,s.jsx)(n.li,{children:"Push the branch and open a Pull Request"}),"\n",(0,s.jsx)(n.li,{children:"Merge after CI and review"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conventions",children:"Conventions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Follow the module layering: syntax differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"}),", business differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})]}),"\n",(0,s.jsx)(n.li,{children:"When adding a datasource, also update capability docs and regression tests"}),"\n",(0,s.jsx)(n.li,{children:"Match the existing code style and avoid unrelated dependencies"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Docs are maintained in the project root ",(0,s.jsx)(n.code,{children:"docs/"})," and synced to this site"]}),"\n",(0,s.jsx)(n.li,{children:"Update the relevant capability docs when adding parsing capabilities"}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>o,x:()=>l});var i=t(6540);let s={},r=i.createContext(s);function o(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/ac4ff279.5ca528d4.js b/en/assets/js/ac4ff279.5ca528d4.js deleted file mode 100644 index 68f7ef9..0000000 --- a/en/assets/js/ac4ff279.5ca528d4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["8222"],{6462(e,n,t){t.r(n),t.d(n,{metadata:()=>i,default:()=>u,frontMatter:()=>o,contentTitle:()=>l,toc:()=>a,assets:()=>c});var i=JSON.parse('{"id":"contributing","title":"Contributing","description":"How to contribute to SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/contributing.md","sourceDirName":".","slug":"/contributing","permalink":"/SqlParserX/en/docs/contributing","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/contributing.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"Contributing","description":"How to contribute to SqlParserX","sidebar_label":"Contributing","sidebar_position":1},"sidebar":"docs","previous":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/core/parameter-compile"}}'),s=t(4848),r=t(8453);let o={title:"Contributing",description:"How to contribute to SqlParserX",sidebar_label:"Contributing",sidebar_position:1},l="Contributing",c={},a=[{value:"Ways to Contribute",id:"ways-to-contribute",level:2},{value:"Development Workflow",id:"development-workflow",level:2},{value:"Conventions",id:"conventions",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"contributing",children:"Contributing"})}),"\n",(0,s.jsx)(n.p,{children:"Thanks for your interest in SqlParserX! Issues and Pull Requests are welcome."}),"\n",(0,s.jsx)(n.h2,{id:"ways-to-contribute",children:"Ways to Contribute"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Report bugs or request features: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/issues",children:"GitHub Issues"})]}),"\n",(0,s.jsxs)(n.li,{children:["Submit code: ",(0,s.jsx)(n.a,{href:"https://github.com/DTStack/SqlParserX/pulls",children:"GitHub Pull Requests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Join discussions: see ",(0,s.jsx)(n.a,{href:"/community",children:"Community"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"development-workflow",children:"Development Workflow"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Fork the repo and create a feature branch: ",(0,s.jsx)(n.code,{children:"git checkout -b feature/xxx"})]}),"\n",(0,s.jsxs)(n.li,{children:["Build locally: ",(0,s.jsx)(n.code,{children:"mvn clean install -DskipTests"})]}),"\n",(0,s.jsxs)(n.li,{children:["Write code and tests, ensure ",(0,s.jsx)(n.code,{children:"mvn test"})," passes"]}),"\n",(0,s.jsx)(n.li,{children:"Push the branch and open a Pull Request"}),"\n",(0,s.jsx)(n.li,{children:"Merge after CI and review"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"conventions",children:"Conventions"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Follow the module layering: syntax differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"}),", business differences \u2192 ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})]}),"\n",(0,s.jsx)(n.li,{children:"When adding a datasource, also update capability docs and regression tests"}),"\n",(0,s.jsx)(n.li,{children:"Match the existing code style and avoid unrelated dependencies"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Docs are maintained in the project root ",(0,s.jsx)(n.code,{children:"docs/"})," and synced to this site"]}),"\n",(0,s.jsx)(n.li,{children:"Update the relevant capability docs when adding parsing capabilities"}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>o,x:()=>l});var i=t(6540);let s={},r=i.createContext(s);function o(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/c61d1296.5cb6898e.js b/en/assets/js/c61d1296.5cb6898e.js deleted file mode 100644 index 8f3ca7c..0000000 --- a/en/assets/js/c61d1296.5cb6898e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3224"],{9246(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>o,contentTitle:()=>a,toc:()=>c,assets:()=>l});var t=JSON.parse('{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/en/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/intro.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar_label":"Docs Guide","sidebar_position":1},"sidebar":"docs","next":{"title":"Introduction","permalink":"/SqlParserX/en/docs/about/introduction"}}'),s=r(4848),i=r(8453);let o={title:"SqlParserX Docs",description:"Entry point for the SqlParserX multi-dialect SQL parsing engine",sidebar_label:"Docs Guide",sidebar_position:1},a="Welcome to SqlParserX",l={},c=[{value:"Get Started",id:"get-started",level:2},{value:"Documentation Map",id:"documentation-map",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"welcome-to-sqlparserx",children:"Welcome to SqlParserX"})}),"\n",(0,s.jsxs)(n.p,{children:["SqlParserX is a ",(0,s.jsx)(n.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," for SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,s.jsxs)(n.p,{children:["It is built around two layers: ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," parses SQL into Druid ASTs and owns syntax extensions; ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})," consumes those ASTs through the unified ",(0,s.jsx)(n.code,{children:"ISqlParser"})," contract and produces business parsing results. ",(0,s.jsx)(n.code,{children:"sqlparserx-web"})," and ",(0,s.jsx)(n.code,{children:"sqlparserx-ui"})," provide service and visualization access."]}),"\n",(0,s.jsx)(n.h2,{id:"get-started",children:"Get Started"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u{1F680} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/quickstart/setup",children:"Quick Start"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F4D6} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/about/introduction",children:"Introduction"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F3D7}\uFE0F ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/about/architecture",children:"Architecture"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation-map",children:"Documentation Map"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"About SqlParserX"}),": project introduction and two-layer architecture"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Quick Start"}),": environment setup, build and run"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Core Parsing Capabilities"}),": SQL type detection, field lineage, table lineage, table parsing, function extraction, and parameter extraction"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Contributing"}),": how to contribute"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[":::tip Tip\nUse the navbar to switch ",(0,s.jsx)(n.strong,{children:"version"})," (",(0,s.jsx)(n.code,{children:"1.0"})," / ",(0,s.jsx)(n.code,{children:"Next"}),") and ",(0,s.jsx)(n.strong,{children:"language"})," (\u7B80\u4F53\u4E2D\u6587 / English).\n:::"]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,r){r.d(n,{R:()=>o,x:()=>a});var t=r(6540);let s={},i=t.createContext(s);function o(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/c61d1296.6ae31ced.js b/en/assets/js/c61d1296.6ae31ced.js new file mode 100644 index 0000000..e80025a --- /dev/null +++ b/en/assets/js/c61d1296.6ae31ced.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3224"],{9246(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>o,contentTitle:()=>a,toc:()=>c,assets:()=>l});var t=JSON.parse('{"id":"intro","title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/intro.md","sourceDirName":".","slug":"/intro","permalink":"/SqlParserX/en/docs/intro","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/intro.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SqlParserX Docs","description":"Entry point for the SqlParserX multi-dialect SQL parsing engine","sidebar_label":"Docs Guide","sidebar_position":1},"sidebar":"docs","next":{"title":"Introduction","permalink":"/SqlParserX/en/docs/about/introduction"}}'),s=r(4848),i=r(8453);let o={title:"SqlParserX Docs",description:"Entry point for the SqlParserX multi-dialect SQL parsing engine",sidebar_label:"Docs Guide",sidebar_position:1},a="Welcome to SqlParserX",l={},c=[{value:"Get Started",id:"get-started",level:2},{value:"Documentation Map",id:"documentation-map",level:2}];function d(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"welcome-to-sqlparserx",children:"Welcome to SqlParserX"})}),"\n",(0,s.jsxs)(n.p,{children:["SqlParserX is a ",(0,s.jsx)(n.strong,{children:"multi-dialect SQL parsing engine and toolkit"})," for SQL type detection, table/DDL parsing, table and column lineage, function extraction, parameter extraction, and prepared SQL generation."]}),"\n",(0,s.jsxs)(n.p,{children:["It is built around two layers: ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," parses SQL into Druid ASTs and owns syntax extensions; ",(0,s.jsx)(n.code,{children:"sqlparserx-core"})," consumes those ASTs through the unified ",(0,s.jsx)(n.code,{children:"ISqlParser"})," contract and produces business parsing results. ",(0,s.jsx)(n.code,{children:"sqlparserx-web"})," and ",(0,s.jsx)(n.code,{children:"sqlparserx-ui"})," provide service and visualization access."]}),"\n",(0,s.jsx)(n.h2,{id:"get-started",children:"Get Started"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\u{1F680} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/quickstart/setup",children:"Quick Start"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F4D6} ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/about/introduction",children:"Introduction"})]}),"\n",(0,s.jsxs)(n.li,{children:["\u{1F3D7}\uFE0F ",(0,s.jsx)(n.a,{href:"/SqlParserX/en/docs/about/architecture",children:"Architecture"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"documentation-map",children:"Documentation Map"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"About SqlParserX"}),": project introduction and two-layer architecture"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Quick Start"}),": environment setup, build and run"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Core Parsing Capabilities"}),": SQL type detection, field lineage, table lineage, table parsing, function extraction, and parameter extraction"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Contributing"}),": how to contribute"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[":::tip Tip\nUse the navbar to switch ",(0,s.jsx)(n.strong,{children:"version"})," (",(0,s.jsx)(n.code,{children:"1.0"})," / ",(0,s.jsx)(n.code,{children:"Next"}),") and ",(0,s.jsx)(n.strong,{children:"language"})," (\u7B80\u4F53\u4E2D\u6587 / English).\n:::"]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,r){r.d(n,{R:()=>o,x:()=>a});var t=r(6540);let s={},i=t.createContext(s);function o(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/d611a6ba.4cd3e7d8.js b/en/assets/js/d611a6ba.4cd3e7d8.js new file mode 100644 index 0000000..71420ad --- /dev/null +++ b/en/assets/js/d611a6ba.4cd3e7d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9794"],{3354(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>c,toc:()=>o,assets:()=>l});var t=JSON.parse('{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/en/docs/next/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/about/architecture.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar_label":"Architecture","sidebar_position":2},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/SqlParserX/en/docs/next/about/introduction"},"next":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/next/quickstart/setup"}}'),s=n(4848),i=n(8453);let a={title:"Architecture",description:"The two-layer unified extension architecture of SqlParserX",sidebar_label:"Architecture",sidebar_position:2},c="Two-Layer Unified Extension Architecture",l={},o=[{value:"Overall Architecture",id:"overall-architecture",level:2},{value:"Module Dependencies",id:"module-dependencies",level:2}];function d(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"two-layer-unified-extension-architecture",children:"Two-Layer Unified Extension Architecture"})}),"\n",(0,s.jsx)(r.p,{children:"The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SQL syntax layer (",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"}),")"]}),": built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SqlParserX business layer (",(0,s.jsx)(r.code,{children:"sqlparserx-core"}),")"]}),": extending table parsing, lineage and SQL rewriting per datasource through unified dialect routing, the ",(0,s.jsx)(r.code,{children:"ISqlParser"})," contract and business clients."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Both layers follow the pattern ",(0,s.jsx)(r.strong,{children:"unified entry \u2192 common base \u2192 unified extension point \u2192 datasource implementation \u2192 unified result"}),". When adding a datasource, syntax differences are extended in the Druid layer and business differences in the SqlParserX layer, aligned via ",(0,s.jsx)(r.code,{children:"DbType"})," and Druid AST."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"SqlParserX two-layer unified extension architecture",src:n(702).A+"",width:"1421",height:"1107"})}),"\n",(0,s.jsx)(r.h2,{id:"overall-architecture",children:"Overall Architecture"}),"\n",(0,s.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CBusiness parsing layer]\n direction LR\n B_ROUTE[Dialect routing
    SqlParserFactory]\n B_BASE[Common base
    ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[Extension points
    Dialect Client \xb7 Strategy]\n B_DIALECT[Datasource implementations
    MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[Unified results
    Table \xb7 DDL \xb7 Lineage \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSyntax parsing layer, on Druid]\n direction LR\n S_ROUTE[Dialect routing
    SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[Common base
    Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[Extension points
    Dialect Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[Datasource implementations
    MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[Unified results
    SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType alignment .-> S_ROUTE\n B_DIALECT -. same datasource dialect .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,s.jsx)(r.h2,{id:"module-dependencies",children:"Module Dependencies"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Business extensions follow ",(0,s.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,s.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,s.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 dialect implementations."]})]})}function u(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},702(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-en-710c1c16b39bd3885dfe50d51143759f.png"},8453(e,r,n){n.d(r,{R:()=>a,x:()=>c});var t=n(6540);let s={},i=t.createContext(s);function a(e){let r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/d611a6ba.91ee51b6.js b/en/assets/js/d611a6ba.91ee51b6.js deleted file mode 100644 index 346b872..0000000 --- a/en/assets/js/d611a6ba.91ee51b6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["9794"],{3354(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>c,toc:()=>o,assets:()=>l});var t=JSON.parse('{"id":"about/architecture","title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/about/architecture.md","sourceDirName":"about","slug":"/about/architecture","permalink":"/SqlParserX/en/docs/next/about/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/about/architecture.md","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"title":"Architecture","description":"The two-layer unified extension architecture of SqlParserX","sidebar_label":"Architecture","sidebar_position":2},"sidebar":"docs","previous":{"title":"Introduction","permalink":"/SqlParserX/en/docs/next/about/introduction"},"next":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/next/quickstart/setup"}}'),s=n(4848),i=n(8453);let a={title:"Architecture",description:"The two-layer unified extension architecture of SqlParserX",sidebar_label:"Architecture",sidebar_position:2},c="Two-Layer Unified Extension Architecture",l={},o=[{value:"Overall Architecture",id:"overall-architecture",level:2},{value:"Module Dependencies",id:"module-dependencies",level:2}];function d(e){let r={code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"two-layer-unified-extension-architecture",children:"Two-Layer Unified Extension Architecture"})}),"\n",(0,s.jsx)(r.p,{children:"The SqlParserX parsing kernel consists of two connected, structurally symmetric extension systems, each in its own Jar module:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SQL syntax layer (",(0,s.jsx)(r.code,{children:"sqlparserx-syntax"}),")"]}),": built on official Druid, extending Lexer, StatementParser and AST nodes per datasource through unified dialect routing, parser base and AST model."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsxs)(r.strong,{children:["SqlParserX business layer (",(0,s.jsx)(r.code,{children:"sqlparserx-core"}),")"]}),": extending table parsing, lineage and SQL rewriting per datasource through unified dialect routing, the ",(0,s.jsx)(r.code,{children:"ISqlParser"})," contract and business clients."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["Both layers follow the pattern ",(0,s.jsx)(r.strong,{children:"unified entry \u2192 common base \u2192 unified extension point \u2192 datasource implementation \u2192 unified result"}),". When adding a datasource, syntax differences are extended in the Druid layer and business differences in the SqlParserX layer, aligned via ",(0,s.jsx)(r.code,{children:"DbType"})," and Druid AST."]}),"\n",(0,s.jsx)(r.p,{children:(0,s.jsx)(r.img,{alt:"SqlParserX two-layer unified extension architecture",src:n(702).A+"",width:"1421",height:"1107"})}),"\n",(0,s.jsx)(r.h2,{id:"overall-architecture",children:"Overall Architecture"}),"\n",(0,s.jsx)(r.mermaid,{value:"flowchart TB\n subgraph Business[sqlparserx-core\uFF5CBusiness parsing layer]\n direction LR\n B_ROUTE[Dialect routing
    SqlParserFactory]\n B_BASE[Common base
    ISqlParser \xb7 BaseSqlParser \xb7 Base Client]\n B_EXT[Extension points
    Dialect Client \xb7 Strategy]\n B_DIALECT[Datasource implementations
    MySQL \xb7 Doris \xb7 StarRocks \xb7 ...]\n B_RESULT[Unified results
    Table \xb7 DDL \xb7 Lineage \xb7 SQL]\n B_ROUTE --\x3e B_BASE --\x3e B_EXT --\x3e B_DIALECT --\x3e B_RESULT\n end\n\n subgraph Syntax[sqlparserx-syntax\uFF5CSyntax parsing layer, on Druid]\n direction LR\n S_ROUTE[Dialect routing
    SqlSyntaxParserFactory \xb7 DbType]\n S_BASE[Common base
    Lexer \xb7 StatementParser \xb7 AST]\n S_EXT[Extension points
    Dialect Lexer \xb7 Parser \xb7 AST Node]\n S_DIALECT[Datasource implementations
    MySQL \xb7 Doris \xb7 Oracle \xb7 ...]\n S_RESULT[Unified results
    SQLStatement AST]\n S_ROUTE --\x3e S_BASE --\x3e S_EXT --\x3e S_DIALECT --\x3e S_RESULT\n end\n\n B_ROUTE -. DbType alignment .-> S_ROUTE\n B_DIALECT -. same datasource dialect .-> S_DIALECT\n B_BASE --\x3e|SQL + DbType| S_BASE\n S_RESULT --\x3e|SQLStatement AST| B_BASE"}),"\n",(0,s.jsx)(r.h2,{id:"module-dependencies",children:"Module Dependencies"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-text",children:"Access: sqlparserx-web (REST) / sqlparserx-ui\n \u2502 unified ISqlParser contract\nBusiness layer: sqlparserx-core\n \u2502 SQL + DbType / SQLStatement AST\nSyntax layer: sqlparserx-syntax (Druid 1.2.28)\n"})}),"\n",(0,s.jsxs)(r.p,{children:["Business extensions follow ",(0,s.jsx)(r.code,{children:"SqlParserFactory"})," \u2192 ",(0,s.jsx)(r.code,{children:"ISqlParser"})," \u2192 ",(0,s.jsx)(r.code,{children:"BaseSqlParser"})," \u2192 dialect implementations."]})]})}function u(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},702(e,r,n){n.d(r,{A:()=>t});let t=n.p+"assets/images/SqlParserX\u4E24\u5C42\u67B6\u6784-en-710c1c16b39bd3885dfe50d51143759f.png"},8453(e,r,n){n.d(r,{R:()=>a,x:()=>c});var t=n(6540);let s={},i=t.createContext(s);function a(e){let r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/dae5e6b9.4ce7d350.js b/en/assets/js/dae5e6b9.4ce7d350.js deleted file mode 100644 index a151ab8..0000000 --- a/en/assets/js/dae5e6b9.4ce7d350.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1811"],{9721(e,r,t){t.r(r),t.d(r,{metadata:()=>a,default:()=>p,frontMatter:()=>i,contentTitle:()=>o,toc:()=>c,assets:()=>l});var a=JSON.parse('{"id":"core/parameter-compile","title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/en/docs/next/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/parameter-compile.md","tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","sidebar_label":"Parameter Extraction","sidebar_position":6},"sidebar":"docs","previous":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/next/core/function-parse"},"next":{"title":"Contributing","permalink":"/SqlParserX/en/docs/next/contributing"}}'),n=t(4848),s=t(8453);let i={title:"Parameter Extraction and Prepared SQL",description:"Extract dynamic SELECT parameters and build JDBC prepared SQL",sidebar_label:"Parameter Extraction",sidebar_position:6},o="Parameter Extraction and Prepared SQL",l={},c=[];function d(e){let r={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"parameter-extraction-and-prepared-sql",children:"Parameter Extraction and Prepared SQL"})}),"\n",(0,n.jsxs)(r.p,{children:["SqlParserX extracts ",(0,n.jsx)(r.code,{children:"${variable}"})," expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ",(0,n.jsx)(r.code,{children:"?"})," placeholders and an ordered binding list."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\n\nMap values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,n.jsx)(r.p,{children:"The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined."})]})}function p(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453(e,r,t){t.d(r,{R:()=>i,x:()=>o});var a=t(6540);let n={},s=a.createContext(n);function i(e){let r=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),a.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/dae5e6b9.c9da5438.js b/en/assets/js/dae5e6b9.c9da5438.js new file mode 100644 index 0000000..4a51ddc --- /dev/null +++ b/en/assets/js/dae5e6b9.c9da5438.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["1811"],{9721(e,r,t){t.r(r),t.d(r,{metadata:()=>a,default:()=>p,frontMatter:()=>i,contentTitle:()=>o,toc:()=>c,assets:()=>l});var a=JSON.parse('{"id":"core/parameter-compile","title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/parameter-compile.md","sourceDirName":"core","slug":"/core/parameter-compile","permalink":"/SqlParserX/en/docs/next/core/parameter-compile","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/parameter-compile.md","tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"title":"Parameter Extraction and Prepared SQL","description":"Extract dynamic SELECT parameters and build JDBC prepared SQL","sidebar_label":"Parameter Extraction","sidebar_position":6},"sidebar":"docs","previous":{"title":"Function Parsing","permalink":"/SqlParserX/en/docs/next/core/function-parse"},"next":{"title":"Contributing","permalink":"/SqlParserX/en/docs/next/contributing"}}'),n=t(4848),s=t(8453);let i={title:"Parameter Extraction and Prepared SQL",description:"Extract dynamic SELECT parameters and build JDBC prepared SQL",sidebar_label:"Parameter Extraction",sidebar_position:6},o="Parameter Extraction and Prepared SQL",l={},c=[];function d(e){let r={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"parameter-extraction-and-prepared-sql",children:"Parameter Extraction and Prepared SQL"})}),"\n",(0,n.jsxs)(r.p,{children:["SqlParserX extracts ",(0,n.jsx)(r.code,{children:"${variable}"})," expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ",(0,n.jsx)(r.code,{children:"?"})," placeholders and an ordered binding list."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\nString sql = "SELECT id, name FROM users "\n + "WHERE dt = \'${bizdate}\' AND region = \'${region}\'";\n\nParseParameterResult parsed = parser.parseParameterSql(\n sql, false, Collections.emptyMap());\n\nMap values = new HashMap<>();\nvalues.put("bizdate", "20261014");\nvalues.put("region", "hangzhou");\n\nPrepareCompileResult compiled = parser.buildSqlByPrepareCompile(\n sql, values, Collections.emptyMap());\nSystem.out.println(compiled.getBeautifulSql());\nSystem.out.println(compiled.getInputFields());\n'})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-text",children:"SELECT id, name FROM users WHERE dt = ? AND region = ?\n[20261014, hangzhou]\n"})}),"\n",(0,n.jsx)(r.p,{children:"The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined."})]})}function p(e={}){let{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453(e,r,t){t.d(r,{R:()=>i,x:()=>o});var a=t(6540);let n={},s=a.createContext(n);function i(e){let r=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),a.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e539d78b.ad039c37.js b/en/assets/js/e539d78b.ad039c37.js new file mode 100644 index 0000000..7be6b69 --- /dev/null +++ b/en/assets/js/e539d78b.ad039c37.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5301"],{8432(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>o,assets:()=>d});var t=JSON.parse('{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/field-lineage.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar_label":"Field Lineage","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/next/core/sql-type"},"next":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage"}}'),s=r(4848),l=r(8453);let a={title:"Field Lineage",description:"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL",sidebar_label:"Field Lineage",sidebar_position:1},i="Field Lineage",d={},o=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function c(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"field-lineage",children:"Field Lineage"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"complete runnable"})," class from parser creation to printing column lineage, using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Metadata: table -> columns (used for select * / column expansion)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3. Parse column lineage\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4. Print result: target table + target column -> source column\n System.out.println("target table: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"target table: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Derive ",(0,s.jsx)(n.strong,{children:"source table.column \u2192 target table.column"})," column-level lineage from SQL."]}),"\n",(0,s.jsxs)(n.p,{children:["The core idea: normalize the source select field list and target field list into sets of ",(0,s.jsx)(n.code,{children:"(real column, alias, real table)"})," triples, then generate lineage by fixed matching rules. Field lineage takes insert/create-table SQL as input; pure query SQL produces no lineage."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 target column list + source select column list\n \u2192 addColumnRelations match one by one\n \u2192 ColumnLineageResult\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,s.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"ColumnLineageResult"})," (",(0,s.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,s.jsx)(n.code,{children:"getColumnLineages()"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Applicable"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"SQLInsertStatement"}),", ",(0,s.jsx)(n.code,{children:"SQLCreateTableStatement"})," (AS SELECT)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Metadata input"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Map> tableColumnsMap"})})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"catalog.db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Multi-catalog scenarios such as Hive/Trino/StarRocks"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Standard MySQL/PostgreSQL usage"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:["Column expressions (",(0,s.jsx)(n.code,{children:"SQLBinaryOpExpr"}),")"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"t5.level + 1"}),", recursively collect columns"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"*"})," / ",(0,s.jsx)(n.code,{children:"xx.*"})," expansion"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["Read from metadata ",(0,s.jsx)(n.code,{children:"tableColumnsMap"}),"; keep ",(0,s.jsx)(n.code,{children:"*"})," without metadata"]})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>a,x:()=>i});var t=r(6540);let s={},l=t.createContext(s);function a(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e539d78b.e0feac5b.js b/en/assets/js/e539d78b.e0feac5b.js deleted file mode 100644 index b26d737..0000000 --- a/en/assets/js/e539d78b.e0feac5b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["5301"],{8432(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>a,contentTitle:()=>i,toc:()=>o,assets:()=>d});var t=JSON.parse('{"id":"core/field-lineage","title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/field-lineage.md","sourceDirName":"core","slug":"/core/field-lineage","permalink":"/SqlParserX/en/docs/next/core/field-lineage","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/field-lineage.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"title":"Field Lineage","description":"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL","sidebar_label":"Field Lineage","sidebar_position":1},"sidebar":"docs","previous":{"title":"SQL Type Detection","permalink":"/SqlParserX/en/docs/next/core/sql-type"},"next":{"title":"Table Lineage","permalink":"/SqlParserX/en/docs/next/core/table-lineage"}}'),s=r(4848),l=r(8453);let a={title:"Field Lineage",description:"Derive source.table.source_column \u2192 target.table.target_column lineage from SQL",sidebar_label:"Field Lineage",sidebar_position:1},i="Field Lineage",d={},o=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function c(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"field-lineage",children:"Field Lineage"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"complete runnable"})," class from parser creation to printing column lineage, using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FieldLineageDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.Column;\nimport com.dtstack.sqlparserx.core.parser.base.lineage.column.ColumnLineageResult;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class FieldLineageDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Metadata: table -> columns (used for select * / column expansion)\n Map> tableColumnsMap = new HashMap<>();\n tableColumnsMap.put("users", Arrays.asList(\n new Column("id", 0), new Column("name", 1)));\n tableColumnsMap.put("orders", Arrays.asList(\n new Column("amount", 0), new Column("id", 1)));\n\n // 2. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 3. Parse column lineage\n ColumnLineageResult result = parser.parseColumnLineages(sql, tableColumnsMap);\n\n // 4. Print result: target table + target column -> source column\n System.out.println("target table: " + result.getTargetTable());\n result.printColumnLineage();\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"target table: user_order_summary\nusers.id -> user_order_summary.user_id\nusers.name -> user_order_summary.name\norders.amount -> user_order_summary.total_amount\norders.id -> user_order_summary.order_count\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Derive ",(0,s.jsx)(n.strong,{children:"source table.column \u2192 target table.column"})," column-level lineage from SQL."]}),"\n",(0,s.jsxs)(n.p,{children:["The core idea: normalize the source select field list and target field list into sets of ",(0,s.jsx)(n.code,{children:"(real column, alias, real table)"})," triples, then generate lineage by fixed matching rules. Field lineage takes insert/create-table SQL as input; pure query SQL produces no lineage."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLInsertStatement / SQLCreateTableStatement(AS SELECT)\n \u2192 ColumnLineageClient.parseColumnLineages\n \u2192 target column list + source select column list\n \u2192 addColumnRelations match one by one\n \u2192 ColumnLineageResult\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseColumnLineages(sql, tableColumnsMap)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"BaseSqlParser.parseColumnLineages"})," \u2192 ",(0,s.jsx)(n.code,{children:"ColumnLineageClient"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"ColumnLineageResult"})," (",(0,s.jsx)(n.code,{children:"getColumnRelations()"})," + ",(0,s.jsx)(n.code,{children:"getColumnLineages()"}),")"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Applicable"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"SQLInsertStatement"}),", ",(0,s.jsx)(n.code,{children:"SQLCreateTableStatement"})," (AS SELECT)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Metadata input"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"Map> tableColumnsMap"})})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"catalog.db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Multi-catalog scenarios such as Hive/Trino/StarRocks"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"db.table.column"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Standard MySQL/PostgreSQL usage"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:["Column expressions (",(0,s.jsx)(n.code,{children:"SQLBinaryOpExpr"}),")"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"t5.level + 1"}),", recursively collect columns"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"*"})," / ",(0,s.jsx)(n.code,{children:"xx.*"})," expansion"]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["Read from metadata ",(0,s.jsx)(n.code,{children:"tableColumnsMap"}),"; keep ",(0,s.jsx)(n.code,{children:"*"})," without metadata"]})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453(e,n,r){r.d(n,{R:()=>a,x:()=>i});var t=r(6540);let s={},l=t.createContext(s);function a(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e65be245.ce1b26fe.js b/en/assets/js/e65be245.ce1b26fe.js new file mode 100644 index 0000000..6b5052a --- /dev/null +++ b/en/assets/js/e65be245.ce1b26fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3080"],{1090(e,t,s){s.r(t),s.d(t,{metadata:()=>r,default:()=>d,frontMatter:()=>a,contentTitle:()=>o,toc:()=>l,assets:()=>c});var r=JSON.parse('{"id":"core/sql-type","title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/en/docs/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/versioned_docs/version-1.0/core/sql-type.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","sidebar_label":"SQL Type Detection","sidebar_position":1},"sidebar":"docs","previous":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/quickstart/setup"},"next":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/core/field-lineage"}}'),n=s(4848),i=s(8453);let a={title:"SQL Type Detection",description:"Detect the business SQL type from the parsed syntax tree",sidebar_label:"SQL Type Detection",sidebar_position:1},o="SQL Type Detection",c={},l=[];function p(e){let t={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"sql-type-detection",children:"SQL Type Detection"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"parseSqlType"})," parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified ",(0,n.jsx)(t.code,{children:"SqlType"}),". It can drive statement routing, audit classification, and execution policies."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,n.jsxs)(t.p,{children:["The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns ",(0,n.jsx)(t.code,{children:"OTHER"}),"; syntax support still depends on the selected dialect."]})]})}function d(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},8453(e,t,s){s.d(t,{R:()=>a,x:()=>o});var r=s(6540);let n={},i=r.createContext(n);function a(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e65be245.f35e9887.js b/en/assets/js/e65be245.f35e9887.js deleted file mode 100644 index 045af06..0000000 --- a/en/assets/js/e65be245.f35e9887.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["3080"],{1090(e,t,s){s.r(t),s.d(t,{metadata:()=>r,default:()=>d,frontMatter:()=>a,contentTitle:()=>o,toc:()=>l,assets:()=>c});var r=JSON.parse('{"id":"core/sql-type","title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","source":"@site/i18n/en/docusaurus-plugin-content-docs/version-1.0/core/sql-type.md","sourceDirName":"core","slug":"/core/sql-type","permalink":"/SqlParserX/en/docs/core/sql-type","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/versioned_docs/version-1.0/core/sql-type.md","tags":[],"version":"1.0","sidebarPosition":1,"frontMatter":{"title":"SQL Type Detection","description":"Detect the business SQL type from the parsed syntax tree","sidebar_label":"SQL Type Detection","sidebar_position":1},"sidebar":"docs","previous":{"title":"Setup & Build","permalink":"/SqlParserX/en/docs/quickstart/setup"},"next":{"title":"Field Lineage","permalink":"/SqlParserX/en/docs/core/field-lineage"}}'),n=s(4848),i=s(8453);let a={title:"SQL Type Detection",description:"Detect the business SQL type from the parsed syntax tree",sidebar_label:"SQL Type Detection",sidebar_position:1},o="SQL Type Detection",c={},l=[];function p(e){let t={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"sql-type-detection",children:"SQL Type Detection"})}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"parseSqlType"})," parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified ",(0,n.jsx)(t.code,{children:"SqlType"}),". It can drive statement routing, audit classification, and execution policies."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-java",children:'ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);\n\nSqlType queryType = parser.parseSqlType("SELECT id FROM users");\nSqlType insertType = parser.parseSqlType(\n "INSERT INTO target_table SELECT id FROM source_table");\n\nSystem.out.println(queryType); // QUERY\nSystem.out.println(insertType); // INSERT\n'})}),"\n",(0,n.jsxs)(t.p,{children:["The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns ",(0,n.jsx)(t.code,{children:"OTHER"}),"; syntax support still depends on the selected dialect."]})]})}function d(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},8453(e,t,s){s.d(t,{R:()=>a,x:()=>o});var r=s(6540);let n={},i=r.createContext(n);function a(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e9caf4bd.325d73b3.js b/en/assets/js/e9caf4bd.325d73b3.js new file mode 100644 index 0000000..1887fcd --- /dev/null +++ b/en/assets/js/e9caf4bd.325d73b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2030"],{7846(n){n.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"origin-of-sqlparserx","metadata":{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false},"content":"> \u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28\\n>\\n> \u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\\n> \u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 [SqlParserX \u4ED3\u5E93](https://github.com/DTStack/SqlParserX)\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 [\u67B6\u6784\u8BBE\u8BA1](/docs/about/architecture)\u3002\\n\\n{/* truncate */}\\n\\n## \u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668\\n\\n### 1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668\\n\\n\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F**\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784**\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002\\n\\n\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F**\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32**\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002\\n\\n\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 `x = (a + b) * 3` \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 `a + b`\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 `x`\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002\\n\\n```sql\\n// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\\n\\n [=]\\n / \\\\\\n [x] [*]\\n / \\\\\\n [+] [3]\\n / \\\\\\n [a] [b]\\n\\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\\n```\\n\\n\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002\\n\\n```sql\\n// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\\n [if]\\n / \\\\\\n [>] [block]\\n / \\\\ \\\\\\n[x] [0] [=]\\n / \\\\\\n [y] [10]\\n\\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\\n```\\n\\n**\u89E3\u6790\u5668\u7684\u4F5C\u7528**\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002\\n\\n### 1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668\\n\\n\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F**\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790**\uFF1A\\n\\n- **\u8BCD\u6CD5\u5206\u6790**\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002\\n- **\u8BED\u6CD5\u5206\u6790**\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002\\n\\n```sql\\n\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\\n\\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\\n1 INTEGER \u6574\u6570 1\\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\\n2 INTEGER \u6574\u6570 2\\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\\n3 INTEGER \u6574\u6570 3\\n\\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\\n\\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\\n [+]\\n / \\\\\\n 1 [*]\\n / \\\\\\n 2 3\\n```\\n\\n\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A\\n\\n- **\u65B9\u5F0F\u4E00**\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002\\n- **\u65B9\u5F0F\u4E8C**\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002\\n\\n### 1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668\\n\\nSQL \u89E3\u6790\u5668\u662F**\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6**\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002\\n\\n```sql\\n# \u67E5\u8BE2\\nSELECT * FROM users WHERE status = \'active\';\\n# \u63D2\u5165\\nINSERT INTO customers (name, email) VALUES (\'\u674E\u56DB\', \'lisi@example.com\');\\n# \u66F4\u65B0\\nUPDATE products SET price = 5999 WHERE id = 1001;\\n# \u5220\u9664\\nDELETE FROM logs WHERE create_time < \'2024-01-01\';\\n# \u521B\u5EFA\u8868\\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\\n# \u4FEE\u6539\u8868\\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\\n# \u5220\u9664\u8868\\nDROP TABLE temp_data;\\n# \u6388\u6743\\nGRANT SELECT ON customers TO user1;\\n```\\n\\n### 1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E\\n\\n\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A\\n\\n```text\\nSQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\\n```\\n\\n\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A\\n\\n```text\\nSQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\\n```\\n\\n**\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D**\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002\\n\\n---\\n\\n## \u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848\\n\\n\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002\\n\\n![\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD](assets/01-parser-market.png)\\n\\n### 2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4\\n\\n| \u7279\u6027 | JavaCC | ANTLR 3 | ANTLR 4 |\\n|---|---|---|---|\\n| \u8BED\u6CD5\u5206\u6790\u7B97\u6CD5 | LL(k) | LL(*) | LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09 |\\n| \u5DE6\u9012\u5F52\u5904\u7406 | \u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362 | \u9700\u624B\u52A8\u8F6C\u6362 | \u81EA\u52A8\u5904\u7406 |\\n| \u76EE\u6807\u8BED\u8A00 | Java | Java\u3001C#\u3001Python \u7B49 | \u540C ANTLR 3 |\\n| \u9519\u8BEF\u5904\u7406 | \u57FA\u7840\u9519\u8BEF\u6062\u590D | \u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D | \u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD |\\n| \u8BED\u6CD5\u590D\u6742\u5EA6 | \u7B80\u5355\u76F4\u89C2 | \u8F83\u590D\u6742 | \u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09 |\\n| \u5E94\u7528\u573A\u666F | \u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2 | \u4E2D\u5927\u578B\u9879\u76EE | \u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5 |\\n\\n### 2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec\\n\\n\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A\\n\\n- **Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09**\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002\\n- **hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09**\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002\\n\\n### 2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid\\n\\n- **JSqlParser**\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 `select` \u2192 `SelectStatement`\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 **API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31**\u3002\\n- **Druid**\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F**\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09**\uFF0C\u5E76\u4E14**\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55**\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002\\n\\n### 2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA\\n\\n| \u5DE5\u5177 | \u4F9D\u8D56\u5DE5\u5177 | \u89E3\u6790 SQL \u80FD\u529B | \u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F | \u4F18\u7F3A\u70B9 |\\n|---|---|---|---|---|\\n| JavaCC | \u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219 | \u65E0 | \u65E0 | \u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219 |\\n| ANTLR4 | \u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219 | \u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D | \u65E0 | \u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB |\\n| Calcite | \u57FA\u4E8E JavaCC | \u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31 | \u6709 | \u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927 |\\n| hive-exec | \u57FA\u4E8E ANTLR3 | \u4EC5 Hive\u3001Spark | \u65E0 | \u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90 |\\n| JSqlParser | \u57FA\u4E8E JavaCC | \u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00 | \u6709 | API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42 |\\n| **Druid** | \u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6 | \u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49 | **\u6709\uFF08\u6781\u5F3A\uFF09** | \u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6 |\\n\\n\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 `Insert`\u3001`Select`\u3001`Update`\u3001`Delete` \u7B49\u7ED3\u6784\u3002\\n\\n**\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002** \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002\\n\\n### 2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4\\n\\nANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811**\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB**\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002\\n\\n---\\n\\n## \u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4\\n\\n### 3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218\\n\\n\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A\\n\\n```sql\\n\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\\n\\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\\n\\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\\n \u5B9E\u73B0\uFF1Acalcite\\n\\n\u5B9E\u65F6 streamparser\\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n\\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\\n```\\n\\n\u6838\u5FC3\u95EE\u9898\u662F\uFF1A**\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11**\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002\\n\\n### 3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784\\n\\n\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002\\n\\n![\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784](assets/02-legacy-architecture.png)\\n\\n\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A\\n\\n**\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650**\\n\\n1. \u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B\\n2. \u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002\\n\\n**\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0**\\n\\n1. \u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B\\n2. **\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811**\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B\\n3. \u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002\\n\\n> \u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002\\n\\n![Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22](assets/03-calcite-layered-article.png)\\n\\n### 3.3 \u4E3B\u8981\u95EE\u9898\\n\\n1. **\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31**\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B\\n2. **\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE**\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F `if` \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B\\n3. **\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8**\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002\\n\\n---\\n\\n## \u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42\\n\\n\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A**\u8BED\u6CD5\u89E3\u6790\u5C42** \u4E0E **\u4E1A\u52A1\u89E3\u6790\u5C42**\u3002\\n\\n### 4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09\\n\\n![\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42](assets/04-druid-syntax-layer.png)\\n\\n\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A\\n\\n![Druid \u5206\u5C42\u7ED3\u6784\u7C7B](assets/05-druid-layer-structure.png)\\n\\n```java\\n// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\\nSQLStatement statement = parser.parseStatement();\\n\\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\\nDorisStatementParser statementParser = new DorisStatementParser(sql);\\nSQLStatement sqlStatement = statementParser.parseStatement();\\n```\\n\\n### 4.2 \u4E1A\u52A1\u89E3\u6790\u5C42\\n\\n- **\u89E3\u6790\u5C42**\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B\\n- **\u5E94\u7528\u5C42**\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002\\n\\n![\u4E1A\u52A1\u89E3\u6790\u5206\u5C42](assets/06-business-layer.png)\\n\\n\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A\\n\\n![\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6](assets/07-application-components.png)\\n\\n\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F `BaseXxxClient`\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A\\n\\n![\u7EE7\u627F BaseXxxClient \u6269\u5C55](assets/08-inherit-baseclient.png)\\n\\n\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 `XxxSqlParser` \u4E2D\u6CE8\u518C\uFF1A\\n\\n![\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client](assets/09-register-client.png)\\n\\n\u793A\u4F8B\uFF1A\\n\\n```java\\n// \u51C6\u5907 SQL\\nString sql = getSql();\\n\\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\\n\\n// 2.1\u3001\u89E3\u6790\u8868\\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\\n\\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\\n\\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\\n\\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\\nSet functions = sqlParser.parseFunction(sql);\\n```\\n\\n### 4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0\\n\\n\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A\\n\\n![\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0](assets/10-after-refactor.png)\\n\\n---\\n\\n## \u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0\\n\\n\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002\\n\\n**\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B**\uFF1A`insert into/overwrite ... select`\u3001`create ... select`\u3001`with as ... insert`\u3002\\n\\n### 5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n\\n\u6838\u5FC3\u601D\u8DEF\u662F**\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868**\u3002\\n\\n\u4EE5\u4E00\u6761 `insert select` \u4E3A\u4F8B\uFF1A\\n\\n```sql\\ninsert into new_table (id, name)\\nselect a.id as aid, b.name as bname\\nfrom old_table as a\\nleft join old_table2 b on a.id = b.id\\n```\\n\\n1. \u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A`insert` \u76EE\u6807\u7AEF\u3001`select` \u6765\u6E90\u7AEF\uFF1B\\n2. \u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A\\n\\n```text\\n# \u76EE\u6807\u7AEF\\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\\n id id new_table\\n name name new_table\\n\\n# \u6765\u6E90\u7AEF\\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\\n id aid old_table\\n name bname old_table2\\n```\\n\\n3. \u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A\\n\\n```text\\n# \u7B2C\u4E00\u6761\\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\\n# \u7B2C\u4E8C\u6761\\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\\n```\\n\\n\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002\\n\\n\u5BF9\u4E8E `with as` \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 `()` \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E**\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5**\u7684\u573A\u666F\uFF08\u5982 `concat(t1.name, t2.name)`\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 `,` \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002\\n\\n### 5.2 \u8868\u8840\u7F18\u89E3\u6790\\n\\n\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A `select` \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E `insert` \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002\\n\\n### 5.3 \u8868\u89E3\u6790\\n\\n\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08`select`\u3001`update`\u3001`delete`\u3001`insert`\u3001`drop`\u3001`rename` \u7B49\uFF09\u3002\\n\\n### 5.4 \u51FD\u6570\u89E3\u6790\\n\\n\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 **Visitor \u6A21\u5F0F**\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A\\n\\n![\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790](assets/11-function-visitor.png)\\n\\n### 5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B\\n\\n- **SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09**\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002\\n- **\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL**\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002\\n\\n---\\n\\n## \u516D\u3001SqlParserX \u7684\u8BDE\u751F\\n\\n\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A**\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F**\\n\\n\u4E8E\u662F\u6709\u4E86 **SqlParserX** \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C**\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790**\u7684\u5F00\u6E90\u9879\u76EE\u3002\\n\\n### 6.1 \u53CC\u5C42\u67B6\u6784\\n\\nSqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A\\n\\n```text\\nSqlParserX\uFF08\u6839 Reactor\uFF09\\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\\n```\\n\\n- **\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08`sqlparserx-syntax`\uFF09**\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B\\n- **\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08`sqlparserx-core`\uFF09**\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002\\n\\n\u4E24\u5C42\u4EE5 `DbType + SQLStatement AST` \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C**\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST**\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 [\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1](https://github.com/DTStack/SqlParserX/blob/master/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1.md)\u3002\\n\\n### 6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid\\n\\n\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A**\u5B98\u65B9 Druid 1.2.28**\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C**\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898**\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002\\n\\n### 6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB\\n\\nSqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A\\n\\n- [\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1](/docs/about/architecture)\\n- [\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1](https://github.com/DTStack/SqlParserX/blob/master/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1.md)\\n- [Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5](https://github.com/DTStack/SqlParserX/blob/master/docs/01\u3001SQL\u8BED\u6CD5\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/Druid\u7248\u672C\u4E0ESQL\u8BED\u6CD5\u652F\u6301\u60C5\u51B5.md)\\n- [\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09](https://github.com/DTStack/SqlParserX/tree/master/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5)\\n- [\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357](https://github.com/DTStack/SqlParserX/blob/master/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6587\u6863/SqlParserX\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357.md)\\n\\n### 6.4 \u76EE\u6807\\n\\n- \u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C**\u5B8C\u5168\u57FA\u4E8E Druid** \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B\\n- **\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX**\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B\\n- \u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 `DbType` \u4E0E AST \u5BF9\u9F50\u3002\\n\\n---\\n\\n## \u4E03\u3001\u7ED3\u8BED\\n\\n\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A\\n\\n> **\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002**\\n\\n\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002\\n\\n---\\n\\n> \u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28\\n>\\n> \u672C\u6587\u56FE\u7247\u4F4D\u4E8E `assets/` \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"}]}}')}}]); \ No newline at end of file diff --git a/en/assets/js/e9caf4bd.6e761e5e.js b/en/assets/js/e9caf4bd.6e761e5e.js deleted file mode 100644 index 9ef1c3e..0000000 --- a/en/assets/js/e9caf4bd.6e761e5e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["2030"],{7846(n){n.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"origin-of-sqlparserx","metadata":{"permalink":"/SqlParserX/en/blog/origin-of-sqlparserx","editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/blog/2026-09-28-origin-of-sqlparserx.md","source":"@site/blog/2026-09-28-origin-of-sqlparserx.md","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002","date":"2026-09-28T00:00:00.000Z","tags":[{"inline":false,"label":"\u8D77\u6E90\u4E0E\u80CC\u666F","permalink":"/SqlParserX/en/blog/tags/origin","description":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u4E0E\u5185\u90E8\u6539\u9020\u5386\u7A0B"}],"readingTime":16.44,"hasTruncateMarker":true,"authors":[{"name":"changlu","title":"SqlParserX \u7EF4\u62A4\u8005","url":"https://github.com/DTStack/SqlParserX","page":{"permalink":"/SqlParserX/en/blog/authors/changlu"},"socials":{"github":"https://github.com/DTStack"},"imageURL":"https://github.com/github.png","key":"changlu"}],"frontMatter":{"slug":"origin-of-sqlparserx","title":"SqlParserX \u7684\u8BDE\u751F\u8D77\u6E90\u80CC\u666F\u4E0E\u5185\u90E8\u6539\u9020","authors":["changlu"],"tags":["origin"],"date":"2026-09-28T00:00:00.000Z","description":"\u8BB0\u5F55\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002"},"unlisted":false},"content":"> \u4F5C\u8005\uFF1Achanglu \uFF5C \u65E5\u671F\uFF1A2026-09-28\\n>\\n> \u8FD9\u662F\u4E00\u7BC7\u5173\u4E8E SqlParserX \u8D77\u6E90\u7684\u6280\u672F\u535A\u5BA2\u3002\u5B83\u8BB0\u5F55\u4E86\u4ECE\u300C\u4E3A\u4EC0\u4E48\u8981\u505A SQL \u89E3\u6790\u300D\u5230\u300C\u5728\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u4E0B\u5982\u4F55\u7EDF\u4E00\u89E3\u6790\u300D\u7684\u601D\u8003\u8FC7\u7A0B\uFF0C\u4EE5\u53CA\u6700\u7EC8\u4FC3\u6210\u4E00\u4E2A\u7EAF Druid \u5B9E\u73B0\u7684\u5F00\u6E90 SQL \u89E3\u6790\u9879\u76EE\u8BDE\u751F\u7684\u80CC\u666F\u3002\\n> \u9879\u76EE\u5730\u5740\u4E0E\u4F7F\u7528\u65B9\u5F0F\u89C1 [SqlParserX \u4ED3\u5E93](https://github.com/DTStack/SqlParserX)\uFF0C\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1\u89C1 [\u67B6\u6784\u8BBE\u8BA1](/docs/about/architecture)\u3002\\n\\n{/* truncate */}\\n\\n## \u4E00\u3001\u4E3A\u4EC0\u4E48\u9700\u8981\u61C2\u89E3\u6790\u5668\\n\\n### 1.1 \u4EC0\u4E48\u662F\u89E3\u6790\u5668\\n\\n\u89E3\u6790\u5668\u662F\u8BA1\u7B97\u673A\u79D1\u5B66\u548C\u7F16\u7A0B\u8BED\u8A00\u9886\u57DF\u4E2D\u81F3\u5173\u91CD\u8981\u7684\u5DE5\u5177\uFF0C\u5176\u6838\u5FC3\u4F5C\u7528\u662F**\u5C06\u4EBA\u7C7B\u53EF\u7406\u89E3\u7684\u300C\u5F62\u5F0F\u5316\u8BED\u8A00\u300D\uFF08\u5982\u4EE3\u7801\u3001\u6570\u636E\u683C\u5F0F\u3001\u8868\u8FBE\u5F0F\u7B49\uFF09\u8F6C\u6362\u4E3A\u673A\u5668\u53EF\u5904\u7406\u7684\u7ED3\u6784**\uFF0C\u4ECE\u800C\u5B9E\u73B0\u4FE1\u606F\u7684\u89E3\u6790\u3001\u9A8C\u8BC1\u548C\u540E\u7EED\u5904\u7406\u3002\\n\\n\u4EBA\u7C7B\u4F7F\u7528\u7684\u8BED\u8A00\uFF08\u65E0\u8BBA\u662F\u7F16\u7A0B\u8BED\u8A00\u5982 Python\u3001\u6570\u636E\u683C\u5F0F\u5982 JSON\uFF0C\u8FD8\u662F\u67E5\u8BE2\u8BED\u53E5\u5982 SQL\uFF09\u672C\u8D28\u662F**\u7ED3\u6784\u5316\u7684\u5B57\u7B26\u4E32**\uFF0C\u4F46\u673A\u5668\u65E0\u6CD5\u76F4\u63A5\u7406\u89E3\u8FD9\u79CD\u5B57\u7B26\u4E32\u7684\u903B\u8F91\u542B\u4E49\u3002\\n\\n\u4F8B\u5982\uFF0C\u7A0B\u5E8F\u5458\u5199\u7684 `x = (a + b) * 3` \u662F\u4E00\u4E32\u5B57\u7B26\uFF0C\u4F46\u673A\u5668\u9700\u8981\u77E5\u9053\u8FD9\u662F\u300C\u5148\u7B97 `a + b`\uFF0C\u518D\u4E58\u4EE5 3\uFF0C\u6700\u540E\u8D4B\u503C\u7ED9 `x`\u300D\u7684\u8FD0\u7B97\u903B\u8F91\u3002\u89E3\u6790\u5668\u628A\u8FD9\u4E2A\u5B57\u7B26\u4E32\u89E3\u6790\u4E3A\u4E00\u68F5\u8BED\u6CD5\u6811\uFF0C\u518D\u6309\u89C4\u5219\u4E00\u6B65\u6B65\u8FD0\u7B97\u3002\\n\\n```sql\\n// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790\u65B9\u7A0B x = (a + b) * 3 \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\\n\\n [=]\\n / \\\\\\n [x] [*]\\n / \\\\\\n [+] [3]\\n / \\\\\\n [a] [b]\\n\\n\u89E3\u91CA\u6267\u884C\u6B65\u9AA4\uFF1A\\n1\u3001\u4ECE\u6839\u8282\u70B9 = \u5F00\u59CB\uFF0C\u8868\u793A\u8FD9\u662F\u4E00\u4E2A\u8D4B\u503C\u64CD\u4F5C\u3002\\n2\u3001\u5DE6\u5B50\u6811 x \u662F\u8D4B\u503C\u76EE\u6807\uFF0C\u53F3\u5B50\u6811 * \u662F\u8BA1\u7B97\u5185\u5BB9\u3002\\n3\u3001\u8BA1\u7B97 * \u65F6\uFF0C\u5148\u8BA1\u7B97\u5DE6\u5B50\u6811 +\uFF08a + b\uFF09\uFF0C\u518D\u4E58\u4EE5\u53F3\u5B50\u6811 3\u3002\\n4\u3001\u6700\u540E\u5C06\u7ED3\u679C\u8D4B\u503C\u7ED9 x\u3002\\n```\\n\\n\u7F16\u7A0B\u8BED\u8A00\u540C\u7406\uFF0C\u5982 C\u3001Java \u7B49\u90FD\u6709\u7279\u5B9A\u7684\u8BED\u6CD5\u89C4\u5219\uFF0C\u901A\u8FC7\u89E3\u6790\u5668\u628A\u4EE3\u7801\u8F6C\u4E3A AST \u8BED\u6CD5\u6811\uFF0C\u518D\u7F16\u8BD1\u5B57\u8282\u7801\u3001\u673A\u5668\u7801\u6765\u6267\u884C\u3002\\n\\n```sql\\n// \u89E3\u6790\u5668 \u626B\u63CF\u89E3\u6790 Java \u4EE3\u7801 if (x > 0) { y = 10; } \u5F97\u5230\u7684\u8BED\u6CD5\u6811 AST\\n [if]\\n / \\\\\\n [>] [block]\\n / \\\\ \\\\\\n[x] [0] [=]\\n / \\\\\\n [y] [10]\\n\\n\u89E3\u6790\u6267\u884C\u6B65\u9AA4\uFF1A\\n1\u3001\u6839\u8282\u70B9 if \u8868\u793A\u6761\u4EF6\u5224\u65AD\u3002\\n2\u3001\u5148\u8BA1\u7B97\u6761\u4EF6 >\uFF08x > 0\uFF09\uFF0C\u5982\u679C\u4E3A\u771F\uFF1A\\n3\u3001\u8FDB\u5165 block \u6267\u884C\u5185\u90E8\u8BED\u53E5 y = 10\u3002\\n4\u3001\u5982\u679C\u4E3A\u5047\uFF0C\u8DF3\u8FC7\u6574\u4E2A block\u3002\\n```\\n\\n**\u89E3\u6790\u5668\u7684\u4F5C\u7528**\uFF0C\u5C31\u662F\u628A\u8FD9\u79CD\u5B57\u7B26\u4E32\u300C\u62C6\u89E3\u300D\u4E3A\u6709\u610F\u4E49\u7684\u8BED\u6CD5\u7ED3\u6784\uFF08\u5982\u62BD\u8C61\u8BED\u6CD5\u6811 AST\uFF09\uFF0C\u8BA9\u673A\u5668\u80FD\u6309\u89C4\u5219\u6267\u884C\u3002\\n\\n### 1.2 \u5982\u4F55\u5B9E\u73B0\u89E3\u6790\u5668\\n\\n\u5728\u7F16\u8BD1\u5668\u5B9E\u73B0\u4E2D\uFF0C\u4E3B\u8981\u8981\u505A\u7684\u662F**\u8BCD\u6CD5\u5206\u6790\u548C\u8BED\u6CD5\u5206\u6790**\uFF1A\\n\\n- **\u8BCD\u6CD5\u5206\u6790**\uFF1A\u89E3\u6790\u4EE3\u7801\u5E76\u751F\u6210 Token\uFF08\u4E00\u4E2A\u5355\u8BCD\u7684\u5B57\u9762\u548C\u5B83\u7684\u79CD\u7C7B\u53CA\u8BED\u4E49\u503C\uFF09\u5E8F\u5217\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u626B\u63CF\u5668\uFF08Scanner\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u5B9A\u4E49 token\uFF08\u8BED\u4E49\uFF09\u4E0E scanner\uFF08\u626B\u63CF token\uFF09\u3002\\n- **\u8BED\u6CD5\u5206\u6790**\uFF1A\u5229\u7528\u626B\u63CF\u5668\u751F\u6210\u7684 Token \u5E8F\u5217\u751F\u6210\u62BD\u8C61\u8BED\u6CD5\u6811\uFF0C\u5B9E\u73B0\u4E00\u822C\u79F0\u4E3A\u89E3\u6790\u5668\uFF08Parser\uFF09\u3002\u6838\u5FC3\u903B\u8F91\u662F\u8FDB\u884C\u8BED\u6CD5\u68C0\u67E5\uFF0C\u5E76\u6784\u5EFA\u7531\u8F93\u5165\u5355\u8BCD\u7EC4\u6210\u7684\u5C42\u6B21\u5316\u6570\u636E\u7ED3\u6784\uFF08\u8BED\u6CD5\u5206\u6790\u6811\u3001\u62BD\u8C61\u8BED\u6CD5\u6811\u7B49\uFF09\u3002\\n\\n```sql\\n\u6570\u5B66\u8868\u8FBE\u5F0F\uFF1A1 + 2 * 3\\n\\n// \u9996\u5148\u5728\u8FDB\u884C\u8BCD\u6CD5\u3001\u8BED\u6CD5\u5206\u6790\u524D\uFF0C\u6211\u4EEC\u5148\u5B9A\u4E49\u597D token\\n\u5355\u8BCD\u5B57\u9762 Token \u7C7B\u578B \u8BF4\u660E\\n1 INTEGER \u6574\u6570 1\\n+ ADD_OP \u52A0\u6CD5\u8FD0\u7B97\u7B26\\n2 INTEGER \u6574\u6570 2\\n* MUL_OP \u4E58\u6CD5\u8FD0\u7B97\u7B26\\n3 INTEGER \u6574\u6570 3\\n\\n// 1\u3001\u8BCD\u6CD5\u5206\u6790\uFF1A\u4ECE\u524D\u5F80\u540E\u626B\u63CF\u5F97\u5230\u4E00\u7EC4 Token \u6D41\\n[INTEGER(1), ADD_OP(+), INTEGER(2), MUL_OP(*), INTEGER(3)]\\n\\n// 2\u3001\u8BED\u6CD5\u5206\u6790\uFF1A\u6839\u636E\u8FD0\u7B97\u7B26\u4F18\u5148\u7EA7\uFF08* \u4F18\u5148\u4E8E +\uFF09\u548C Token \u6D41\u6784\u5EFA AST\\n [+]\\n / \\\\\\n 1 [*]\\n / \\\\\\n 2 3\\n```\\n\\n\u5B9E\u73B0\u4E00\u79CD\u89C4\u5219\u7684\u89E3\u6790\u5668\u6709\u4E24\u79CD\u65B9\u5F0F\uFF1A\\n\\n- **\u65B9\u5F0F\u4E00**\uFF1A\u4E0D\u4F9D\u8D56\u4EFB\u4F55\u5DE5\u5177\uFF0C\u624B\u5199\u626B\u63CF\u5668\u548C\u89E3\u6790\u5668\u3002\\n- **\u65B9\u5F0F\u4E8C**\uFF1A\u4F7F\u7528\u73B0\u6210\u7684\u89E3\u6790\u5668\u751F\u6210\u5668\uFF08Yacc\u3001ANTLR\u3001JavaCC \u7B49\uFF09\uFF0C\u6839\u636E\u81EA\u5B9A\u4E49\u8BED\u6CD5\u89C4\u5219\u6587\u4EF6\u81EA\u52A8\u751F\u6210\u89E3\u6790\u5668\u4EE3\u7801\uFF0C\u4ECE\u800C\u4E13\u6CE8\u4E8E\u8BED\u6CD5\u89C4\u5219\u8BBE\u8BA1\u3002\\n\\n### 1.3 \u4EC0\u4E48\u662F SQL \u89E3\u6790\u5668\\n\\nSQL \u89E3\u6790\u5668\u662F**\u80FD\u591F\u5C06 SQL \u8BED\u53E5\u8F6C\u6362\u4E3A\u8BA1\u7B97\u673A\u53EF\u7406\u89E3\u548C\u6267\u884C\u7ED3\u6784\u7684\u7A0B\u5E8F\u7EC4\u4EF6**\u3002\u5B83\u5C06\u6587\u672C\u5F62\u5F0F\u7684 SQL \u8F6C\u6362\u4E3A\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08AST\uFF09\uFF0C\u4E3A\u540E\u7EED\u7684\u67E5\u8BE2\u4F18\u5316\u548C\u6267\u884C\u63D0\u4F9B\u57FA\u7840\u3002\u901A\u4FD7\u5730\u8BF4\uFF0C\u5C31\u662F\u80FD\u5BF9 SQL \u8FDB\u884C\u89E3\u6790\u3001\u8F6C\u6362\u6210\u8BED\u6CD5\u6811\u7684\u5DE5\u5177\u3002\\n\\n```sql\\n# \u67E5\u8BE2\\nSELECT * FROM users WHERE status = \'active\';\\n# \u63D2\u5165\\nINSERT INTO customers (name, email) VALUES (\'\u674E\u56DB\', \'lisi@example.com\');\\n# \u66F4\u65B0\\nUPDATE products SET price = 5999 WHERE id = 1001;\\n# \u5220\u9664\\nDELETE FROM logs WHERE create_time < \'2024-01-01\';\\n# \u521B\u5EFA\u8868\\nCREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL(10,2));\\n# \u4FEE\u6539\u8868\\nALTER TABLE employees ADD COLUMN department VARCHAR(20);\\n# \u5220\u9664\u8868\\nDROP TABLE temp_data;\\n# \u6388\u6743\\nGRANT SELECT ON customers TO user1;\\n```\\n\\n### 1.4 SQL \u89E3\u6790\u4F4D\u4E8E\u6574\u6761\u94FE\u8DEF\u7684\u54EA\u4E2A\u4F4D\u7F6E\\n\\n\u5E38\u89C1\u6570\u636E\u5E93\u6267\u884C SQL \u7684\u6574\u4E2A\u8FC7\u7A0B\uFF1A\\n\\n```text\\nSQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u8BED\u4E49\u5206\u6790 \u2192 \u4F18\u5316SQL \u2192 \u4EA7\u751F\u6267\u884C\u8BA1\u5212/\u6267\u884C\u4EFB\u52A1\\n```\\n\\n\u800C SQL \u89E3\u6790\u4E2D\u95F4\u4EF6\u5173\u6CE8\u7684\u662F AST \u4E4B\u540E\u7684\u5E94\u7528\u5C42\u80FD\u529B\uFF1A\\n\\n```text\\nSQL\u6587\u672C \u2192 \u8BCD\u6CD5\u5206\u6790\uFF08Tokenizer\uFF09\u2192 \u8BED\u6CD5\u5206\u6790\uFF08Parser\uFF09\u2192 AST \u2192 \u5E94\u7528\u5C42\uFF08\u7C7B\u578B\u8BC6\u522B\u3001\u8868\u5B57\u6BB5\u8840\u7F18\u3001\u8868\u89E3\u6790\u3001SQL\u8131\u654F\uFF09\u2192 \u5B50\u4EA7\u54C1\u5E94\u7528\\n```\\n\\n**\u8FD9\u6B63\u662F SqlParserX \u7684\u5B9A\u4F4D**\uFF1A\u4E0D\u91CD\u590D\u5B9E\u73B0\u6570\u636E\u5E93\u5F15\u64CE\uFF0C\u53EA\u57FA\u4E8E\u4E00\u5957\u7EDF\u4E00\u7684 AST\uFF0C\u628A\u300C\u8868\u3001\u8840\u7F18\u3001\u51FD\u6570\u3001\u6743\u9650\u6539\u5199\u300D\u7B49\u89E3\u6790\u80FD\u529B\u505A\u6210\u53EF\u590D\u7528\u7684\u4E2D\u95F4\u4EF6\u3002\\n\\n---\\n\\n## \u4E8C\u3001\u5E02\u9762\u4E0A\u5E38\u89C1\u7684 SQL \u89E3\u6790\u65B9\u6848\\n\\n\u5728\u52A8\u624B\u4E4B\u524D\uFF0C\u6211\u4EEC\u5148\u6A2A\u5411\u6BD4\u8F83\u4E86\u4E3B\u6D41\u65B9\u6848\u3002\\n\\n![\u5E02\u9762\u4E0A\u5E38\u89C1\u7684\u89E3\u6790\u5668\u6574\u4F53\u4ECB\u7ECD](assets/01-parser-market.png)\\n\\n### 2.1 \u5E95\u5C42\u89E3\u6790\u5668\u4EF6\uFF1AJavaCC / ANTLR 3 / ANTLR 4\\n\\n| \u7279\u6027 | JavaCC | ANTLR 3 | ANTLR 4 |\\n|---|---|---|---|\\n| \u8BED\u6CD5\u5206\u6790\u7B97\u6CD5 | LL(k) | LL(*) | LL(*)\uFF08\u81EA\u9002\u5E94\u9884\u6D4B\uFF09 |\\n| \u5DE6\u9012\u5F52\u5904\u7406 | \u4E0D\u652F\u6301\uFF0C\u9700\u624B\u52A8\u8F6C\u6362 | \u9700\u624B\u52A8\u8F6C\u6362 | \u81EA\u52A8\u5904\u7406 |\\n| \u76EE\u6807\u8BED\u8A00 | Java | Java\u3001C#\u3001Python \u7B49 | \u540C ANTLR 3 |\\n| \u9519\u8BEF\u5904\u7406 | \u57FA\u7840\u9519\u8BEF\u6062\u590D | \u589E\u5F3A\u7684\u9519\u8BEF\u6062\u590D | \u667A\u80FD\u9519\u8BEF\u6062\u590D\u4E0E\u8BCA\u65AD |\\n| \u8BED\u6CD5\u590D\u6742\u5EA6 | \u7B80\u5355\u76F4\u89C2 | \u8F83\u590D\u6742 | \u7B80\u5316\uFF08\u76F8\u6BD4 ANTLR 3\uFF09 |\\n| \u5E94\u7528\u573A\u666F | \u5C0F\u578B\u9879\u76EE\u3001\u6559\u80B2 | \u4E2D\u5927\u578B\u9879\u76EE | \u5927\u578B\u9879\u76EE\u3001\u590D\u6742\u8BED\u6CD5 |\\n\\n### 2.2 SQL \u89E3\u6790\u5668\u811A\u624B\u67B6\uFF1ACalcite / hive-exec\\n\\n\u6240\u8C13\u811A\u624B\u67B6\uFF0C\u662F\u57FA\u4E8E JavaCC \u6216 ANTLR \u5DF2\u7ECF\u5B9E\u73B0\u4E86\u6807\u51C6 SQL \u7684\u8BCD\u6CD5\u3001\u8BED\u6CD5\u89C4\u5219\uFF0C\u6211\u4EEC\u53EA\u9700\u6309\u5176\u89C4\u8303\u6269\u5C55\uFF1A\\n\\n- **Calcite\uFF08\u57FA\u4E8E JavaCC\uFF09**\uFF1A\u6A21\u5757\u5316\u3001\u53EF\u6269\u5C55\u7684 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u6846\u67B6\uFF0C\u5F88\u591A\u5F00\u6E90 SQL \u5F15\u64CE\u7528\u5B83\u6765\u505A\u6807\u51C6 SQL \u89E3\u6790\u4E0E\u4F18\u5316\u3002\\n- **hive-exec\uFF08\u57FA\u4E8E ANTLR3\uFF09**\uFF1AHive \u7684\u6838\u5FC3\u5305\uFF0C\u652F\u6301 Hive/Spark \u8BED\u6CD5\u89E3\u6790\u3002\\n\\n### 2.3 \u66F4\u300C\u5177\u8C61\u5316\u300D\u7684\u89E3\u6790\u5668\uFF1AJSqlParser / Druid\\n\\n- **JSqlParser**\uFF1A\u57FA\u4E8E JavaCC\uFF0C\u80FD\u5C06 SQL \u8F6C\u4E3A\u66F4\u8BED\u4E49\u5316\u7684\u7ED3\u6784\uFF08\u5982 `select` \u2192 `SelectStatement`\uFF09\uFF0C\u652F\u6301\u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F\u3001JavaAPI \u6784\u5EFA SQL\u3001\u8BED\u6CD5\u6811\u8F6C SQL\uFF1B\u4F46 **API \u65E0\u660E\u663E\u7684\u7279\u5B9A\u65B9\u8A00\u89E3\u6790\u5206\u5C42\uFF0C\u652F\u6301\u7684\u6570\u636E\u6E90\u89E3\u6790\u80FD\u529B\u8F83\u5F31**\u3002\\n- **Druid**\uFF1A\u5B8C\u5168\u7528 Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\uFF0C\u89E3\u6790\u51FA\u7684\u8BED\u6CD5\u6811\u662F**\u5177\u8C61\u5316\u7684\u62BD\u8C61\u8BED\u6CD5\u6811\uFF08\u5177\u6709\u7EE7\u627F\u5173\u7CFB\uFF09**\uFF0C\u5E76\u4E14**\u652F\u6301\u6309\u6570\u636E\u6E90\u5206\u5C42\u6269\u5C55**\uFF08Lexer\u3001Parser \u626B\u63CF\u53EF\u5206\u5C42\u9694\u79BB\uFF09\u3002\\n\\n### 2.4 \u6838\u5FC3\u5BF9\u6BD4\u4E0E\u9009\u578B\u7ED3\u8BBA\\n\\n| \u5DE5\u5177 | \u4F9D\u8D56\u5DE5\u5177 | \u89E3\u6790 SQL \u80FD\u529B | \u8BED\u6CD5\u6811\u7C7B\u7EE7\u627F | \u4F18\u7F3A\u70B9 |\\n|---|---|---|---|---|\\n| JavaCC | \u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219 | \u65E0 | \u65E0 | \u9700\u4ECE\u96F6\u5B9A\u4E49 SQL \u89C4\u5219 |\\n| ANTLR4 | \u539F\u751F\u5B9A\u4E49\u89E3\u6790\u89C4\u5219 | \u6709\uFF0C\u5B98\u65B9\u8BED\u6CD5\u751F\u6001\u6781\u597D | \u65E0 | \u8BED\u6CD5\u751F\u6001\u5F3A\uFF0C\u4F46\u89E3\u6790\u8BED\u6CD5\u6811\u65E0\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB |\\n| Calcite | \u57FA\u4E8E JavaCC | \u6807\u51C6 SQL\uFF0C\u591A\u65B9\u8A00\u6269\u5C55\u3001\u751F\u6001\u8F83\u5F31 | \u6709 | \u9700\u624B\u52A8\u6269\u5C55\u5206\u5C42\u5199\u8BED\u6CD5\u89C4\u5219\uFF0C\u6210\u672C\u5927 |\\n| hive-exec | \u57FA\u4E8E ANTLR3 | \u4EC5 Hive\u3001Spark | \u65E0 | \u65E0\u6CD5\u6269\u5C55\u5206\u5C42\u5230\u5176\u4ED6\u6570\u636E\u6E90 |\\n| JSqlParser | \u57FA\u4E8E JavaCC | \u6807\u51C6 SQL\uFF0C\u90E8\u5206\u65B9\u8A00 | \u6709 | API \u65E0\u660E\u663E\u6570\u636E\u6E90\u5206\u5C42 |\\n| **Druid** | \u539F\u751F Java \u5B9E\u73B0\u626B\u63CF\u3001\u89E3\u6790\u5668\u4EF6 | \u652F\u6301 MySQL\u3001Oracle\u3001Hive\u3001Spark\u3001Doris\u3001StarRocks \u7B49 | **\u6709\uFF08\u6781\u5F3A\uFF09** | \u6570\u636E\u6E90\u751F\u6001\u597D\u3001AST \u6709\u7EE7\u627F\u5173\u7CFB\uFF1B\u7F3A\u70B9\u662F Java \u81EA\u5B9E\u73B0\u626B\u63CF\u5668\uFF0C\u5165\u95E8\u6709\u96BE\u5EA6 |\\n\\n\u9762\u5411\u6570\u6808\u300C\u5927\u91CF\u5F02\u6784\u6570\u636E\u6E90\u90FD\u8981\u6709\u540C\u6837\u7EE7\u627F\u5173\u7CFB\u7684\u8BED\u6CD5\u6811\u300D\u7684\u573A\u666F\uFF0C\u9700\u8981\u62BD\u8C61\u5B9A\u4E49\u7EDF\u4E00\u7684 `Insert`\u3001`Select`\u3001`Update`\u3001`Delete` \u7B49\u7ED3\u6784\u3002\\n\\n**\u57FA\u4E8E Druid \u8FD9\u6837\u4E00\u5957\u6709\u7EE7\u627F\u5173\u7CFB\u7684 AST\uFF0C\u4E0D\u540C\u529F\u80FD\u53EA\u9700\u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u903B\u8F91\u5373\u53EF\u5BF9\u5E94\u6240\u6709\u6570\u636E\u6E90\uFF0C\u90E8\u5206\u6570\u636E\u6E90\u518D\u5355\u72EC\u901A\u8FC7\u5206\u5C42\u517C\u5BB9\u5373\u53EF\u3002** \u8FD9\u6210\u4E3A\u540E\u7EED\u9009\u578B\u7684\u51B3\u5B9A\u6027\u7406\u7531\u3002\\n\\n### 2.5 \u4E3A\u4EC0\u4E48\u4E0D\u76F4\u63A5\u7528 ANTLR4\\n\\nANTLR4 \u751F\u6001\u786E\u5B9E\u5F88\u597D\uFF08\u5B98\u65B9\u6709 grammars-v4\uFF09\uFF0C\u4F46\u5B83\u7684\u8BED\u6CD5\u6811**\u6CA1\u6709\u62BD\u8C61\u7EE7\u627F\u5173\u7CFB**\uFF0C\u96BE\u4EE5\u5728\u591A\u6570\u636E\u6E90\u4E0A\u6C89\u6DC0\u300C\u4E00\u5957\u4E1A\u52A1\u89E3\u6790\u903B\u8F91\u300D\uFF0C\u9700\u8981\u5728\u4E1A\u52A1\u5C42\u91CD\u65B0\u62BD\u8C61\u4E00\u5957\u7ED3\u6784\uFF0C\u53CD\u800C\u589E\u52A0\u7EF4\u62A4\u6210\u672C\u3002Druid \u7684 AST \u5929\u7136\u5E26\u7EE7\u627F\u4F53\u7CFB\uFF0C\u66F4\u5951\u5408\u6211\u4EEC\u7684\u76EE\u6807\u3002\\n\\n---\\n\\n## \u4E09\u3001\u5386\u53F2\u80CC\u666F\uFF1A\u6539\u9020\u524D\u7684 SQL \u89E3\u6790\u4E3A\u4EC0\u4E48\u96BE\u7EF4\u62A4\\n\\n### 3.1 \u5B50\u4EA7\u54C1\u5404\u81EA\u4E3A\u6218\\n\\n\u6539\u9020\u524D\uFF0CSQL \u89E3\u6790\u6563\u843D\u5728\u591A\u4E2A\u5B50\u4EA7\u54C1\u4E2D\uFF0C\u5404\u7528\u5404\u7684\u65B9\u6848\uFF1A\\n\\n```sql\\n\u79BB\u7EBF batchparser\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650\\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\uFF08mysql\u3001oracle\u3001doris...\uFF09\u3001hive\u3001spark\u3001impala\\n \u5B9E\u73B0\uFF1Acalcite & hive-exec \u6A21\u5757\u89E3\u6790\u5668\uFF0C\u52A0\u4E0A druid \u515C\u5E95\u3010\u4E2D\u95F4\u5404\u79CD\u517C\u5BB9\u8BED\u6CD5\u6B63\u5219\u5339\u914D\u66FF\u6362\u903B\u8F91\u3011\\n\\nAPI apiparser\uFF1AAPI \u89E3\u6790\uFF08\u9884\u7F16\u8BD1\u3001\u975E\u9884\u7F16\u8BD1\uFF09\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001\u884C\u5217\u7EA7\u6743\u9650\\n \u9762\u5411 SQL \u7C7B\u578B\uFF1Ardb\\n \u5B9E\u73B0\uFF1Acalcite + druid\uFF0Cdruid \u515C\u5E95\\n\\nlabel labelparser\uFF1A\u6807\u7B7E\u89E3\u6790\\n \u5B9E\u73B0\uFF1Acalcite\\n\\n\u5B9E\u65F6 streamparser\\n StreamCreateTableParser \u76F4\u63A5\u4F7F\u7528\u6B63\u5219\u5339\u914D\u89E3\u6790\\n StreamCreateViewParser \u4F7F\u7528 hive-exec \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n StreamInsertParser \u4F7F\u7528 FlinkPlanner & hive parser \u8FDB\u884C\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n\\n\u8D44\u4EA7 sqlparser\uFF1A\u8868\u3001\u5B57\u6BB5\u8840\u7F18\u89E3\u6790\u3001\u771F\u5B9E\u8868\u89E3\u6790\u3001SQL \u7C7B\u578B\u8BC6\u522B\\n \u5B9E\u73B0\uFF1A\u6BD4\u8F83\u6DF7\u4E71\uFF0Ccalcite\u3001druid \u4EE5\u53CA hive parser \u6DF7\u7528\\n```\\n\\n\u6838\u5FC3\u95EE\u9898\u662F\uFF1A**\u5386\u53F2\u4E0A\u9488\u5BF9 SQL \u8BED\u6CD5\u5C42\u9762\u7684\u6269\u5C55\u5F88\u5C11**\uFF0C\u5BFC\u81F4\u8BED\u6CD5\u89E3\u6790\u300C\u4E00\u4E2A\u4E0D\u884C\u5C31\u6362\u53E6\u4E00\u4E2A\u300D\uFF0C\u5404\u79CD\u515C\u5E95\uFF1B\u505A\u8FC7\u8BED\u6CD5\u6269\u5C55\u7684\u4E3B\u8981\u662F\u57FA\u4E8E Calcite \u6269\u5C55\u4E86\u5C11\u91CF\u8BED\u6CD5\uFF08limit\u3001starrocks \u7B49\uFF09\u3002\\n\\n### 3.2 \u5386\u53F2\u8BBE\u8BA1\u67B6\u6784\\n\\n\u6539\u9020\u524D\u4E3B\u8981\u9488\u5BF9 Calcite\uFF08rdb \u7C7B\u578B\uFF09\u3001hive-exec\uFF08spark\u3001hive\uFF09\u4E24\u7C7B SQL\uFF0CDruid \u4E0E\u6B63\u5219\u65B9\u5F0F\u4F5C\u4E3A\u515C\u5E95\u3002\\n\\n![\u6539\u9020\u524D\u7684\u5386\u53F2\u8BBE\u8BA1\u67B6\u6784](assets/02-legacy-architecture.png)\\n\\n\u4E1A\u52A1\u903B\u8F91\u53EF\u4EE5\u5206\u4E3A\u4E24\u7C7B\uFF1A\\n\\n**\u4E00\u7C7B\uFF1ASQL \u7C7B\u578B\u8BC6\u522B\u3001\u8868\u89E3\u6790\u3001SQL \u8131\u654F\u3001\u884C\u5217\u7EA7\u6743\u9650**\\n\\n1. \u6839\u636E SQL \u7C7B\u578B\u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B\\n2. \u57FA\u4E8E\u8BED\u6CD5\u6811\u505A\u4E0A\u8FF0\u4E1A\u52A1\u3002\\n\\n**\u53E6\u4E00\u7C7B\uFF1A\u8840\u7F18\u5B9E\u73B0**\\n\\n1. \u7528 Calcite\u3001hive-exec \u89E3\u6790\u5F97\u5230\u8BED\u6CD5\u6811\uFF1B\\n2. **\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811**\uFF0C\u5B9E\u73B0\u4E24\u5957\u8F6C\u6362\u5668\uFF08Calcite AST \u2192 \u81EA\u5B9A\u4E49 AST\u3001hive-exec AstNode \u2192 \u81EA\u5B9A\u4E49 AST\uFF09\uFF1B\\n3. \u9488\u5BF9\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u5199\u4E00\u5957\u8840\u7F18\u89E3\u6790\u903B\u8F91\u3002\\n\\n> \u95EE\u9898\uFF1A\u8F6C\u6362\u4E0E\u89E3\u6790\u626B\u63CF\u8FC7\u7A0B\u4E2D\uFF0C\u5386\u53F2\u4E0A\u66FE\u51FA\u73B0\u6B7B\u5FAA\u73AF\u5BFC\u81F4\u5B50\u4EA7\u54C1\u670D\u52A1\u6302\u6389\u7B49\u5404\u79CD\u60C5\u51B5\u3002\\n\\n![Calcite \u5206\u5C42\u6269\u5C55\u6587\u7AE0\u7684\u63A2\u7D22](assets/03-calcite-layered-article.png)\\n\\n### 3.3 \u4E3B\u8981\u95EE\u9898\\n\\n1. **\u4E0D\u540C\u6570\u636E\u6E90\u8BED\u6CD5\u89E3\u6790\u6269\u5C55\u80FD\u529B\u5F31**\uFF1A\u4E0D\u540C rdb \u8BED\u6CD5\u9700\u8981\u6B63\u5219\u524D\u7F6E\u5904\u7406\uFF0C\u6216\u5355\u72EC\u53BB\u6269\u5C55\u8BED\u6CD5\uFF0C\u4E14\u6269\u5C55\u8BED\u6CD5\u96C6\u4E2D\u5728\u4E00\u4E2A\u6A21\u5757\uFF1B\\n2. **\u4F7F\u7528\u591A\u79CD\u89E3\u6790\u6846\u67B6\u3001\u5404\u79CD\u515C\u5E95\uFF0C\u4EE3\u7801\u7EF4\u62A4\u96BE**\uFF1A\u62FF\u5230\u8BED\u6CD5\u6811\u540E\u7684\u5E94\u7528\u5C42\u89E3\u6790\u903B\u8F91\u4E5F\u5197\u4F59\u5728\u4E00\u8D77\uFF0C\u5230\u5904\u662F `if` \u5224\u65AD\u6570\u636E\u6E90\u517C\u5BB9\u903B\u8F91\uFF0C\u6539\u4E00\u4E2A\u5730\u65B9\u53EF\u80FD\u5F71\u54CD\u5176\u4ED6\u5730\u65B9\uFF0C\u96BE\u4EE5\u7EF4\u62A4\uFF1B\\n3. **\u8840\u7F18\u89E3\u6790\u6269\u5C55\u5F31\u3001\u5B66\u4E60\u6210\u672C\u6781\u9AD8**\uFF1A\u9700\u8981\u5148\u4E86\u89E3 Calcite / AstNode \u7684\u8282\u70B9\u5B9A\u4E49\uFF0C\u518D\u5177\u5907\u81EA\u5B9A\u4E49\u8BED\u6CD5\u6811\u80FD\u529B\uFF0C\u7136\u540E\u6269\u5C55\u4E24\u5C42\u8F6C\u6362\u903B\u8F91\uFF08\u8FD8\u5BB9\u6613\u6B7B\u5FAA\u73AF\uFF09\uFF0C\u6700\u540E\u624D\u5230\u8840\u7F18\u89E3\u6790\u672C\u8EAB\u3002\\n\\n---\\n\\n## \u56DB\u3001\u6280\u672F\u6539\u9020\uFF1A\u53CC\u5C42\u5206\u5C42\\n\\n\u6280\u672F\u6539\u9020\u56F4\u7ED5\u4E24\u4E2A\u5C42\u9762\u5206\u5C42\uFF1A**\u8BED\u6CD5\u89E3\u6790\u5C42** \u4E0E **\u4E1A\u52A1\u89E3\u6790\u5C42**\u3002\\n\\n### 4.1 \u8BED\u6CD5\u89E3\u6790\u5C42\uFF08\u57FA\u4E8E Druid\uFF09\\n\\n![\u8BED\u6CD5\u89E3\u6790\u5C42\u5206\u5C42](assets/04-druid-syntax-layer.png)\\n\\n\u5206\u5C42\u5B9E\u73B0\u540E\uFF0C\u626B\u63CF\u5668\u3001\u89E3\u6790\u5668\u90FD\u652F\u6301\u7EE7\u627F\u590D\u7528\uFF0C\u4E14\u76F8\u4E92\u72EC\u7ACB\u3001\u4E92\u4E0D\u5F71\u54CD\uFF0C\u7ED3\u6784\u7C7B\u53EF\u81EA\u5B9A\u4E49\u6269\u5C55\uFF1A\\n\\n![Druid \u5206\u5C42\u7ED3\u6784\u7C7B](assets/05-druid-layer-structure.png)\\n\\n```java\\n// \u5DE5\u5177\u7C7B\u6307\u5B9A\u6570\u636E\u6E90\u7C7B\u578B\u5B9E\u73B0\u89E3\u6790\\nSQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, DbType.doris);\\nSQLStatement statement = parser.parseStatement();\\n\\n// \u6216\u76F4\u63A5 new \u7279\u5B9A Parser\\nDorisStatementParser statementParser = new DorisStatementParser(sql);\\nSQLStatement sqlStatement = statementParser.parseStatement();\\n```\\n\\n### 4.2 \u4E1A\u52A1\u89E3\u6790\u5C42\\n\\n- **\u89E3\u6790\u5C42**\uFF1A\u4E0D\u540C\u6570\u636E\u6E90 \u2192 \u7EDF\u4E00\u62BD\u8C61\u7ED3\u6784\u8BED\u6CD5\u6811\uFF1B\\n- **\u5E94\u7528\u5C42**\uFF1A\u9488\u5BF9\u7EDF\u4E00 AST \u5B9E\u73B0\u4E00\u5957\u89E3\u6790\u65B9\u6CD5\uFF1B\u7279\u5B9A\u6570\u636E\u6E90\u5728 AST \u4E2D\u81EA\u5B9A\u4E49\u4E86\u90E8\u5206\u8282\u70B9\u65F6\uFF0C\u5E94\u7528\u5C42\u518D\u9488\u5BF9\u8BE5\u6570\u636E\u6E90\u7684\u8282\u70B9\u505A\u5206\u5C42\u5904\u7406\u3002\\n\\n![\u4E1A\u52A1\u89E3\u6790\u5206\u5C42](assets/06-business-layer.png)\\n\\n\u9488\u5BF9\u62BD\u8C61\u8BED\u6CD5\u6811\u5B9E\u73B0\u901A\u7528\u89E3\u6790\u7EC4\u4EF6\uFF1A\\n\\n![\u5E94\u7528\u5C42\u901A\u7528\u89E3\u6790\u7EC4\u4EF6](assets/07-application-components.png)\\n\\n\u540E\u7EED\u6269\u5C55\u65F6\uFF0C\u82E5\u5728\u8BED\u6CD5\u5C42\u5355\u72EC\u5B9E\u73B0\u4E86\u67D0\u4E2A\u8282\u70B9\uFF0C\u53EA\u9700\u7EE7\u627F `BaseXxxClient`\uFF0C\u5355\u72EC\u5B9E\u73B0\u5DEE\u5F02\u65B9\u6CD5\u5373\u53EF\uFF0C\u91CD\u590D\u903B\u8F91\u590D\u7528\uFF1A\\n\\n![\u7EE7\u627F BaseXxxClient \u6269\u5C55](assets/08-inherit-baseclient.png)\\n\\n\u521B\u5EFA Client \u540E\uFF0C\u5728\u5BF9\u5E94 `XxxSqlParser` \u4E2D\u6CE8\u518C\uFF1A\\n\\n![\u5728\u65B9\u8A00\u89E3\u6790\u5668\u4E2D\u6CE8\u518C Client](assets/09-register-client.png)\\n\\n\u793A\u4F8B\uFF1A\\n\\n```java\\n// \u51C6\u5907 SQL\\nString sql = getSql();\\n\\n// 1\u3001\u83B7\u53D6\u89E3\u6790\u5668\uFF08\u5DE5\u5382\u65B9\u5F0F\uFF09\\nISqlParser sqlParser = SqlParserFactory.getSqlParser(DbType.mysql);\\n\\n// 2.1\u3001\u89E3\u6790\u8868\\nParseTableResult parseTableResult = sqlParser.parseTables(sql);\\nSystem.out.println(parseTableResult.getMainTable()); // \u4E3B\u8868\\nSystem.out.println(parseTableResult.getAllTableName()); // \u6240\u6709\u8868\\n\\n// 2.2\u3001\u89E3\u6790\u5B57\u6BB5\u8840\u7F18\uFF08select * \u573A\u666F\u53EF\u4F20\u5165 tableColumnsMap \u63D0\u4F9B\u5B57\u6BB5\u5143\u6570\u636E\uFF09\\nColumnLineageResult columnLineageResult = sqlParser.parseColumnLineages(sql, tableColumnsMap);\\n\\n// 2.3\u3001\u89E3\u6790\u8868\u8840\u7F18\\nTableLineageResult tableLineageResult = sqlParser.parseTableLineages(sql);\\n\\n// 2.4\u3001\u89E3\u6790\u51FD\u6570\\nSet functions = sqlParser.parseFunction(sql);\\n```\\n\\n### 4.3 \u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0\\n\\n\u540E\u7EED\u8BED\u6CD5\u89E3\u6790\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u90FD\u53EF\u72EC\u7ACB\u6269\u5C55\uFF1A\\n\\n![\u6539\u9020\u540E\u6574\u4F53\u5B9E\u73B0](assets/10-after-refactor.png)\\n\\n---\\n\\n## \u4E94\u3001\u4E1A\u52A1\u5C42\u89E3\u6790\u7684\u91CD\u65B0\u5B9E\u73B0\\n\\n\u5386\u53F2\u4E0A\u57FA\u4E8E Druid \u7684\u4E1A\u52A1\u5C42\u5B9E\u73B0\u5F88\u5C11\uFF08\u4EC5 API \u89E3\u6790\u3001\u79BB\u7EBF\u90E8\u5206\u89E3\u6790\u7528 Druid \u515C\u5E95\uFF09\uFF0C\u56E0\u6B64\u8868\u89E3\u6790\u3001\u8840\u7F18\u89E3\u6790\u90FD\u9700\u8981\u91CD\u65B0\u5B9E\u73B0\u3002\\n\\n**\u6709\u8840\u7F18\u7279\u5F81\u7684 SQL \u7C7B\u578B**\uFF1A`insert into/overwrite ... select`\u3001`create ... select`\u3001`with as ... insert`\u3002\\n\\n### 5.1 \u5B57\u6BB5\u8840\u7F18\u89E3\u6790\\n\\n\u6838\u5FC3\u601D\u8DEF\u662F**\u628A\u6765\u6E90\u4E0E\u76EE\u6807\u5404\u81EA\u5F52\u4E00\u4E3A\u4E00\u5F20\u4E8C\u7EF4\u8868**\u3002\\n\\n\u4EE5\u4E00\u6761 `insert select` \u4E3A\u4F8B\uFF1A\\n\\n```sql\\ninsert into new_table (id, name)\\nselect a.id as aid, b.name as bname\\nfrom old_table as a\\nleft join old_table2 b on a.id = b.id\\n```\\n\\n1. \u62C6\u6210\u4E24\u4E2A\u90E8\u5206\uFF1A`insert` \u76EE\u6807\u7AEF\u3001`select` \u6765\u6E90\u7AEF\uFF1B\\n2. \u5404\u81EA\u8FFD\u6EAF\u5F97\u5230\u4E00\u7EC4\u5217\u8868\uFF1A\\n\\n```text\\n# \u76EE\u6807\u7AEF\\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\\n id id new_table\\n name name new_table\\n\\n# \u6765\u6E90\u7AEF\\n\u771F\u5B9E\u5B57\u6BB5 \u522B\u540D\u5B57\u6BB5 \u771F\u5B9E\u8868\u540D\\n id aid old_table\\n name bname old_table2\\n```\\n\\n3. \u4E24\u7EC4\u6309\u56FA\u5B9A\u89C4\u5219\u5339\u914D\uFF0C\u5373\u5F97\u5B57\u6BB5\u8840\u7F18\uFF1A\\n\\n```text\\n# \u7B2C\u4E00\u6761\\nadmin \u76EE\u6807\u7AEF new_table.id \u2190 \u6765\u6E90\u7AEF old_table.id\\n# \u7B2C\u4E8C\u6761\\n\u76EE\u6807\u7AEF new_table.name \u2190 \u6765\u6E90\u7AEF old_table2.name\\n```\\n\\n\u6765\u6E90\u7AEF\u7684\u300C\u771F\u5B9E\u8868\u540D \u2192 \u6765\u6E90\u8868\u300D\u300C\u771F\u5B9E\u5B57\u6BB5 \u2192 \u6765\u6E90\u5B57\u6BB5\u300D\uFF0C\u76EE\u6807\u7AEF\u7684\u300C\u522B\u540D\u5B57\u6BB5 \u2192 \u76EE\u6807\u5B57\u6BB5\u300D\u3002\\n\\n\u5BF9\u4E8E `with as` \u573A\u666F\uFF0C\u6BCF\u4E2A CTE \u7684 `()` \u4F5C\u4E3A\u4E00\u7EC4\u540C\u6837\u5F52\u4E00\u4E3A\u4E8C\u7EF4\u8868\u518D\u5339\u914D\uFF1B\u5BF9\u4E8E**\u5355\u5217\u6765\u6E90\u4E8E\u591A\u5B57\u6BB5**\u7684\u573A\u666F\uFF08\u5982 `concat(t1.name, t2.name)`\uFF09\uFF0C\u771F\u5B9E\u5B57\u6BB5\u4E0E\u771F\u5B9E\u8868\u540D\u4EE5 `,` \u5408\u5E76\uFF0C\u6700\u7EC8\u62C6\u6210\u591A\u6761\u8840\u7F18\u3002\\n\\n### 5.2 \u8868\u8840\u7F18\u89E3\u6790\\n\\n\u672C\u8D28\u4E0E\u5B57\u6BB5\u8840\u7F18\u7C7B\u4F3C\uFF0C\u66F4\u591A\u662F\u5BF9\u8868\u8FDB\u884C\u5206\u7EC4\u5217\u8868\uFF0C\u4E00\u4E2A `select` \u540C\u6837\u5F97\u5230\u4E00\u7EC4\u300C\u8868\u3001\u8868\u522B\u540D\u300D\u7684\u4E8C\u7EF4\u8868\uFF0C\u6700\u7EC8\u4E0E `insert` \u76EE\u6807\u8868\u5339\u914D\u5373\u53EF\u5B8C\u6210\u8868\u8840\u7F18\u3002\\n\\n### 5.3 \u8868\u89E3\u6790\\n\\n\u4E0E\u8868\u8840\u7F18\u7C7B\u4F3C\uFF0C\u9700\u8981\u89E3\u6790\u51FA\u6240\u6709\u771F\u5B9E\u8868\uFF1B\u9664\u4E86\u8FFD\u6EAF\u771F\u5B9E\u8868\u7684\u8FC7\u7A0B\uFF0C\u8FD8\u8981\u5408\u5E76\u6CA1\u6709\u88AB\u8FFD\u6EAF\u5230\u7684\u771F\u5B9E\u8868\uFF0C\u540C\u65F6\u8986\u76D6\u6BD4\u8868\u8840\u7F18\u66F4\u591A\u7684 SQL \u7ED3\u6784\uFF08`select`\u3001`update`\u3001`delete`\u3001`insert`\u3001`drop`\u3001`rename` \u7B49\uFF09\u3002\\n\\n### 5.4 \u51FD\u6570\u89E3\u6790\\n\\n\u51FD\u6570\u4E0E\u8840\u7F18\u65E0\u5173\uFF0C\u76F4\u63A5\u4F7F\u7528 **Visitor \u6A21\u5F0F**\u6536\u96C6\u6240\u6709\u51FD\u6570\u5373\u53EF\uFF1A\\n\\n![\u57FA\u4E8E Visitor \u7684\u51FD\u6570\u89E3\u6790](assets/11-function-visitor.png)\\n\\n### 5.5 \u5176\u4ED6\u4E1A\u52A1\u80FD\u529B\\n\\n- **SQL \u8131\u654F\uFF08\u79BB\u7EBF\uFF09**\uFF1A\u590D\u7528\u5B57\u6BB5\u8840\u7F18\u7684 select column \u7EC4\u4EF6\u62FF\u5230\u5B57\u6BB5\u5217\u8868\uFF0C\u518D\u7ED3\u5408\u8BED\u6CD5\u5C42\u4F4D\u70B9\u80FD\u529B\u8FDB\u884C\u6539\u5199\uFF1B\u96BE\u70B9\u662F Druid \u65E0\u7CBE\u786E\u539F\u59CB SQL \u4F4D\u70B9\uFF0C\u9700\u8981\u6269\u5C55\u3002\\n- **\u884C\u7EA7\u6743\u9650\u6539\u5199 SQL**\uFF1A\u5229\u7528 Druid API \u8865\u5145 AST \u8282\u70B9\uFF0C\u518D\u8F6C\u56DE SQL\uFF0C\u672C\u8D28\u662F\u6839\u636E\u4E3B\u4F53 select \u5C01\u88C5/\u8865\u5145\u6761\u4EF6\u8282\u70B9\u540E\u91CD\u65B0\u8F93\u51FA\u3002\\n\\n---\\n\\n## \u516D\u3001SqlParserX \u7684\u8BDE\u751F\\n\\n\u5728\u5185\u90E8\u53CC\u5C42\u6539\u9020\u9A8C\u8BC1\u843D\u5730\u4E4B\u540E\uFF0C\u4E00\u4E2A\u66F4\u6E05\u6670\u7684\u60F3\u6CD5\u51FA\u73B0\u4E86\uFF1A**\u80FD\u4E0D\u80FD\u628A\u300C\u57FA\u4E8E Druid \u7684 SQL \u89E3\u6790\u300D\u505A\u6210\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EF\u72EC\u7ACB\u6F14\u8FDB\u7684\u5F00\u6E90\u9879\u76EE\uFF1F**\\n\\n\u4E8E\u662F\u6709\u4E86 **SqlParserX** \u2014\u2014 \u4E00\u4E2A\u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C**\u5B8C\u5168\u57FA\u4E8E Druid \u5B9E\u73B0\u5404\u7C7B\u4E0D\u540C SQL \u89E3\u6790**\u7684\u5F00\u6E90\u9879\u76EE\u3002\\n\\n### 6.1 \u53CC\u5C42\u67B6\u6784\\n\\nSqlParserX \u5C06\u89E3\u6790\u5185\u6838\u62C6\u5206\u4E3A\u4E24\u4E2A\u72EC\u7ACB Jar Module\uFF0C\u7ED3\u6784\u5BF9\u79F0\u3001\u804C\u8D23\u6E05\u6670\uFF1A\\n\\n```text\\nSqlParserX\uFF08\u6839 Reactor\uFF09\\n\u251C\u2500\u2500 sqlparserx-engine\uFF08\u805A\u5408\u7236\u6A21\u5757\uFF0Cpackaging=pom\uFF09\\n\u2502 \u251C\u2500\u2500 sqlparserx-syntax\uFF08jar\uFF0C\u8BED\u6CD5\u89E3\u6790\u5C42\uFF0C\u57FA\u4E8E Druid\uFF09 \u2190 \u53EA\u7BA1 SQL \u2192 AST\\n\u2502 \u2514\u2500\u2500 sqlparserx-core\uFF08jar\uFF0C\u4E1A\u52A1\u89E3\u6790\u5C42\uFF0C\u4F9D\u8D56 syntax\uFF09 \u2190 \u53EA\u7BA1 AST \u2192 \u4E1A\u52A1\u7ED3\u679C\\n\u251C\u2500\u2500 sqlparserx-web\uFF08HTTP \u670D\u52A1\uFF09\\n\u251C\u2500\u2500 sqlparserx-mcp-server-sse\uFF08MCP Server\uFF09\\n\u2514\u2500\u2500 sqlparserx-ui\uFF08\u524D\u7AEF\uFF09\\n```\\n\\n- **\u8BED\u6CD5\u89E3\u6790\u5C42\uFF08`sqlparserx-syntax`\uFF09**\uFF1A\u7EDF\u4E00\u7EF4\u62A4 Druid \u4F9D\u8D56\u3001SQL\u2192AST\u3001\u591A\u8BED\u53E5\u89E3\u6790\u4E0E\u5207\u5206\uFF0C\u4EE5\u53CA\u540E\u7EED\u6570\u636E\u6E90 Lexer / StatementParser / AST Node \u6269\u5C55\uFF1B\\n- **\u4E1A\u52A1\u89E3\u6790\u5C42\uFF08`sqlparserx-core`\uFF09**\uFF1A\u57FA\u4E8E\u7EDF\u4E00 AST \u5B9E\u73B0\u771F\u5B9E\u8868\u3001\u5EFA\u8868\u7ED3\u6784\u3001\u8868/\u5B57\u6BB5\u8840\u7F18\u3001\u51FD\u6570\u4E0E SQL \u6743\u9650\u6539\u5199\u3002\\n\\n\u4E24\u5C42\u4EE5 `DbType + SQLStatement AST` \u4F5C\u4E3A\u8FDE\u63A5\u5951\u7EA6\uFF0C**\u4E0D\u989D\u5916\u590D\u5236\u4E00\u5957 AST**\uFF0C\u907F\u514D\u957F\u671F\u8F6C\u6362\u4E0E\u540C\u6B65\u3002\u8BE6\u7EC6\u8BBE\u8BA1\u89C1 [\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1](https://github.com/DTStack/SqlParserX/blob/main/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1.md)\u3002\\n\\n### 6.2 \u4ECE\u5185\u90E8\u4E8C\u5F00\u8D70\u5411\u5B98\u65B9 Druid\\n\\n\u9879\u76EE\u65E9\u671F\u4F9D\u8D56\u5185\u90E8\u4E8C\u5F00\u7684 Druid \u7248\u672C\uFF0C\u968F\u7740\u80FD\u529B\u6C89\u6DC0\uFF0CSqlParserX \u5DF2\u7EDF\u4E00\u4E3A**\u5B98\u65B9 Druid 1.2.28**\uFF0C\u964D\u4F4E\u7EF4\u62A4\u6210\u672C\u3001\u65B9\u4FBF\u793E\u533A\u534F\u4F5C\u3002\u8BED\u6CD5\u5C42\u575A\u6301\u300C**\u4E0D\u5728\u4E1A\u52A1\u5C42\u7528\u5927\u91CF\u6B63\u5219\u66FF\u6362\u89C4\u907F\u8BED\u6CD5\u95EE\u9898**\u300D\uFF0C\u65B9\u8A00\u8BED\u6CD5\u5DEE\u5F02\u4E00\u5F8B\u56DE\u5230\u8BED\u6CD5\u5C42\u6309 Druid \u7684\u65B9\u5F0F\u6269\u5C55\u3002\\n\\n### 6.3 \u80FD\u529B\u4E0E\u6587\u6863\u4F53\u7CFB\\n\\nSqlParserX \u4E0D\u4EC5\u63D0\u4F9B\u4EE3\u7801\uFF0C\u4E5F\u63D0\u4F9B\u4E86\u4E00\u5957\u53EF\u7EF4\u62A4\u7684\u6587\u6863\u4F53\u7CFB\uFF1A\\n\\n- [\u53CC\u5C42\u67B6\u6784\u8BBE\u8BA1](/docs/about/architecture)\\n- [\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1](https://github.com/DTStack/SqlParserX/blob/main/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6A21\u5757\u4F9D\u8D56\u5305\u5F15\u7528\u7ED3\u6784\u8BBE\u8BA1.md)\\n- [Druid \u7248\u672C\u4E0E SQL \u8BED\u6CD5\u652F\u6301\u60C5\u51B5](https://github.com/DTStack/SqlParserX/blob/main/docs/01\u3001SQL\u8BED\u6CD5\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/Druid\u7248\u672C\u4E0ESQL\u8BED\u6CD5\u652F\u6301\u60C5\u51B5.md)\\n- [\u80FD\u529B\u652F\u6301\u60C5\u51B5\uFF08\u6570\u636E\u6E90 + \u901A\u7528\u89E3\u6790\u80FD\u529B\uFF09](https://github.com/DTStack/SqlParserX/tree/main/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u80FD\u529B\u652F\u6301\u60C5\u51B5)\\n- [\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357](https://github.com/DTStack/SqlParserX/blob/main/docs/02\u3001SQL\u4E1A\u52A1\u5C42\u89E3\u6790\u80FD\u529B\u652F\u6491\u60C5\u51B5/\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6587\u6863/SqlParserX\u89E3\u6790\u80FD\u529B\u6807\u51C6\u8FED\u4EE3\u7EF4\u62A4\u6269\u5C55\u6307\u5357.md)\\n\\n### 6.4 \u76EE\u6807\\n\\n- \u65E0\u9700\u4F9D\u8D56 Calcite\u3001ANTLR \u7B49\u5176\u4ED6\u89E3\u6790\u7EC4\u4EF6\uFF0C**\u5B8C\u5168\u57FA\u4E8E Druid** \u5B9E\u73B0\u5404\u79CD\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\uFF1B\\n- **\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX**\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\uFF1B\\n- \u65B0\u589E\u6570\u636E\u6E90\u65F6\uFF0C\u8BED\u6CD5\u5DEE\u5F02\u5728\u8BED\u6CD5\u5C42\u6269\u5C55\uFF0C\u4E1A\u52A1\u5DEE\u5F02\u5728\u4E1A\u52A1\u5C42\u6269\u5C55\uFF0C\u4E0A\u4E0B\u4E24\u5C42\u901A\u8FC7 `DbType` \u4E0E AST \u5BF9\u9F50\u3002\\n\\n---\\n\\n## \u4E03\u3001\u7ED3\u8BED\\n\\n\u4ECE\u300C\u6563\u843D\u5404\u5904\u7684\u89E3\u6790\u5668 + \u5404\u79CD\u515C\u5E95\u300D\u5230\u300C\u7EDF\u4E00 AST + \u53CC\u5C42\u5206\u5C42\u300D\uFF0C\u518D\u5230\u300C\u4E00\u4E2A\u7EAF\u51C0\u3001\u53EA\u4F9D\u8D56 Druid \u7684\u5F00\u6E90\u9879\u76EE\u300D\uFF0CSqlParserX \u7684\u8BDE\u751F\u4E0D\u662F\u4E00\u6B21\u6027\u7684\u91CD\u6784\uFF0C\u800C\u662F\u4E00\u6B21\u6B21\u628A\u95EE\u9898\u653E\u56DE\u6B63\u786E\u5C42\u6B21\u7684\u53D6\u820D\uFF1A\\n\\n> **\u8BED\u6CD5\u95EE\u9898\u6269\u5C55 Druid\uFF0C\u4E1A\u52A1\u8BED\u4E49\u6269\u5C55 SqlParserX\uFF1B\u901A\u7528\u80FD\u529B\u6C89\u6DC0 Base\uFF0C\u6570\u636E\u6E90\u5DEE\u5F02\u6309\u65B9\u8A00\u8986\u76D6\u3002**\\n\\n\u5982\u679C\u4F60\u5728\u505A\u591A\u6570\u636E\u6E90\u7684 SQL \u89E3\u6790\u3001\u8840\u7F18\u3001\u8868\u89E3\u6790\u76F8\u5173\u5DE5\u4F5C\uFF0C\u6B22\u8FCE\u4E00\u8D77\u4EA4\u6D41\u4E0E\u5171\u5EFA\u3002\\n\\n---\\n\\n> \u4F5C\u8005\uFF1Achanglu \uFF5C 2026-09-28\\n>\\n> \u672C\u6587\u56FE\u7247\u4F4D\u4E8E `assets/` \u76EE\u5F55\uFF0C\u4ED3\u5E93\u5185\u4EE5\u76F8\u5BF9\u8DEF\u5F84\u5F15\u7528\u3002"}]}}')}}]); \ No newline at end of file diff --git a/en/assets/js/f798a39c.0ace19ab.js b/en/assets/js/f798a39c.0ace19ab.js new file mode 100644 index 0000000..4b83d6c --- /dev/null +++ b/en/assets/js/f798a39c.0ace19ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7266"],{264(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>c,contentTitle:()=>d,toc:()=>a,assets:()=>o});var t=JSON.parse('{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/en/docs/next/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/master/website/docs/core/function-parse.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar_label":"Function Parsing","sidebar_position":4},"sidebar":"docs","previous":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/next/core/table-parse"},"next":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/next/core/parameter-compile"}}'),s=r(4848),i=r(8453);let c={title:"Function Parsing",description:"Extract functions, arguments and contexts used in SQL",sidebar_label:"Function Parsing",sidebar_position:4},d="Function Parsing",o={},a=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function l(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"function-parsing",children:"Function Parsing"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["Using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL to extract the set of functions:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse functions used in the SQL\n Set functions = parser.parseFunction(sql);\n\n // 3. Read the result\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"functions: [sum, count]\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Extract ",(0,s.jsx)(n.strong,{children:"function calls"})," from SQL as a de-duplicated set of function names for function-level governance and dependency analysis."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 traverse AST to collect function expressions\n \u2192 Set functions\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Set"})," (function names, lower-cased)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Coverage"}),(0,s.jsx)(n.td,{children:"built-in, aggregate, window, custom functions"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Regular function calls"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"substr(name, 1, 3)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Aggregate functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"sum"}),", ",(0,s.jsx)(n.code,{children:"count"}),", ",(0,s.jsx)(n.code,{children:"max"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Window functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"row_number() over(...)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Nested functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Recursively collect inner and outer functions"})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453(e,n,r){r.d(n,{R:()=>c,x:()=>d});var t=r(6540);let s={},i=t.createContext(s);function c(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/f798a39c.3ca9474b.js b/en/assets/js/f798a39c.3ca9474b.js deleted file mode 100644 index b51b4cb..0000000 --- a/en/assets/js/f798a39c.3ca9474b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqlparserx=self.webpackChunksqlparserx||[]).push([["7266"],{264(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>u,frontMatter:()=>c,contentTitle:()=>d,toc:()=>a,assets:()=>o});var t=JSON.parse('{"id":"core/function-parse","title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/core/function-parse.md","sourceDirName":"core","slug":"/core/function-parse","permalink":"/SqlParserX/en/docs/next/core/function-parse","draft":false,"unlisted":false,"editUrl":"https://github.com/DTStack/SqlParserX/tree/main/website/docs/core/function-parse.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"Function Parsing","description":"Extract functions, arguments and contexts used in SQL","sidebar_label":"Function Parsing","sidebar_position":4},"sidebar":"docs","previous":{"title":"Table Parsing","permalink":"/SqlParserX/en/docs/next/core/table-parse"},"next":{"title":"Parameter Extraction","permalink":"/SqlParserX/en/docs/next/core/parameter-compile"}}'),s=r(4848),i=r(8453);let c={title:"Function Parsing",description:"Extract functions, arguments and contexts used in SQL",sidebar_label:"Function Parsing",sidebar_position:4},d="Function Parsing",o={},a=[{value:"1. Add the Dependency",id:"1-add-the-dependency",level:2},{value:"2. Complete Example",id:"2-complete-example",level:2},{value:"3. Goal",id:"3-goal",level:2},{value:"4. Entry & Implementation",id:"4-entry--implementation",level:2},{value:"5. Supported Scenarios",id:"5-supported-scenarios",level:2}];function l(e){let n={blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"function-parsing",children:"Function Parsing"})}),"\n",(0,s.jsx)(n.h2,{id:"1-add-the-dependency",children:"1. Add the Dependency"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-xml",children:"\n com.dtstack\n sqlparserx-core\n 1.0-SNAPSHOT\n\n"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"sqlparserx-core"})," transitively brings in ",(0,s.jsx)(n.code,{children:"sqlparserx-syntax"})," and Druid."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"2-complete-example",children:"2. Complete Example"}),"\n",(0,s.jsxs)(n.p,{children:["Using the official ",(0,s.jsx)(n.code,{children:"sqlparserx-core/README.md"})," sample SQL to extract the set of functions:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="FunctionParseDemo.java"',children:'import com.dtstack.sqlparserx.core.parser.ISqlParser;\nimport com.dtstack.sqlparserx.core.parser.SqlParserFactory;\n\nimport com.alibaba.druid.DbType;\n\nimport java.util.Set;\n\npublic class FunctionParseDemo {\n\n public static void main(String[] args) {\n String sql = "CREATE TABLE user_order_summary AS\\n"\n + "SELECT\\n"\n + " u.id as user_id,\\n"\n + " u.name,\\n"\n + " SUM(o.amount) as total_amount,\\n"\n + " COUNT(o.id) as order_count\\n"\n + "FROM users u JOIN orders o ON u.id = o.user_id\\n"\n + "GROUP BY u.id, u.name";\n\n // 1. Get a parser\n ISqlParser parser = SqlParserFactory.getSqlParser(DbType.mysql);\n\n // 2. Parse functions used in the SQL\n Set functions = parser.parseFunction(sql);\n\n // 3. Read the result\n System.out.println("functions: " + functions);\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Console output (example):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"functions: [sum, count]\n"})}),"\n",(0,s.jsx)(n.h2,{id:"3-goal",children:"3. Goal"}),"\n",(0,s.jsxs)(n.p,{children:["Extract ",(0,s.jsx)(n.strong,{children:"function calls"})," from SQL as a de-duplicated set of function names for function-level governance and dependency analysis."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"SQLStatement AST\n \u2192 BaseSqlParser.parseFunction\n \u2192 traverse AST to collect function expressions\n \u2192 Set functions\n"})}),"\n",(0,s.jsx)(n.h2,{id:"4-entry--implementation",children:"4. Entry & Implementation"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Item"}),(0,s.jsx)(n.th,{children:"Content"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Core entry"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"ISqlParser.parseFunction(sql)"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Default impl"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"BaseSqlParser.parseFunction"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Return type"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"Set"})," (function names, lower-cased)"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Coverage"}),(0,s.jsx)(n.td,{children:"built-in, aggregate, window, custom functions"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"5-supported-scenarios",children:"5. Supported Scenarios"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Capability"}),(0,s.jsx)(n.th,{children:"Status"}),(0,s.jsx)(n.th,{children:"Notes"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Regular function calls"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"substr(name, 1, 3)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Aggregate functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"sum"}),", ",(0,s.jsx)(n.code,{children:"count"}),", ",(0,s.jsx)(n.code,{children:"max"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Window functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsxs)(n.td,{children:["e.g. ",(0,s.jsx)(n.code,{children:"row_number() over(...)"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Nested functions"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"Supported \u2705"})}),(0,s.jsx)(n.td,{children:"Recursively collect inner and outer functions"})]})]})]})]})}function u(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453(e,n,r){r.d(n,{R:()=>c,x:()=>d});var t=r(6540);let s={},i=t.createContext(s);function c(e){let n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/main.6ef13e00.js b/en/assets/js/main.51440fbc.js similarity index 77% rename from en/assets/js/main.6ef13e00.js rename to en/assets/js/main.51440fbc.js index 44aabd3..8c1d237 100644 --- a/en/assets/js/main.6ef13e00.js +++ b/en/assets/js/main.51440fbc.js @@ -35,4 +35,4 @@ Please double-check the following navbar item (themeConfig.navbar.items) of your ${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,r.jsx)(eb,{...e})},t))})}function eN({left:e,right:t}){return(0,r.jsxs)("div",{className:"navbar__inner",children:[(0,r.jsx)("div",{className:(0,o.A)(g.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,r.jsx)("div",{className:(0,o.A)(g.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function eP(){let e=(0,x.M)(),t=(0,y.p)().navbar.items,[n,a]=function(e){function t(e){return(e.position??"right")==="left"}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,r.jsx)(eN,{left:(0,r.jsxs)(r.Fragment,{children:[!e.disabled&&(0,r.jsx)(eA,{}),(0,r.jsx)(q,{}),(0,r.jsx)(eC,{items:n})]}),right:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eC,{items:a}),(0,r.jsx)(U,{className:"colorModeToggle_DEke"}),!o&&(0,r.jsx)(ef,{children:(0,r.jsx)(ed,{})})]})})}function eO(){return(0,r.jsx)(eE,{children:(0,r.jsx)(eP,{})})}function eL({item:e}){let{to:t,href:n,label:a,prependBaseUrlToHref:i,className:l,...s}=e,u=(0,G.Ay)(t),c=(0,G.Ay)(n,{forcePrependBaseUrl:!0});return(0,r.jsxs)(X.A,{className:(0,o.A)("footer__link-item",l),...n?{href:i?c:n}:{to:u},...s,children:[a,n&&!(0,W.A)(n)&&(0,r.jsx)(K.A,{})]})}function eI({item:e}){return e.html?(0,r.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)("li",{className:"footer__item",children:(0,r.jsx)(eL,{item:e})},e.href??e.to)}function eR({column:e}){return(0,r.jsxs)("div",{className:(0,o.A)(g.G.layout.footer.column,"col footer__col",e.className),children:[(0,r.jsx)("div",{className:"footer__title",children:e.title}),(0,r.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,r.jsx)(eI,{item:e},t))})]})}function ej({columns:e}){return(0,r.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,r.jsx)(eR,{column:e},t))})}function eD(){return(0,r.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function eF({item:e}){return e.html?(0,r.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,r.jsx)(eL,{item:e})}function eM({links:e}){return(0,r.jsx)("div",{className:"footer__links text--center",children:(0,r.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(eF,{item:t}),e.length!==n+1&&(0,r.jsx)(eD,{})]},n))})})}function ez({links:e}){return"title"in e[0]?(0,r.jsx)(ej,{columns:e}):(0,r.jsx)(eM,{links:e})}var eB=n(8586);function eU({logo:e}){let{withBaseUrl:t}=(0,G.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,r.jsx)(eB.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function e$({logo:e}){return e.href?(0,r.jsx)(X.A,{href:e.href,className:"footerLogoLink_BH7S",target:e.target,children:(0,r.jsx)(eU,{logo:e})}):(0,r.jsx)(eU,{logo:e})}function eq({copyright:e}){return(0,r.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function eH({style:e,links:t,logo:n,copyright:a}){return(0,r.jsx)("footer",{className:(0,o.A)(g.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,r.jsxs)("div",{className:"container container-fluid",children:[t,(n||a)&&(0,r.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,r.jsx)("div",{className:"margin-bottom--sm",children:n}),a]})]})})}let eV=a.memo(function(){let{footer:e}=(0,y.p)();if(!e)return null;let{copyright:t,links:n,logo:a,style:o}=e;return(0,r.jsx)(eH,{style:o,links:n&&n.length>0&&(0,r.jsx)(ez,{links:n}),logo:a&&(0,r.jsx)(e$,{logo:a}),copyright:t&&(0,r.jsx)(eq,{copyright:t})})}),eX=(0,T.fM)([L.a,b.o,E.Tv,eg.VQ,l.Jx,function({children:e}){return(0,r.jsx)(_.y_,{children:(0,r.jsx)(x.e,{children:(0,r.jsx)(C,{children:e})})})}]);function eG({children:e}){return(0,r.jsx)(eX,{children:e})}var eW=n(2072);function eY({error:e,tryAgain:t}){return(0,r.jsx)("main",{className:"container margin-vert--xl",children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(eW.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(u.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,r.jsx)("div",{className:"margin-vert--lg",children:(0,r.jsx)(eT.a2,{onClick:t,className:"button button--primary shadow--lw"})}),(0,r.jsx)("hr",{}),(0,r.jsx)("div",{className:"margin-vert--md",children:(0,r.jsx)(eT.bq,{error:e})})]})})})}function eK(e){let{children:t,noFooter:n,wrapperClassName:a,title:s,description:u}=e;return(0,r.jsxs)(eG,{children:[(0,r.jsx)(l.be,{title:s,description:u}),(0,r.jsx)(h,{}),(0,r.jsx)(k,{}),(0,r.jsx)(eO,{}),(0,r.jsx)("div",{id:d,className:(0,o.A)(g.G.layout.main.container,g.G.wrapper.main,"mainWrapper_z2l0",a),children:(0,r.jsx)(i.A,{fallback:e=>(0,r.jsx)(eY,{...e}),children:t})}),!n&&(0,r.jsx)(eV,{})]})}},5153(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(4848);n(6540);var a=n(5310),o=n(6497),i=n(898),l=n(1022),s=n(8586);function u({logo:e,alt:t,imageClassName:n}){let a={light:(0,o.Ay)(e.src),dark:(0,o.Ay)(e.srcDark||e.src)},i=(0,r.jsx)(s.A,{className:e.className,sources:a,height:e.height,width:e.width,alt:t,style:e.style});return n?(0,r.jsx)("div",{className:n,children:i}):i}function c(e){let{siteConfig:{title:t}}=(0,i.A)(),{navbar:{title:n,logo:s}}=(0,l.p)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,o.Ay)(s?.href||"/"),m=s?.alt??(n?"":t);return(0,r.jsxs)(a.A,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,r.jsx)(u,{logo:s,alt:m,imageClassName:c}),null!=n&&(0,r.jsx)("b",{className:d,children:n})]})}},4175(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(4848);n(6540);var a=n(3572);function o({locale:e,version:t,tag:n}){return(0,r.jsxs)(a.A,{children:[e&&(0,r.jsx)("meta",{name:"docusaurus_locale",content:e}),t&&(0,r.jsx)("meta",{name:"docusaurus_version",content:t}),n&&(0,r.jsx)("meta",{name:"docusaurus_tag",content:n}),e&&(0,r.jsx)("meta",{name:"docsearch:language",content:e}),t&&(0,r.jsx)("meta",{name:"docsearch:version",content:t}),n&&(0,r.jsx)("meta",{name:"docsearch:docusaurus_tag",content:n})]})}},8586(e,t,n){"use strict";n.d(t,{A:()=>c});var r=n(4848),a=n(6540),o=n(4164),i=n(9863),l=n(3941);let s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};function u({className:e,children:t}){let n=(0,i.A)(),{colorMode:c}=(0,l.G)();return(0,r.jsx)(r.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{let i=t({theme:n,className:(0,o.A)(e,s.themedComponent,s[`themedComponent--${n}`])});return(0,r.jsx)(a.Fragment,{children:i},n)})})}function c(e){let{sources:t,className:n,alt:a,...o}=e;return(0,r.jsx)(u,{className:n,children:({theme:e,className:n})=>(0,r.jsx)("img",{src:t[e],alt:a,className:n,...o})})}},9510(e,t,n){"use strict";n.d(t,{N:()=>p,u:()=>l});var r=n(4848),a=n(6540),o=n(9989),i=n(269);function l({initialState:e}){let[t,n]=(0,a.useState)(e??!1),r=(0,a.useCallback)(()=>{n(e=>!e)},[]);return{collapsed:t,setCollapsed:n,toggleCollapsed:r}}let s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){let n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d({as:e="div",collapsed:t,children:n,animation:o,onCollapseTransitionEnd:l,className:u}){let f=(0,a.useRef)(null);return!function({collapsibleRef:e,collapsed:t,animation:n}){let r=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let a,o=e.current;function l(){let e,t,r,a=(e=o.scrollHeight,t=n?.duration??function(e){if((0,i.O)())return 1;let t=e/36;return Math.round((4+15*t**.25+t/5)*10)}(e),r=n?.easing??"ease-in-out",{transition:`height ${t}ms ${r}`,height:`${e}px`});o.style.transition=a.transition,o.style.height=a.height}if(!r.current){c(o,t),r.current=!0;return}return o.style.willChange="height",a=requestAnimationFrame(()=>{t?(l(),requestAnimationFrame(()=>{o.style.height=s.height,o.style.overflow=s.overflow})):(o.style.display="block",requestAnimationFrame(()=>{l()}))}),()=>cancelAnimationFrame(a)},[e,t,n])}({collapsibleRef:f,collapsed:t,animation:o}),(0,r.jsx)(e,{ref:f,onTransitionEnd:e=>{"height"===e.propertyName&&(c(f.current,t),l?.(t))},className:u,children:n})}function f({collapsed:e,...t}){let[n,i]=(0,a.useState)(!e),[l,s]=(0,a.useState)(e);return(0,o.A)(()=>{e||i(!0)},[e]),(0,o.A)(()=>{n&&s(e)},[n,e]),n?(0,r.jsx)(d,{...t,collapsed:l}):null}function p({lazy:e,...t}){return(0,r.jsx)(e?f:d,{...t})}},3337(e,t,n){"use strict";n.d(t,{M:()=>m,o:()=>p});var r=n(4848),a=n(6540),o=n(9863),i=n(1367),l=n(2260),s=n(1022);let u=(0,i.Wf)("docusaurus.announcement.dismiss"),c=(0,i.Wf)("docusaurus.announcement.id"),d=e=>u.set(String(e)),f=a.createContext(null);function p({children:e}){let t=function(){let{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(()=>!!t&&"true"===u.get());(0,a.useEffect)(()=>{r("true"===u.get())},[]);let i=(0,a.useCallback)(()=>{d(!0),r(!0)},[]);return(0,a.useEffect)(()=>{if(!e)return;let{id:t}=e,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");let a=t!==n;c.set(t),a&&d(!1),(a||"true"!==u.get())&&r(!1)},[e]),(0,a.useMemo)(()=>({isActive:!!e&&!n,close:i}),[e,n,i])}();return(0,r.jsx)(f.Provider,{value:t,children:e})}function m(){let e=(0,a.useContext)(f);if(!e)throw new l.dV("AnnouncementBarProvider");return e}},3941(e,t,n){"use strict";n.d(t,{G:()=>w,a:()=>v});var r=n(4848),a=n(6540),o=n(9863),i=n(2260),l=n(1367),s=n(1022);function u(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}let c=a.createContext(void 0),d=(0,l.Wf)("theme"),f="system",p=e=>"dark"===e?"dark":"light",m=e=>null===e||e===f?null:p(e),g=()=>p(document.documentElement.getAttribute("data-theme")),h=e=>{document.documentElement.setAttribute("data-theme",p(e))},y=()=>m(document.documentElement.getAttribute("data-theme-choice")),b=e=>{document.documentElement.setAttribute("data-theme-choice",m(e)??f)};function v({children:e}){let t=function(){let{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),{colorMode:r,setColorModeState:i,colorModeChoice:l,setColorModeChoiceState:c}=function(){let{colorMode:{defaultMode:e}}=(0,s.p)(),t=(0,o.A)(),[n,r]=(0,a.useState)(t?g():e),[i,l]=(0,a.useState)(t?y():null);return(0,a.useEffect)(()=>{r(g()),l(y())},[]),{colorMode:n,setColorModeState:r,colorModeChoice:i,setColorModeChoiceState:l}}();(0,a.useEffect)(()=>{t&&d.del()},[t]);let f=(0,a.useCallback)((t,r={})=>{let{persist:a=!0}=r;if(null===t){let t=n?u():e;h(t),i(t),b(null),c(null)}else h(t),b(t),i(t),c(t);a&&(null===t?d.del():d.set(p(t)))},[i,c,n,e]);return(0,a.useEffect)(()=>d.listen(e=>{f(m(e.newValue))}),[f]),(0,a.useEffect)(()=>{if(null===l&&n){var e,t;let n;return e=e=>{i(e),h(e)},t=()=>e(u()),(n=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",t),()=>n.removeEventListener("change",t)}},[n,l,i]),(0,a.useMemo)(()=>({colorMode:r,colorModeChoice:l,setColorMode:f,get isDarkTheme(){return"dark"===r},setLightTheme(){f("light")},setDarkTheme(){f("dark")}}),[r,l,f])}();return(0,r.jsx)(c.Provider,{value:t,children:e})}function w(){let e=(0,a.useContext)(c);if(null==e)throw new i.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},9965(e,t,n){"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(4848),a=n(6540),o=n(7e3),i=n(3741),l=n(6629),s=n(1022),u=n(2260);let c=a.createContext(void 0);function d({handler:e}){return(0,l.$Z)(e),null}function f({children:e}){let t=function(){let e=function(){let e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,i.l)(),n=!e&&"mobile"===t,[r,l]=(0,a.useState)(!1),u=(0,a.useCallback)(()=>{l(e=>!e)},[]);return(0,a.useEffect)(()=>{"desktop"===t&&l(!1)},[t]),(0,a.useMemo)(()=>({disabled:e,shouldRender:n,toggle:u,shown:r}),[e,n,u,r])}();return(0,r.jsxs)(r.Fragment,{children:[t.shown&&(0,r.jsx)(d,{handler:()=>(t.toggle(),!1)}),(0,r.jsx)(c.Provider,{value:t,children:e})]})}function p(){let e=a.useContext(c);if(void 0===e)throw new u.dV("NavbarMobileSidebarProvider");return e}},7e3(e,t,n){"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(4848),a=n(6540),o=n(2260);let i=a.createContext(null);function l({children:e}){let t=(0,a.useState)({component:null,props:null});return(0,r.jsx)(i.Provider,{value:t,children:e})}function s(){let e=(0,a.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u({component:e,props:t}){let n=(0,a.useContext)(i);if(!n)throw new o.dV("NavbarSecondaryMenuContentProvider");let[,r]=n,l=(0,o.Be)(t);return(0,a.useEffect)(()=>{r({component:e,props:l})},[r,e,l]),(0,a.useEffect)(()=>()=>r({component:null,props:null}),[r]),null}},3741(e,t,n){"use strict";n.d(t,{l:()=>o});var r=n(6540),a=n(1289);function o({desktopBreakpoint:e=996}={}){let[t,n]=(0,r.useState)(()=>"ssr");return(0,r.useEffect)(()=>{function t(){n(function(e){if(!a.A.canUseDOM)throw Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?"desktop":"mobile"}(e))}return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},8287(e,t,n){"use strict";n.d(t,{G:()=>r});let r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},tabs:{container:"theme-tabs-container"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`,docCard:{container:"theme-doc-card-container",heading:"theme-doc-card-heading",icon:"theme-doc-card-icon",title:"theme-doc-card-title",description:"theme-doc-card-description"}},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},269(e,t,n){"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},4727(e,t,n){"use strict";n.d(t,{v:()=>a});var r=n(1022);function a(e){let{navbar:{hideOnScroll:t}}=(0,r.p)();if(void 0!==e)return t?"anchorTargetHideOnScrollNavbar_vjPI":"anchorTargetStickyNavbar_Vzrq"}},3072(e,t,n){"use strict";n.d(t,{MN:()=>s,k2:()=>c,a2:()=>l,bq:()=>u});var r=n(4848),a=n(6540),o=n(568),i=n(5248);function l(e){return(0,r.jsx)("button",{type:"button",...e,children:(0,r.jsx)(o.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function s({error:e,tryAgain:t}){return(0,r.jsxs)("div",{className:"errorBoundaryFallback_VBag",children:[(0,r.jsx)("p",{children:e.message}),(0,r.jsx)(l,{onClick:t})]})}function u({error:e}){let t=(0,i.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{className:"errorBoundaryError_a6uf",children:t})}class c extends a.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},6629(e,t,n){"use strict";n.d(t,{$Z:()=>i,Hl:()=>l,jy:()=>s});var r=n(6540),a=n(6347),o=n(2260);function i(e){let t,n;t=(0,a.W6)(),n=(0,o._q)((t,n)=>{if("POP"===n)return e(t,n)}),(0,r.useEffect)(()=>t.block((e,t)=>n(e,t)),[t,n])}function l(e){let t=(0,a.W6)();return(0,r.useSyncExternalStore)(t.listen,()=>e(t),()=>e({...t,location:{...t.location,search:"",hash:"",state:void 0}}))}function s(e,t){let n=(function(e,t){let n=new URLSearchParams;for(let r of e)for(let[e,a]of r.entries())"append"===t?n.append(e,a):n.set(e,a);return n})(e.map(e=>new URLSearchParams(e??"")),t).toString();return n?`?${n}`:n}},618(e,t,n){"use strict";function r(e){return Array.from(new Set(e))}function a(e,t){let n={},r=0;for(let a of e){let e=t(a,r);n[e]??=[],n[e].push(a),r+=1}return n}n.d(t,{$z:()=>a,sb:()=>r})},4308(e,t,n){"use strict";n.d(t,{Jx:()=>y,be:()=>m,e3:()=>h});var r=n(4848),a=n(6540),o=n(4164),i=n(3572),l=n(8491),s=n(6497),u=n(3899);function c({title:e}){let t=(0,u.s$)().format(e);return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t})]})}function d({description:e}){return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{name:"description",content:e}),(0,r.jsx)("meta",{property:"og:description",content:e})]})}function f({image:e}){let{withBaseUrl:t}=(0,s.hH)(),n=t(e,{absolute:!0});return(0,r.jsxs)(i.A,{children:[(0,r.jsx)("meta",{property:"og:image",content:n}),(0,r.jsx)("meta",{name:"twitter:image",content:n})]})}function p({keywords:e}){return(0,r.jsx)(i.A,{children:(0,r.jsx)("meta",{name:"keywords",content:Array.isArray(e)?e.join(","):e})})}function m({title:e,description:t,keywords:n,image:a,children:o}){return(0,r.jsxs)(r.Fragment,{children:[e&&(0,r.jsx)(c,{title:e}),t&&(0,r.jsx)(d,{description:t}),n&&(0,r.jsx)(p,{keywords:n}),a&&(0,r.jsx)(f,{image:a}),o&&(0,r.jsx)(i.A,{children:o})]})}let g=a.createContext(void 0);function h({className:e,children:t}){let n=a.useContext(g),l=(0,o.A)(n,e);return(0,r.jsxs)(g.Provider,{value:l,children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("html",{className:l})}),t]})}function y({children:e}){var t;let n=(0,l.A)(),a=(t=n.plugin.name,`plugin-${t.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`),i=`plugin-id-${n.plugin.id}`;return(0,r.jsx)(h,{className:(0,o.A)(a,i),children:e})}},2260(e,t,n){"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(4848),a=n(6540),o=n(9989);function i(e){let t=(0,a.useRef)(e);return(0,o.A)(()=>{t.current=e},[e]),(0,a.useCallback)((...e)=>t.current(...e),[])}function l(e){let t=(0,a.useRef)(void 0);return(0,o.A)(()=>{t.current=e}),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){let t=Object.entries(e);return t.sort((e,t)=>e[0].localeCompare(t[0])),(0,a.useMemo)(()=>e,t.flat())}function c(e){return({children:t})=>(0,r.jsx)(r.Fragment,{children:e.reduceRight((e,t)=>(0,r.jsx)(t,{children:e}),t)})}},9209(e,t,n){"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8460),o=n(898);function i(e,t){let n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){let{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)(()=>(function({baseUrl:e,routes:t}){function n(t){return t.path===e&&!0===t.exact}function r(t){return t.path===e&&!t.exact}return function e(t){if(0===t.length)return;let a=t.find(n);return a||e(t.filter(r).flatMap(e=>e.routes??[]))}(t)})({routes:a.A,baseUrl:e}),[e])}},8584(e,t,n){"use strict";n.d(t,{Mq:()=>d,Tv:()=>u,gk:()=>f});var r=n(4848),a=n(6540),o=n(1289),i=n(9863);n(9989);var l=n(2260);let s=a.createContext(void 0);function u({children:e}){let t,n=(t=(0,a.useRef)(!0),(0,a.useMemo)(()=>({scrollEventsEnabledRef:t,enableScrollEvents:()=>{t.current=!0},disableScrollEvents:()=>{t.current=!1}}),[]));return(0,r.jsx)(s.Provider,{value:n,children:e})}let c=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t=[]){let{scrollEventsEnabledRef:n}=function(){let e=(0,a.useContext)(s);if(null==e)throw new l.dV("ScrollControllerProvider");return e}(),r=(0,a.useRef)(c()),o=(0,l._q)(e);(0,a.useEffect)(()=>{let e=()=>{if(!n.current)return;let e=c();o(e,r.current),r.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)},[o,n,...t])}function f(){let e=(0,a.useRef)(null),t=(0,i.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{let r,a;e.current=t?(window.scrollTo({top:n,behavior:"smooth"}),()=>{}):(r=null,a=document.documentElement.scrollTop>n,!function e(){let t=document.documentElement.scrollTop;(a&&t>n||!a&&tr&&cancelAnimationFrame(r))},cancelScroll:()=>e.current?.()}}},1367(e,t,n){"use strict";n.d(t,{Wf:()=>s}),n(6540);var r=JSON.parse('{"N":"localStorage","M":"-697"}');let a=r.N;function o({key:e,oldValue:t,newValue:n,storage:r}){if(t===n)return;let a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,e,t,n,window.location.href,r),window.dispatchEvent(a)}let i=!1,l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){let n=`${e}${r.M}`;if("u"{try{return u.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{let t=u.getItem(n);u.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:u})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{let e=u.getItem(n);u.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:u})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{let t=t=>{t.storageArea===u&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(e){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,e),()=>{}}}}}},3899(e,t,n){"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(4848),a=n(6540),o=n(898),i=n(8491),l=n(2260);let s=({title:e,siteTitle:t,titleDelimiter:n})=>{let r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,a.createContext)(null);function c({formatter:e,children:t}){return(0,r.jsx)(u.Provider,{value:e,children:t})}function d(){let e=function(){let e=(0,a.useContext)(u);if(null===e)throw new l.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:r}=t,{plugin:c}=(0,i.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:r,plugin:c,defaultFormatter:s})}}},5243(e,t,n){"use strict";n.d(t,{o:()=>i});var r=n(898),a=n(6347),o=n(5248);function i(){let{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:i}=(0,a.zy)(),l=(0,o.applyTrailingSlash)(i,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){let r=function(e){let t=n[e];if(!t)throw Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e),a=`${t?r.url:""}`,o=r.baseUrl;return`${a}${o}${l}`}}}},8398(e,t,n){"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(2260);function i(e){let t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},1022(e,t,n){"use strict";n.d(t,{p:()=>a});var r=n(898);function a(){return(0,r.A)().siteConfig.themeConfig}},4207(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){let{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#")||void 0===n)return e;let[i]=e.split(/[#?]/),l="/"===i||i===r?i:n?a(i):o(i);return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;let r=n(9262);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},7541(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},5248(e,t,n){"use strict";t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0;let r=n(1635);t.blogPostContainerID="__blog-post-container";var a=n(4207);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r.__importDefault(a).default}}),n(9262);var o=n(7541);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9262(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},4784(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>r});let r={title:"SqlParserX",tagline:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305",favicon:"img/logo.png",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0,siteStorageNamespacing:!0,fasterByDefault:!0,mdx1CompatDisabledByDefault:!0},experimental_vcs:{},experimental_router:"browser",faster:{swcJsLoader:!0,swcJsMinimizer:!0,swcHtmlMinimizer:!0,lightningCssMinimizer:!0,mdxCrossCompilerCache:!0,rspackBundler:!0,rspackPersistentCache:!0,ssgWorkerThreads:!0,gitEagerVcs:!0}},url:"https://dtstack.github.io",baseUrl:"/SqlParserX/en/",organizationName:"DTStack",projectName:"SqlParserX",deploymentBranch:"gh-pages",trailingSlash:!1,onBrokenLinks:"throw",markdown:{mermaid:!0,hooks:{onBrokenMarkdownLinks:"warn",onBrokenMarkdownImages:"throw"},format:"mdx",emoji:!0,mdx1Compat:{comments:!1,admonitions:!1,headingIds:!1},anchors:{maintainCase:!1}},themes:["@docusaurus/theme-mermaid"],i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans","en"],localeConfigs:{"zh-Hans":{label:"\u7B80\u4F53\u4E2D\u6587",direction:"ltr",htmlLang:"zh-Hans"},en:{label:"English",direction:"ltr",htmlLang:"en"}},path:"i18n"},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",editUrl:"https://github.com/DTStack/SqlParserX/tree/main/website/",showLastUpdateAuthor:!1,showLastUpdateTime:!1,versions:{current:{label:"Next \u{1F6A7}"}},lastVersion:"1.0"},blog:{showReadingTime:!0,feedOptions:{type:["rss","atom"],xslt:!0},editUrl:"https://github.com/DTStack/SqlParserX/tree/main/website/",onInlineTags:"warn",onInlineAuthors:"warn",onUntruncatedBlogPosts:"warn"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/social-card.svg",colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},announcementBar:{id:"announcement",content:"\u2B50 \u5982\u679C\u4F60\u89C9\u5F97 SqlParserX \u6709\u7528\uFF0C\u6B22\u8FCE\u5230 GitHub \u70B9\u4E2A Star",backgroundColor:"#fafbfc",textColor:"#091E42",isCloseable:!0},navbar:{title:"SqlParserX",logo:{alt:"SqlParserX Logo",src:"img/logo.png"},items:[{to:"/",label:"Home",position:"left"},{type:"docSidebar",sidebarId:"docs",position:"left",label:"Document"},{to:"/blog",label:"Blog",position:"left"},{to:"/community",label:"Community",position:"left"},{type:"docsVersionDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/DTStack/SqlParserX",position:"right",className:"header-github-link","aria-label":"GitHub repository"}],hideOnScroll:!1},footer:{style:"light",links:[{title:"Docs",items:[{label:"Introduction",to:"/docs/about/introduction"},{label:"Quick Start",to:"/docs/quickstart/setup"},{label:"Contributing",to:"/docs/contributing"}]},{title:"Community",items:[{label:"GitHub",href:"https://github.com/DTStack/SqlParserX"},{label:"Blog",to:"/blog"},{label:"Community",to:"/community"}]},{title:"More",items:[{label:"Releases",href:"https://github.com/DTStack/SqlParserX/releases"},{label:"Architecture",to:"/docs/about/architecture"}]}],copyright:"Copyright \xa9 2026 SqlParserX. Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["bash","json","nginx","java","sql","python"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,storage:{type:"localStorage",namespace:!0},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},8168(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},594(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164(e,t,n){"use strict";n.d(t,{A:()=>r});let r=function(){for(var e,t,n=0,r="",a=arguments.length;nU,f4:()=>eb});var s,u,c,d,f,p,m,g,h,y,b,v,w,S,k,x,E,T,_=n(6540),A=n(4164),C=Object.create,N=Object.defineProperty,P=Object.defineProperties,O=Object.getOwnPropertyDescriptor,L=Object.getOwnPropertyDescriptors,I=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,j=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,M=(e,t,n)=>t in e?N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))D.call(t,n)&&M(e,n,t[n]);if(R)for(var n of R(t))F.call(t,n)&&M(e,n,t[n]);return e},B=(e,t)=>{var n={};for(var r in e)D.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&R)for(var r of R(e))0>t.indexOf(r)&&F.call(e,r)&&(n[r]=e[r]);return n},U=(l=null!=(o=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=c.reach));k+=S.value.length,S=S.next){var x,E=S.value;if(n.length>t.length)return;if(!(E instanceof a)){var T=1;if(y){if(!(x=o(w,k,t,h))||x.index>=t.length)break;var _=x.index,A=x.index+x[0].length,C=k;for(C+=S.value.length;_>=C;)C+=(S=S.next).value.length;if(C-=S.value.length,k=C,S.value instanceof a)continue;for(var N=S;N!==n.tail&&(Cc.reach&&(c.reach=I);var R=S.prev;if(O&&(R=l(n,R,O),k+=O.length),function(e,t,n){for(var r=t.next,a=0;a1){var j={cause:d+","+p,reach:I};e(t,n,i,S.prev,k,j),c&&j.reach>c.reach&&(c.reach=j.reach)}}}}}}(e,u,t,u.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach(function(t){a+=e(t,n)}),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+""},r}();t.exports=n,n.default=n}},function(){return a||(0,r[I(r)[0]])((a={exports:{}}).exports,a),a.exports})())?C(j(o)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of I(t))D.call(e,a)||a===n||N(e,a,{get:()=>t[a],enumerable:!(r=O(t,a))||r.enumerable});return e})(!i&&o&&o.__esModule?l:N(l,"default",{value:o,enumerable:!0}),o));U.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},U.languages.markup.tag.inside["attr-value"].inside.entity=U.languages.markup.entity,U.languages.markup.doctype.inside["internal-subset"].inside=U.languages.markup,U.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(U.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:U.languages[t]},n.cdata=/^$/i,{"included-cdata":{pattern://i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:U.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},U.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(U.languages.markup.tag,"addAttribute",{value:function(e,t){U.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:U.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),U.languages.html=U.languages.markup,U.languages.mathml=U.languages.markup,U.languages.svg=U.languages.markup,U.languages.xml=U.languages.extend("markup",{}),U.languages.ssml=U.languages.xml,U.languages.atom=U.languages.xml,U.languages.rss=U.languages.xml,s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},c=RegExp((c="(?:[^\\\\-]|"+(u=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")")+"-"+c),d={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},U.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:c,inside:{escape:u,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:u}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":d}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:u,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},U.languages.javascript=U.languages.extend("clike",{"class-name":[U.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),U.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,U.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:U.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:U.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:U.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:U.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:U.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),U.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:U.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),U.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),U.languages.markup&&(U.languages.markup.tag.addInlined("script","javascript"),U.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),U.languages.js=U.languages.javascript,U.languages.actionscript=U.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),U.languages.actionscript["class-name"].alias="function",delete U.languages.actionscript.parameter,delete U.languages.actionscript["literal-property"],U.languages.markup&&U.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:U.languages.markup}}),f=/#(?!\{).+/,p={pattern:/#\{[^}]+\}/,alias:"variable"},U.languages.coffeescript=U.languages.extend("javascript",{comment:f,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:p}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),U.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:f,interpolation:p}}}),U.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:U.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:p}}]}),U.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete U.languages.coffeescript["template-string"],U.languages.coffee=U.languages.coffeescript,Object.defineProperty(m=U.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/},"addSupport",{value:function(e,t){(e="string"==typeof e?[e]:e).forEach(function(e){var n=function(e){e.inside||(e.inside={}),e.inside.rest=t},r="doc-comment";if(a=U.languages[e]){var a,o=a[r];if((o=o||(a=U.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[r])instanceof RegExp&&(o=a[r]={pattern:o}),Array.isArray(o))for(var i=0,l=o.length;i|\+|~|\|\|/,punctuation:/[(),]/}},U.languages.css.atrule.inside["selector-function-argument"].inside=h,U.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),h={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},y={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},U.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:h,number:y,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:h,number:y}),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return"(?:"+a+"|"+o+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(U),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return r}),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(U),U.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:U.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},U.hooks.add("after-tokenize",function(e){if("graphql"===e.language)for(var t=e.tokens.filter(function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type}),n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var s={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};e.hooks.add("after-tokenize",function(t){t.language in s&&function t(n){for(var i=0,s=n.length;i=d.length)return;var i,s,f,p,m,g,h,y=n[o];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(h=(g="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=g.substring(0,h),m=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(m,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,m),p=g.substring(h+i.length),m=[],s&&m.push(s),m.push(f),p&&(t(g=[p]),m.push.apply(m,g)),"string"==typeof y?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):y.content=m)):Array.isArray(h=y.content)?t(h):t([h])}}(s),new e.Token(i,s,"language-"+i,t)}(c,d,f))):t(u):"string"!=typeof u&&t([u]))}}(t.tokens)})}(U),U.languages.typescript=U.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),U.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete U.languages.typescript.parameter,delete U.languages.typescript["literal-property"],b=U.languages.extend("typescript",{}),delete b["class-name"],U.languages.typescript["class-name"].inside=b,U.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:b}}}}),U.languages.ts=U.languages.typescript,v=U.languages.javascript,S="(@(?:arg|argument|param|property)\\s+(?:"+(w=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source)+"\\s+)?)",U.languages.jsdoc=U.languages.extend("javadoclike",{parameter:{pattern:RegExp(S+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),U.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(S+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:v,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return w})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+w),lookbehind:!0,inside:{string:v.string,number:v.number,boolean:v.boolean,keyword:U.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:v,alias:"language-javascript"}}}}),U.languages.javadoclike.addSupport("javascript",U.languages.jsdoc),U.languages.flow=U.languages.extend("javascript",{}),U.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),U.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete U.languages.flow.parameter,U.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(U.languages.flow.keyword)||(U.languages.flow.keyword=[U.languages.flow.keyword]),U.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0}),U.languages.n4js=U.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),U.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),U.languages.n4jsd=U.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return RegExp(e=e.replace(//g,function(){return n}).replace(//g,function(){return r}).replace(//g,function(){return a}),t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""};e.hooks.add("after-tokenize",function(t){"jsx"!==t.language&&"tsx"!==t.language||function t(n){for(var r=[],a=0;a"!==o.content[o.content.length-1].content&&r.push({tagName:i(o.content[0].content[1]),openedBraces:0}):0]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},U.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=U.languages.swift}),U.languages.kotlin=U.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete U.languages.kotlin["class-name"],x={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:U.languages.kotlin}},U.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:x},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:x},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete U.languages.kotlin.string,U.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),U.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),U.languages.kt=U.languages.kotlin,U.languages.kts=U.languages.kotlin,U.languages.c=U.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),U.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),U.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},U.languages.c.string],char:U.languages.c.char,comment:U.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:U.languages.c}}}}),U.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete U.languages.c.boolean,U.languages.objectivec=U.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete U.languages.objectivec["class-name"],U.languages.objc=U.languages.objectivec,U.languages.reason=U.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),U.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete U.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(U),U.languages.go=U.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),U.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete U.languages.go["class-name"],E=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,T=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return E.source}),U.languages.cpp=U.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return E.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:E,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),U.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return T})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),U.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:U.languages.cpp}}}}),U.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),U.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:U.languages.extend("cpp",{})}}),U.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},U.languages.cpp["base-clause"]),U.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},U.languages.python["string-interpolation"].inside.interpolation.inside.rest=U.languages.python,U.languages.py=U.languages.python,U.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},U.languages.webmanifest=U.languages.json;var $={},q={dracula:()=>V,duotoneDark:()=>X,duotoneLight:()=>G,github:()=>W,gruvboxMaterialDark:()=>ed,gruvboxMaterialLight:()=>ef,jettwaveDark:()=>el,jettwaveLight:()=>es,nightOwl:()=>Y,nightOwlLight:()=>K,oceanicNext:()=>J,okaidia:()=>ee,oneDark:()=>eu,oneLight:()=>ec,palenight:()=>et,shadesOfPurple:()=>en,synthwave84:()=>er,ultramin:()=>ea,vsDark:()=>eo,vsLight:()=>ei};for(var H in q)N($,H,{get:q[H],enumerable:!0});var V={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},X={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},G={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},W={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},Y={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},K={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Q="#c5a5c5",Z="#8dc891",J={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:Q}},{types:["attr-value"],style:{color:Z}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:Z}},{types:["punctuation"],style:{color:Z}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:Q}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},ee={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},et={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},en={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},er={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},ea={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},eo={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},ei={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},el={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},es={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},eu={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},ec={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},ed={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},ef={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},ep=/\r\n|\r|\n/,em=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},eg=(e,t)=>{let n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},eh=e=>{let t=[[]],n=[e],r=[0],a=[e.length],o=0,i=0,l=[],s=[l];for(;i>-1;){for(;(o=r[i]++)0?u:["plain"],e=c):(u=eg(u,c.type),c.alias&&(u=eg(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}let d=e.split(ep),f=d.length;l.push({types:u,content:d[0]});for(let e=1;e{let o,i=t.toLowerCase(),l=((e,t)=>{let{plain:n}=e,r=e.styles.reduce((e,n)=>{let{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{let n=z(z({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=P(z({},n),L({backgroundColor:void 0})),r})(r,i),s=(0,_.useCallback)(e=>{var{className:t,style:n,line:r}=e;let a=P(z({},B(e,["className","style","line"])),L({className:(0,A.A)("token-line",t)}));return"object"==typeof l&&"plain"in l&&(a.style=l.plain),"object"==typeof n&&(a.style=z(z({},a.style||{}),n)),a},[l]),u=(o=(0,_.useCallback)(({types:e,empty:t})=>{if(null!=l)return 1===e.length&&"plain"===e[0]?null!=t?{display:"inline-block"}:void 0:1===e.length&&null!=t?l[e[0]]:Object.assign(null!=t?{display:"inline-block"}:{},...e.map(e=>l[e]))},[l]),(0,_.useCallback)(e=>{var{token:t,className:n,style:r}=e;let a=P(z({},B(e,["token","className","style"])),L({className:(0,A.A)("token",...t.types,n),children:t.content,style:o(t)}));return null!=r&&(a.style=z(z({},a.style||{}),r)),a},[o])),c=a.languages[i];return e({tokens:(({prism:e,code:t,grammar:n,language:r})=>(0,_.useMemo)(()=>{if(null==n)return eh([t]);let a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),eh(a.tokens)},[t,n,r,e]))({prism:a,language:i,code:n,grammar:c}),className:`prism-code language-${i}`,style:null!=l?l.root:{},getLineProps:s,getTokenProps:u})},eb=e=>(0,_.createElement)(ey,P(z({},e),L({prism:e.prism||U,theme:e.theme||eo,code:e.code,language:e.language})))},1561(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}},1635(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>j,__assign:()=>o,__asyncDelegator:()=>T,__asyncGenerator:()=>E,__asyncValues:()=>_,__await:()=>x,__awaiter:()=>m,__classPrivateFieldGet:()=>L,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>I,__createBinding:()=>h,__decorate:()=>l,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>y,__extends:()=>a,__generator:()=>g,__importDefault:()=>O,__importStar:()=>P,__makeTemplateObject:()=>A,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>M,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>k,__spreadArrays:()=>S,__values:()=>b,default:()=>z});var r=function(e,t){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}function l(e,t,n,r){var a,o=arguments.length,i=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,a,o){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var m={};for(var g in r)m[g]="access"===g?{}:r[g];for(var g in r.access)m.access[g]=r.access[g];m.addInitializer=function(e){if(f)throw TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var h=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],m);if("accessor"===s){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw TypeError("Object expected");(l=i(h.get))&&(d.get=l),(l=i(h.set))&&(d.set=l),(l=i(h.init))&&a.unshift(l)}else(l=i(h))&&("field"===s?a.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function w(){for(var e=[],t=0;t1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(e,t){try{var n;(n=a[e](t)).value instanceof x?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(e){c(o[0][3],e)}}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function T(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:x(e[r](t)),done:!1}:a?a(t):t}:a}}function _(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=b(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,a){var o,i,l;o=r,i=a,l=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){o({value:e,done:l})},i)})}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},N=function(e){return(N=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t})(e)};function P(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=N(e),r=0;r{try{return u.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{let t=u.getItem(n);u.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:u})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{let e=u.getItem(n);u.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:u})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{let t=t=>{t.storageArea===u&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(e){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,e),()=>{}}}}}},3899(e,t,n){"use strict";n.d(t,{AL:()=>c,s$:()=>d});var r=n(4848),a=n(6540),o=n(898),i=n(8491),l=n(2260);let s=({title:e,siteTitle:t,titleDelimiter:n})=>{let r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},u=(0,a.createContext)(null);function c({formatter:e,children:t}){return(0,r.jsx)(u.Provider,{value:e,children:t})}function d(){let e=function(){let e=(0,a.useContext)(u);if(null===e)throw new l.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:r}=t,{plugin:c}=(0,i.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:r,plugin:c,defaultFormatter:s})}}},5243(e,t,n){"use strict";n.d(t,{o:()=>i});var r=n(898),a=n(6347),o=n(5248);function i(){let{siteConfig:{baseUrl:e,trailingSlash:t},i18n:{localeConfigs:n}}=(0,r.A)(),{pathname:i}=(0,a.zy)(),l=(0,o.applyTrailingSlash)(i,{trailingSlash:t,baseUrl:e}).replace(e,"");return{createUrl:function({locale:e,fullyQualified:t}){let r=function(e){let t=n[e];if(!t)throw Error(`Unexpected Docusaurus bug, no locale config found for locale=${e}`);return t}(e),a=`${t?r.url:""}`,o=r.baseUrl;return`${a}${o}${l}`}}}},8398(e,t,n){"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(2260);function i(e){let t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)(()=>{n&&t!==n&&i({location:t,previousLocation:n})},[i,t,n])}},1022(e,t,n){"use strict";n.d(t,{p:()=>a});var r=n(898);function a(){return(0,r.A)().siteConfig.themeConfig}},4207(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=a,t.default=function(e,t){let{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#")||void 0===n)return e;let[i]=e.split(/[#?]/),l="/"===i||i===r?i:n?a(i):o(i);return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o;let r=n(9262);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}},7541(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},5248(e,t,n){"use strict";t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0;let r=n(1635);t.blogPostContainerID="__blog-post-container";var a=n(4207);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r.__importDefault(a).default}}),n(9262);var o=n(7541);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9262(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},4784(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>r});let r={title:"SqlParserX",tagline:"\u591A\u65B9\u8A00 SQL \u89E3\u6790\u5F15\u64CE\u4E0E\u5DE5\u5177\u5305",favicon:"img/logo.png",future:{v4:{removeLegacyPostBuildHeadAttribute:!0,useCssCascadeLayers:!0,siteStorageNamespacing:!0,fasterByDefault:!0,mdx1CompatDisabledByDefault:!0},experimental_vcs:{},experimental_router:"browser",faster:{swcJsLoader:!0,swcJsMinimizer:!0,swcHtmlMinimizer:!0,lightningCssMinimizer:!0,mdxCrossCompilerCache:!0,rspackBundler:!0,rspackPersistentCache:!0,ssgWorkerThreads:!0,gitEagerVcs:!0}},url:"https://dtstack.github.io",baseUrl:"/SqlParserX/en/",organizationName:"DTStack",projectName:"SqlParserX",deploymentBranch:"gh-pages",trailingSlash:!1,onBrokenLinks:"throw",markdown:{mermaid:!0,hooks:{onBrokenMarkdownLinks:"warn",onBrokenMarkdownImages:"throw"},format:"mdx",emoji:!0,mdx1Compat:{comments:!1,admonitions:!1,headingIds:!1},anchors:{maintainCase:!1}},themes:["@docusaurus/theme-mermaid"],i18n:{defaultLocale:"zh-Hans",locales:["zh-Hans","en"],localeConfigs:{"zh-Hans":{label:"\u7B80\u4F53\u4E2D\u6587",direction:"ltr",htmlLang:"zh-Hans"},en:{label:"English",direction:"ltr",htmlLang:"en"}},path:"i18n"},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",editUrl:"https://github.com/DTStack/SqlParserX/tree/master/website/",showLastUpdateAuthor:!1,showLastUpdateTime:!1,versions:{current:{label:"Next \u{1F6A7}"}},lastVersion:"1.0"},blog:{showReadingTime:!0,feedOptions:{type:["rss","atom"],xslt:!0},editUrl:"https://github.com/DTStack/SqlParserX/tree/master/website/",onInlineTags:"warn",onInlineAuthors:"warn",onUntruncatedBlogPosts:"warn"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{image:"img/social-card.svg",colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},announcementBar:{id:"announcement",content:"\u2B50 \u5982\u679C\u4F60\u89C9\u5F97 SqlParserX \u6709\u7528\uFF0C\u6B22\u8FCE\u5230 GitHub \u70B9\u4E2A Star",backgroundColor:"#fafbfc",textColor:"#091E42",isCloseable:!0},navbar:{title:"SqlParserX",logo:{alt:"SqlParserX Logo",src:"img/logo.png"},items:[{to:"/",label:"Home",position:"left"},{type:"docSidebar",sidebarId:"docs",position:"left",label:"Document"},{to:"/blog",label:"Blog",position:"left"},{to:"/community",label:"Community",position:"left"},{type:"docsVersionDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/DTStack/SqlParserX",position:"right",className:"header-github-link","aria-label":"GitHub repository"}],hideOnScroll:!1},footer:{style:"light",links:[{title:"Docs",items:[{label:"Introduction",to:"/docs/about/introduction"},{label:"Quick Start",to:"/docs/quickstart/setup"},{label:"Contributing",to:"/docs/contributing"}]},{title:"Community",items:[{label:"GitHub",href:"https://github.com/DTStack/SqlParserX"},{label:"Blog",to:"/blog"},{label:"Community",to:"/community"}]},{title:"More",items:[{label:"Releases",href:"https://github.com/DTStack/SqlParserX/releases"},{label:"Architecture",to:"/docs/about/architecture"}]}],copyright:"Copyright \xa9 2026 SqlParserX. Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["bash","json","nginx","java","sql","python"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,storage:{type:"localStorage",namespace:!0},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},8168(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},594(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164(e,t,n){"use strict";n.d(t,{A:()=>r});let r=function(){for(var e,t,n=0,r="",a=arguments.length;nU,f4:()=>eb});var s,u,c,d,f,p,m,g,h,y,b,v,w,S,k,x,E,T,_=n(6540),A=n(4164),C=Object.create,N=Object.defineProperty,P=Object.defineProperties,O=Object.getOwnPropertyDescriptor,L=Object.getOwnPropertyDescriptors,I=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,j=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,M=(e,t,n)=>t in e?N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))D.call(t,n)&&M(e,n,t[n]);if(R)for(var n of R(t))F.call(t,n)&&M(e,n,t[n]);return e},B=(e,t)=>{var n={};for(var r in e)D.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&R)for(var r of R(e))0>t.indexOf(r)&&F.call(e,r)&&(n[r]=e[r]);return n},U=(l=null!=(o=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=c.reach));k+=S.value.length,S=S.next){var x,E=S.value;if(n.length>t.length)return;if(!(E instanceof a)){var T=1;if(y){if(!(x=o(w,k,t,h))||x.index>=t.length)break;var _=x.index,A=x.index+x[0].length,C=k;for(C+=S.value.length;_>=C;)C+=(S=S.next).value.length;if(C-=S.value.length,k=C,S.value instanceof a)continue;for(var N=S;N!==n.tail&&(Cc.reach&&(c.reach=I);var R=S.prev;if(O&&(R=l(n,R,O),k+=O.length),function(e,t,n){for(var r=t.next,a=0;a1){var j={cause:d+","+p,reach:I};e(t,n,i,S.prev,k,j),c&&j.reach>c.reach&&(c.reach=j.reach)}}}}}}(e,u,t,u.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(u)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach(function(t){a+=e(t,n)}),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+""},r}();t.exports=n,n.default=n}},function(){return a||(0,r[I(r)[0]])((a={exports:{}}).exports,a),a.exports})())?C(j(o)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of I(t))D.call(e,a)||a===n||N(e,a,{get:()=>t[a],enumerable:!(r=O(t,a))||r.enumerable});return e})(!i&&o&&o.__esModule?l:N(l,"default",{value:o,enumerable:!0}),o));U.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},U.languages.markup.tag.inside["attr-value"].inside.entity=U.languages.markup.entity,U.languages.markup.doctype.inside["internal-subset"].inside=U.languages.markup,U.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(U.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:U.languages[t]},n.cdata=/^$/i,{"included-cdata":{pattern://i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:U.languages[t]},{});t[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},U.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(U.languages.markup.tag,"addAttribute",{value:function(e,t){U.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:U.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),U.languages.html=U.languages.markup,U.languages.mathml=U.languages.markup,U.languages.svg=U.languages.markup,U.languages.xml=U.languages.extend("markup",{}),U.languages.ssml=U.languages.xml,U.languages.atom=U.languages.xml,U.languages.rss=U.languages.xml,s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},c=RegExp((c="(?:[^\\\\-]|"+(u=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")")+"-"+c),d={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},U.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:c,inside:{escape:u,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:u}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":d}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:u,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},U.languages.javascript=U.languages.extend("clike",{"class-name":[U.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),U.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,U.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:U.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:U.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:U.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:U.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:U.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),U.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:U.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),U.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),U.languages.markup&&(U.languages.markup.tag.addInlined("script","javascript"),U.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),U.languages.js=U.languages.javascript,U.languages.actionscript=U.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),U.languages.actionscript["class-name"].alias="function",delete U.languages.actionscript.parameter,delete U.languages.actionscript["literal-property"],U.languages.markup&&U.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:U.languages.markup}}),f=/#(?!\{).+/,p={pattern:/#\{[^}]+\}/,alias:"variable"},U.languages.coffeescript=U.languages.extend("javascript",{comment:f,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:p}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),U.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:f,interpolation:p}}}),U.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:U.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:p}}]}),U.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete U.languages.coffeescript["template-string"],U.languages.coffee=U.languages.coffeescript,Object.defineProperty(m=U.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/},"addSupport",{value:function(e,t){(e="string"==typeof e?[e]:e).forEach(function(e){var n=function(e){e.inside||(e.inside={}),e.inside.rest=t},r="doc-comment";if(a=U.languages[e]){var a,o=a[r];if((o=o||(a=U.languages.insertBefore(e,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[r])instanceof RegExp&&(o=a[r]={pattern:o}),Array.isArray(o))for(var i=0,l=o.length;i|\+|~|\|\|/,punctuation:/[(),]/}},U.languages.css.atrule.inside["selector-function-argument"].inside=h,U.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),h={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},y={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},U.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:h,number:y,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:h,number:y}),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return"(?:"+a+"|"+o+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(U),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return r}),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(U),U.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:U.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},U.hooks.add("after-tokenize",function(e){if("graphql"===e.language)for(var t=e.tokens.filter(function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type}),n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var s={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};e.hooks.add("after-tokenize",function(t){t.language in s&&function t(n){for(var i=0,s=n.length;i=d.length)return;var i,s,f,p,m,g,h,y=n[o];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(h=(g="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=g.substring(0,h),m=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(m,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,m),p=g.substring(h+i.length),m=[],s&&m.push(s),m.push(f),p&&(t(g=[p]),m.push.apply(m,g)),"string"==typeof y?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):y.content=m)):Array.isArray(h=y.content)?t(h):t([h])}}(s),new e.Token(i,s,"language-"+i,t)}(c,d,f))):t(u):"string"!=typeof u&&t([u]))}}(t.tokens)})}(U),U.languages.typescript=U.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),U.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete U.languages.typescript.parameter,delete U.languages.typescript["literal-property"],b=U.languages.extend("typescript",{}),delete b["class-name"],U.languages.typescript["class-name"].inside=b,U.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:b}}}}),U.languages.ts=U.languages.typescript,v=U.languages.javascript,S="(@(?:arg|argument|param|property)\\s+(?:"+(w=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source)+"\\s+)?)",U.languages.jsdoc=U.languages.extend("javadoclike",{parameter:{pattern:RegExp(S+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),U.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(S+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:v,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return w})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+w),lookbehind:!0,inside:{string:v.string,number:v.number,boolean:v.boolean,keyword:U.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:v,alias:"language-javascript"}}}}),U.languages.javadoclike.addSupport("javascript",U.languages.jsdoc),U.languages.flow=U.languages.extend("javascript",{}),U.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),U.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete U.languages.flow.parameter,U.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(U.languages.flow.keyword)||(U.languages.flow.keyword=[U.languages.flow.keyword]),U.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0}),U.languages.n4js=U.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),U.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),U.languages.n4jsd=U.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return RegExp(e=e.replace(//g,function(){return n}).replace(//g,function(){return r}).replace(//g,function(){return a}),t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""};e.hooks.add("after-tokenize",function(t){"jsx"!==t.language&&"tsx"!==t.language||function t(n){for(var r=[],a=0;a"!==o.content[o.content.length-1].content&&r.push({tagName:i(o.content[0].content[1]),openedBraces:0}):0]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},U.languages.swift["string-literal"].forEach(function(e){e.inside.interpolation.inside=U.languages.swift}),U.languages.kotlin=U.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete U.languages.kotlin["class-name"],x={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:U.languages.kotlin}},U.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:x},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:x},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete U.languages.kotlin.string,U.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),U.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),U.languages.kt=U.languages.kotlin,U.languages.kts=U.languages.kotlin,U.languages.c=U.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),U.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),U.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},U.languages.c.string],char:U.languages.c.char,comment:U.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:U.languages.c}}}}),U.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete U.languages.c.boolean,U.languages.objectivec=U.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete U.languages.objectivec["class-name"],U.languages.objc=U.languages.objectivec,U.languages.reason=U.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),U.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete U.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(U),U.languages.go=U.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),U.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete U.languages.go["class-name"],E=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,T=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return E.source}),U.languages.cpp=U.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return E.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:E,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),U.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return T})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),U.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:U.languages.cpp}}}}),U.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),U.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:U.languages.extend("cpp",{})}}),U.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},U.languages.cpp["base-clause"]),U.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},U.languages.python["string-interpolation"].inside.interpolation.inside.rest=U.languages.python,U.languages.py=U.languages.python,U.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},U.languages.webmanifest=U.languages.json;var $={},q={dracula:()=>V,duotoneDark:()=>X,duotoneLight:()=>G,github:()=>W,gruvboxMaterialDark:()=>ed,gruvboxMaterialLight:()=>ef,jettwaveDark:()=>el,jettwaveLight:()=>es,nightOwl:()=>Y,nightOwlLight:()=>K,oceanicNext:()=>J,okaidia:()=>ee,oneDark:()=>eu,oneLight:()=>ec,palenight:()=>et,shadesOfPurple:()=>en,synthwave84:()=>er,ultramin:()=>ea,vsDark:()=>eo,vsLight:()=>ei};for(var H in q)N($,H,{get:q[H],enumerable:!0});var V={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},X={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},G={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},W={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},Y={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},K={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Q="#c5a5c5",Z="#8dc891",J={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:Q}},{types:["attr-value"],style:{color:Z}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:Z}},{types:["punctuation"],style:{color:Z}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:Q}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},ee={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},et={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},en={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},er={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},ea={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},eo={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},ei={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},el={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},es={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},eu={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},ec={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},ed={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},ef={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},ep=/\r\n|\r|\n/,em=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},eg=(e,t)=>{let n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},eh=e=>{let t=[[]],n=[e],r=[0],a=[e.length],o=0,i=0,l=[],s=[l];for(;i>-1;){for(;(o=r[i]++)0?u:["plain"],e=c):(u=eg(u,c.type),c.alias&&(u=eg(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}let d=e.split(ep),f=d.length;l.push({types:u,content:d[0]});for(let e=1;e{let o,i=t.toLowerCase(),l=((e,t)=>{let{plain:n}=e,r=e.styles.reduce((e,n)=>{let{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach(t=>{let n=z(z({},e[t]),a);e[t]=n}),e},{});return r.root=n,r.plain=P(z({},n),L({backgroundColor:void 0})),r})(r,i),s=(0,_.useCallback)(e=>{var{className:t,style:n,line:r}=e;let a=P(z({},B(e,["className","style","line"])),L({className:(0,A.A)("token-line",t)}));return"object"==typeof l&&"plain"in l&&(a.style=l.plain),"object"==typeof n&&(a.style=z(z({},a.style||{}),n)),a},[l]),u=(o=(0,_.useCallback)(({types:e,empty:t})=>{if(null!=l)return 1===e.length&&"plain"===e[0]?null!=t?{display:"inline-block"}:void 0:1===e.length&&null!=t?l[e[0]]:Object.assign(null!=t?{display:"inline-block"}:{},...e.map(e=>l[e]))},[l]),(0,_.useCallback)(e=>{var{token:t,className:n,style:r}=e;let a=P(z({},B(e,["token","className","style"])),L({className:(0,A.A)("token",...t.types,n),children:t.content,style:o(t)}));return null!=r&&(a.style=z(z({},a.style||{}),r)),a},[o])),c=a.languages[i];return e({tokens:(({prism:e,code:t,grammar:n,language:r})=>(0,_.useMemo)(()=>{if(null==n)return eh([t]);let a={code:t,grammar:n,language:r,tokens:[]};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(t,n),e.hooks.run("after-tokenize",a),eh(a.tokens)},[t,n,r,e]))({prism:a,language:i,code:n,grammar:c}),className:`prism-code language-${i}`,style:null!=l?l.root:{},getLineProps:s,getTokenProps:u})},eb=e=>(0,_.createElement)(ey,P(z({},e),L({prism:e.prism||U,theme:e.theme||eo,code:e.code,language:e.language})))},1561(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}},1635(e,t,n){"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>j,__assign:()=>o,__asyncDelegator:()=>T,__asyncGenerator:()=>E,__asyncValues:()=>_,__await:()=>x,__awaiter:()=>m,__classPrivateFieldGet:()=>L,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>I,__createBinding:()=>h,__decorate:()=>l,__disposeResources:()=>F,__esDecorate:()=>u,__exportStar:()=>y,__extends:()=>a,__generator:()=>g,__importDefault:()=>O,__importStar:()=>P,__makeTemplateObject:()=>A,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>v,__rest:()=>i,__rewriteRelativeImportExtension:()=>M,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>k,__spreadArrays:()=>S,__values:()=>b,default:()=>z});var r=function(e,t){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function a(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}function l(e,t,n,r){var a,o=arguments.length,i=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(a=e[l])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,a,o){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var m={};for(var g in r)m[g]="access"===g?{}:r[g];for(var g in r.access)m.access[g]=r.access[g];m.addInitializer=function(e){if(f)throw TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var h=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],m);if("accessor"===s){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw TypeError("Object expected");(l=i(h.get))&&(d.get=l),(l=i(h.set))&&(d.set=l),(l=i(h.init))&&a.unshift(l)}else(l=i(h))&&("field"===s?a.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,a=0;a0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function w(){for(var e=[],t=0;t1||l(e,t)})},t&&(r[e]=t(r[e])))}function l(e,t){try{var n;(n=a[e](t)).value instanceof x?Promise.resolve(n.value.v).then(s,u):c(o[0][2],n)}catch(e){c(o[0][3],e)}}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),o.shift(),o.length&&l(o[0][0],o[0][1])}}function T(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:x(e[r](t)),done:!1}:a?a(t):t}:a}}function _(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=b(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,a){var o,i,l;o=r,i=a,l=(t=e[n](t)).done,Promise.resolve(t.value).then(function(e){o({value:e,done:l})},i)})}}}function A(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},N=function(e){return(N=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t})(e)};function P(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=N(e),r=0;r{"use strict";var e,a,c,f,d,r,t,b={},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var c=o[e]={exports:{}};return b[e].call(c.exports,c,c.exports,n),c.exports}n.m=b,n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(c,f){if(1&f&&(c=this(c)),8&f||"object"==typeof c&&c&&(4&f&&c.__esModule||16&f&&"function"==typeof c.then))return c;var d=Object.create(null);n.r(d);var r={};e=e||[null,a({}),a([]),a(a)];for(var t=2&f&&c;("object"==typeof t||"function"==typeof t)&&!~e.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach(e=>{r[e]=()=>c[e]});return r.default=()=>c,n.d(d,r),d},n.d=(e,a)=>{for(var c in a)n.o(a,c)&&!n.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,c)=>(n.f[c](e,a),a),[])),n.u=e=>"assets/js/"+(({1033:"9c37e8a9",106:"17896441",1221:"621db11d",1389:"1a0052a3",1591:"22e0017f",1668:"5e95c892",1759:"9aae347e",1811:"dae5e6b9",1833:"814f3328",191:"36994c47",2030:"e9caf4bd",2687:"aa9e3246",2705:"4a65a190",3056:"a7456010",3080:"e65be245",3179:"5abf25f6",3220:"acecf23e",3224:"c61d1296",3674:"1078a278",3747:"aba21aa0",4128:"92d5f697",4413:"773100d1",4684:"1f5cb825",48:"33fc5bb8",4823:"c4f5d8e4",5301:"e539d78b",5415:"a02bd756",5575:"a7bd4aaa",5940:"bd32d0d5",6056:"db80618e",6074:"ccc49370",6785:"a94703ab",7266:"f798a39c",7496:"a6aa9e1f",766:"6875c492",8102:"533336a0",8222:"ac4ff279",8384:"02854a60",8637:"5b44acae",8893:"672ba3d6",9375:"4b0ae1c1",9414:"a84fc31f",947:"7ba64a19",9548:"2cb18a50",9590:"ac311984",9660:"9e4087bc",9786:"01a85c17",9794:"d611a6ba",9901:"136d9fb6",9984:"a16ef744"})[e]||e)+"."+({1016:"1b255e6a",1033:"639e262d",106:"06353295",1134:"87475e33",1221:"cd6afb65",1389:"183e63f0",1491:"cb46ae3f",1567:"9f44ced9",1591:"f9dfb251",1668:"a44b09d4",1759:"2a52863b",181:"90e2d56b",1811:"4ce7d350",1833:"a11b30f2",1862:"1a43044f",190:"c766b1ae",191:"a19db22c",2030:"6e761e5e",2107:"f3b80883",2240:"925a2a48",2268:"485f02c6",2358:"f2f121b1",2395:"66d8d46d",255:"9c291378",2687:"77f04ee4",2705:"c43c3324",2853:"1bd4804e",2881:"cdbfd8a4",2951:"c9b9b0af",3009:"12978314",3017:"e8b74ccb",3056:"5acfbe30",3080:"f35e9887",3179:"9830132d",3220:"98c2f734",3224:"5cb6898e",3312:"b999d1ad",3535:"18db5811",3636:"d70391ac",3674:"2d55bc20",3693:"178dfbe0",3747:"33b48647",3788:"070794c2",3851:"7f972b73",4128:"1b48d711",4137:"1b2a1b68",4413:"d8d80707",4551:"88d2b179",4617:"6e66f439",4684:"cbb867bf",4709:"1ea5418e",4788:"eef239cb",48:"3fe0f57b",480:"1eb9a3a7",4823:"97d426b8",4875:"484cb0fc",4892:"beb61f34",4936:"2ebabc8b",4950:"3fa51f56",5062:"689c71ca",5082:"46e3206e",5250:"ce6f0efa",5301:"e0feac5b",5415:"f50fe793",5428:"8c0b8a2a",5493:"5c969992",5505:"ad92f9fd",5575:"f3b25130",5576:"62e087a6",5651:"49615f32",5783:"7e9699db",5940:"2cdaeaae",6056:"29a55518",6073:"79b4ff37",6074:"0fff0dec",612:"7ca96f70",6184:"b444265b",6326:"27d6a633",6374:"05518a82",6520:"c5a12252",6726:"ac90325c",6762:"affd9a83",6771:"da21afb4",6785:"0bcffcab",6832:"438cdfc9",6856:"9f4ebf6f",718:"659975ba",7256:"bfa531c9",7266:"3ca9474b",7472:"ede4e6b6",7496:"5f4ef81b",766:"0883a958",7693:"c2b73a77",7874:"d706704a",8102:"2c9aa3e0",8222:"5ca528d4",8272:"20c4caca",8384:"34877af3",8637:"5f304454",8645:"4532c47b",8665:"cdad3879",8683:"9ee3384f",8738:"3885adf6",8893:"6f76c648",8927:"68e81f0d",896:"d7dfba44",9010:"278a1aa9",9156:"a3122fd7",9375:"8ac82777",9414:"1d7e9083",947:"c7666b43",9548:"16e7a45e",9590:"eb22d05b",9660:"294903d8",9729:"f747c8de",9786:"35e1a59a",9794:"91ee51b6",9901:"e7c4760d",9948:"5ccdc219",9956:"43a95bde",9984:"4468786b"})[e]+".js",n.miniCssF=e=>""+e+".css",n.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},n.l=function(e,a,f,d){if(c[e])return void c[e].push(a);if(void 0!==f)for(var r,t,b=document.getElementsByTagName("script"),o=0;o{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f=[],n.O=(e,a,c,d)=>{if(a){d=d||0;for(var r=f.length;r>0&&f[r-1][2]>d;r--)f[r]=f[r-1];f[r]=[a,c,d];return}for(var t=1/0,r=0;r=d)&&Object.keys(n.O).every(e=>n.O[e](a[o]))?a.splice(o--,1):(b=!1,d"1.7.12",n.gca=function(e){return e=({0x11113f9:"106","33fc5bb8":"48","36994c47":"191","6875c492":"766","7ba64a19":"947","9c37e8a9":"1033","621db11d":"1221","1a0052a3":"1389","22e0017f":"1591","5e95c892":"1668","9aae347e":"1759",dae5e6b9:"1811","814f3328":"1833",e9caf4bd:"2030",aa9e3246:"2687","4a65a190":"2705",a7456010:"3056",e65be245:"3080","5abf25f6":"3179",acecf23e:"3220",c61d1296:"3224","1078a278":"3674",aba21aa0:"3747","92d5f697":"4128","773100d1":"4413","1f5cb825":"4684",c4f5d8e4:"4823",e539d78b:"5301",a02bd756:"5415",a7bd4aaa:"5575",bd32d0d5:"5940",db80618e:"6056",ccc49370:"6074",a94703ab:"6785",f798a39c:"7266",a6aa9e1f:"7496","533336a0":"8102",ac4ff279:"8222","02854a60":"8384","5b44acae":"8637","672ba3d6":"8893","4b0ae1c1":"9375",a84fc31f:"9414","2cb18a50":"9548",ac311984:"9590","9e4087bc":"9660","01a85c17":"9786",d611a6ba:"9794","136d9fb6":"9901",a16ef744:"9984"})[e]||e,n.p+n.u(e)},d={4014:0,9783:0},n.f.j=function(e,a){var c=n.o(d,e)?d[e]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(4014|9783)$/.test(e))d[e]=0;else{var f=new Promise((a,f)=>c=d[e]=[a,f]);a.push(c[2]=f);var r=n.p+n.u(e),t=Error();n.l(r,function(a){if(n.o(d,e)&&(0!==(c=d[e])&&(d[e]=void 0),c)){var f=a&&("load"===a.type?"missing":a.type),r=a&&a.target&&a.target.src;t.message="Loading chunk "+e+" failed.\n("+f+": "+r+")",t.name="ChunkLoadError",t.type=f,t.request=r,c[1](t)}},"chunk-"+e,e)}},n.O.j=e=>0===d[e],r=(e,a)=>{var c,f,r=a[0],t=a[1],b=a[2],o=0;if(r.some(e=>0!==d[e])){for(c in t)n.o(t,c)&&(n.m[c]=t[c]);if(b)var i=b(n)}for(e&&e(a);o{"use strict";var e,a,c,f,d,r,t,b={},o={};function n(e){var a=o[e];if(void 0!==a)return a.exports;var c=o[e]={exports:{}};return b[e].call(c.exports,c,c.exports,n),c.exports}n.m=b,n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(c,f){if(1&f&&(c=this(c)),8&f||"object"==typeof c&&c&&(4&f&&c.__esModule||16&f&&"function"==typeof c.then))return c;var d=Object.create(null);n.r(d);var r={};e=e||[null,a({}),a([]),a(a)];for(var t=2&f&&c;("object"==typeof t||"function"==typeof t)&&!~e.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach(e=>{r[e]=()=>c[e]});return r.default=()=>c,n.d(d,r),d},n.d=(e,a)=>{for(var c in a)n.o(a,c)&&!n.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((a,c)=>(n.f[c](e,a),a),[])),n.u=e=>"assets/js/"+(({1033:"9c37e8a9",106:"17896441",1221:"621db11d",1389:"1a0052a3",1591:"22e0017f",1668:"5e95c892",1759:"9aae347e",1811:"dae5e6b9",1833:"814f3328",191:"36994c47",2030:"e9caf4bd",2687:"aa9e3246",2705:"4a65a190",3056:"a7456010",3080:"e65be245",3179:"5abf25f6",3220:"acecf23e",3224:"c61d1296",3674:"1078a278",3747:"aba21aa0",4128:"92d5f697",4413:"773100d1",4684:"1f5cb825",48:"33fc5bb8",4823:"c4f5d8e4",5301:"e539d78b",5415:"a02bd756",5575:"a7bd4aaa",5940:"bd32d0d5",6056:"db80618e",6074:"ccc49370",6785:"a94703ab",7266:"f798a39c",7496:"a6aa9e1f",766:"6875c492",8102:"533336a0",8222:"ac4ff279",8384:"02854a60",8637:"5b44acae",8893:"672ba3d6",9375:"4b0ae1c1",9414:"a84fc31f",947:"7ba64a19",9548:"2cb18a50",9590:"ac311984",9660:"9e4087bc",9786:"01a85c17",9794:"d611a6ba",9901:"136d9fb6",9984:"a16ef744"})[e]||e)+"."+({1016:"1b255e6a",1033:"53558edc",106:"06353295",1134:"87475e33",1221:"cd6afb65",1389:"2e24b2ea",1491:"cb46ae3f",1567:"9f44ced9",1591:"f9dfb251",1668:"a44b09d4",1759:"a020d1e5",181:"90e2d56b",1811:"c9da5438",1833:"a11b30f2",1862:"1a43044f",190:"c766b1ae",191:"a19db22c",2030:"325d73b3",2107:"f3b80883",2240:"925a2a48",2268:"485f02c6",2358:"f2f121b1",2395:"66d8d46d",255:"9c291378",2687:"77f04ee4",2705:"1b475153",2853:"1bd4804e",2881:"cdbfd8a4",2951:"c9b9b0af",3009:"12978314",3017:"e8b74ccb",3056:"5acfbe30",3080:"ce1b26fe",3179:"9830132d",3220:"98c2f734",3224:"6ae31ced",3312:"b999d1ad",3535:"18db5811",3636:"d70391ac",3674:"d2a43e18",3693:"178dfbe0",3747:"33b48647",3788:"070794c2",3851:"7f972b73",4128:"8d513838",4137:"1b2a1b68",4413:"f9c041bb",4551:"88d2b179",4617:"6e66f439",4684:"56402be9",4709:"1ea5418e",4788:"eef239cb",48:"3fe0f57b",480:"1eb9a3a7",4823:"97d426b8",4875:"484cb0fc",4892:"beb61f34",4936:"2ebabc8b",4950:"3fa51f56",5062:"689c71ca",5082:"46e3206e",5250:"ce6f0efa",5301:"ad039c37",5415:"f50fe793",5428:"8c0b8a2a",5493:"5c969992",5505:"ad92f9fd",5575:"f3b25130",5576:"62e087a6",5651:"49615f32",5783:"7e9699db",5940:"2cdaeaae",6056:"29a55518",6073:"79b4ff37",6074:"0fff0dec",612:"7ca96f70",6184:"b444265b",6326:"27d6a633",6374:"05518a82",6520:"c5a12252",6726:"ac90325c",6762:"affd9a83",6771:"da21afb4",6785:"0bcffcab",6832:"438cdfc9",6856:"9f4ebf6f",718:"659975ba",7256:"bfa531c9",7266:"0ace19ab",7472:"ede4e6b6",7496:"5f4ef81b",766:"0883a958",7693:"c2b73a77",7874:"d706704a",8102:"1b9c14e6",8222:"267aacc1",8272:"20c4caca",8384:"7f72547b",8637:"22f632d6",8645:"4532c47b",8665:"cdad3879",8683:"9ee3384f",8738:"3885adf6",8893:"6f76c648",8927:"68e81f0d",896:"d7dfba44",9010:"278a1aa9",9156:"a3122fd7",9375:"9cebb942",9414:"9913e20d",947:"89e1fa40",9548:"881d2316",9590:"55eb5a96",9660:"294903d8",9729:"f747c8de",9786:"35e1a59a",9794:"4cd3e7d8",9901:"e7c4760d",9948:"5ccdc219",9956:"43a95bde",9984:"604b3864"})[e]+".js",n.miniCssF=e=>""+e+".css",n.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},n.l=function(e,a,f,d){if(c[e])return void c[e].push(a);if(void 0!==f)for(var r,t,b=document.getElementsByTagName("script"),o=0;o{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f=[],n.O=(e,a,c,d)=>{if(a){d=d||0;for(var r=f.length;r>0&&f[r-1][2]>d;r--)f[r]=f[r-1];f[r]=[a,c,d];return}for(var t=1/0,r=0;r=d)&&Object.keys(n.O).every(e=>n.O[e](a[o]))?a.splice(o--,1):(b=!1,d"1.7.12",n.gca=function(e){return e=({0x11113f9:"106","33fc5bb8":"48","36994c47":"191","6875c492":"766","7ba64a19":"947","9c37e8a9":"1033","621db11d":"1221","1a0052a3":"1389","22e0017f":"1591","5e95c892":"1668","9aae347e":"1759",dae5e6b9:"1811","814f3328":"1833",e9caf4bd:"2030",aa9e3246:"2687","4a65a190":"2705",a7456010:"3056",e65be245:"3080","5abf25f6":"3179",acecf23e:"3220",c61d1296:"3224","1078a278":"3674",aba21aa0:"3747","92d5f697":"4128","773100d1":"4413","1f5cb825":"4684",c4f5d8e4:"4823",e539d78b:"5301",a02bd756:"5415",a7bd4aaa:"5575",bd32d0d5:"5940",db80618e:"6056",ccc49370:"6074",a94703ab:"6785",f798a39c:"7266",a6aa9e1f:"7496","533336a0":"8102",ac4ff279:"8222","02854a60":"8384","5b44acae":"8637","672ba3d6":"8893","4b0ae1c1":"9375",a84fc31f:"9414","2cb18a50":"9548",ac311984:"9590","9e4087bc":"9660","01a85c17":"9786",d611a6ba:"9794","136d9fb6":"9901",a16ef744:"9984"})[e]||e,n.p+n.u(e)},d={4014:0,9783:0},n.f.j=function(e,a){var c=n.o(d,e)?d[e]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(4014|9783)$/.test(e))d[e]=0;else{var f=new Promise((a,f)=>c=d[e]=[a,f]);a.push(c[2]=f);var r=n.p+n.u(e),t=Error();n.l(r,function(a){if(n.o(d,e)&&(0!==(c=d[e])&&(d[e]=void 0),c)){var f=a&&("load"===a.type?"missing":a.type),r=a&&a.target&&a.target.src;t.message="Loading chunk "+e+" failed.\n("+f+": "+r+")",t.name="ChunkLoadError",t.type=f,t.request=r,c[1](t)}},"chunk-"+e,e)}},n.O.j=e=>0===d[e],r=(e,a)=>{var c,f,r=a[0],t=a[1],b=a[2],o=0;if(r.some(e=>0!==d[e])){for(c in t)n.o(t,c)&&(n.m[c]=t[c]);if(b)var i=b(n)}for(e&&e(a);oBlog | SqlParserX +Blog | SqlParserX

    SqlParserX 的诞生起源背景与内部改造

    · 17 min read
    changlu
    SqlParserX 维护者
    diff --git a/en/blog/archive.html b/en/blog/archive.html index 7424002..4bbf832 100644 --- a/en/blog/archive.html +++ b/en/blog/archive.html @@ -1,4 +1,4 @@ -Archive | SqlParserX +Archive | SqlParserX \ No newline at end of file diff --git a/en/blog/atom.xml b/en/blog/atom.xml index 1dafed7..76dac84 100644 --- a/en/blog/atom.xml +++ b/en/blog/atom.xml @@ -170,17 +170,17 @@
  • 语法解析层(sqlparserx-syntax):统一维护 Druid 依赖、SQL→AST、多语句解析与切分,以及后续数据源 Lexer / StatementParser / AST Node 扩展;
  • 业务解析层(sqlparserx-core):基于统一 AST 实现真实表、建表结构、表/字段血缘、函数与 SQL 权限改写。
  • -

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    +

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    6.2 从内部二开走向官方 Druid​

    项目早期依赖内部二开的 Druid 版本,随着能力沉淀,SqlParserX 已统一为官方 Druid 1.2.28,降低维护成本、方便社区协作。语法层坚持「不在业务层用大量正则替换规避语法问题」,方言语法差异一律回到语法层按 Druid 的方式扩展。

    6.3 能力与文档体系​

    SqlParserX 不仅提供代码,也提供了一套可维护的文档体系:

    6.4 目标​

      diff --git a/en/blog/authors.html b/en/blog/authors.html index 3b11237..95b2233 100644 --- a/en/blog/authors.html +++ b/en/blog/authors.html @@ -1,4 +1,4 @@ -Authors | SqlParserX +Authors | SqlParserX

      Authors

      \ No newline at end of file diff --git a/en/blog/authors/changlu.html b/en/blog/authors/changlu.html index e2d18c0..53487a8 100644 --- a/en/blog/authors/changlu.html +++ b/en/blog/authors/changlu.html @@ -1,4 +1,4 @@ -changlu - One post | SqlParserX +changlu - One post | SqlParserX
      changlu
      SqlParserX 维护者
      View all authors

      SqlParserX 的诞生起源背景与内部改造

      · 17 min read
      changlu
      SqlParserX 维护者
      diff --git a/en/blog/origin-of-sqlparserx.html b/en/blog/origin-of-sqlparserx.html index 7ee26ae..0cd1cc6 100644 --- a/en/blog/origin-of-sqlparserx.html +++ b/en/blog/origin-of-sqlparserx.html @@ -1,4 +1,4 @@ -SqlParserX 的诞生起源背景与内部改造 | SqlParserX +SqlParserX 的诞生起源背景与内部改造 | SqlParserX

      SqlParserX 的诞生起源背景与内部改造

      · 17 min read
      changlu
      SqlParserX 维护者
      @@ -158,17 +158,17 @@

      6.1 双层
    • 语法解析层(sqlparserx-syntax):统一维护 Druid 依赖、SQL→AST、多语句解析与切分,以及后续数据源 Lexer / StatementParser / AST Node 扩展;
    • 业务解析层(sqlparserx-core):基于统一 AST 实现真实表、建表结构、表/字段血缘、函数与 SQL 权限改写。
    -

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    +

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    6.2 从内部二开走向官方 Druid​

    项目早期依赖内部二开的 Druid 版本,随着能力沉淀,SqlParserX 已统一为官方 Druid 1.2.28,降低维护成本、方便社区协作。语法层坚持「不在业务层用大量正则替换规避语法问题」,方言语法差异一律回到语法层按 Druid 的方式扩展。

    6.3 能力与文档体系​

    SqlParserX 不仅提供代码,也提供了一套可维护的文档体系:

    6.4 目标​

    \ No newline at end of file + \ No newline at end of file diff --git a/en/blog/rss.xml b/en/blog/rss.xml index 97e40c1..47e55b9 100644 --- a/en/blog/rss.xml +++ b/en/blog/rss.xml @@ -171,17 +171,17 @@
  • 语法解析层(sqlparserx-syntax):统一维护 Druid 依赖、SQL→AST、多语句解析与切分,以及后续数据源 Lexer / StatementParser / AST Node 扩展;
  • 业务解析层(sqlparserx-core):基于统一 AST 实现真实表、建表结构、表/字段血缘、函数与 SQL 权限改写。
  • -

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    +

    两层以 DbType + SQLStatement AST 作为连接契约,不额外复制一套 AST,避免长期转换与同步。详细设计见 模块依赖包引用结构设计。

    6.2 从内部二开走向官方 Druid​

    项目早期依赖内部二开的 Druid 版本,随着能力沉淀,SqlParserX 已统一为官方 Druid 1.2.28,降低维护成本、方便社区协作。语法层坚持「不在业务层用大量正则替换规避语法问题」,方言语法差异一律回到语法层按 Druid 的方式扩展。

    6.3 能力与文档体系​

    SqlParserX 不仅提供代码,也提供了一套可维护的文档体系:

    6.4 目标​

      diff --git a/en/blog/tags.html b/en/blog/tags.html index 58f69ef..8d22883 100644 --- a/en/blog/tags.html +++ b/en/blog/tags.html @@ -1,4 +1,4 @@ -Tags | SqlParserX +Tags | SqlParserX \ No newline at end of file diff --git a/en/blog/tags/origin.html b/en/blog/tags/origin.html index 3894ebe..aed67d7 100644 --- a/en/blog/tags/origin.html +++ b/en/blog/tags/origin.html @@ -1,4 +1,4 @@ -One post tagged with "起源与背景" | SqlParserX +One post tagged with "起源与背景" | SqlParserX

      One post tagged with "起源与背景"

      SqlParserX 的诞生起源与内部改造历程

      View all tags

      SqlParserX 的诞生起源背景与内部改造

      · 17 min read
      changlu
      SqlParserX 维护者
      diff --git a/en/community.html b/en/community.html index d6e9c95..9d7609e 100644 --- a/en/community.html +++ b/en/community.html @@ -1,4 +1,4 @@ -Community | SqlParserX +Community | SqlParserX

      Join the SqlParserX Community

      Discuss multi-dialect SQL parsing, lineage and governance with developers.

      💬

      Forum

      Ask questions and share best practices in GitHub Discussions.

      前往讨论区
      🐙

      GitHub

      File issues and open pull requests to improve multi-dialect parsing.

      访问仓库
      ❓

      Q&A

      Search existing issues or start a new discussion when you get stuck.

      查看 Issues
      \ No newline at end of file diff --git a/en/docs/about/architecture.html b/en/docs/about/architecture.html index fc26e29..9a0e9fc 100644 --- a/en/docs/about/architecture.html +++ b/en/docs/about/architecture.html @@ -1,4 +1,4 @@ -Architecture | SqlParserX +Architecture | SqlParserX
      Version: Next 🚧

      Two-Layer Unified Extension Architecture

      @@ -13,4 +13,4 @@

      Overall

      Module Dependencies​

      Access: sqlparserx-web (REST) / sqlparserx-ui
      │ unified ISqlParser contract
      Business layer: sqlparserx-core
      │ SQL + DbType / SQLStatement AST
      Syntax layer: sqlparserx-syntax (Druid 1.2.28)
      -

      Business extensions follow SqlParserFactory → ISqlParser → BaseSqlParser → dialect implementations.

      \ No newline at end of file +

      Business extensions follow SqlParserFactory → ISqlParser → BaseSqlParser → dialect implementations.

      \ No newline at end of file diff --git a/en/docs/about/introduction.html b/en/docs/about/introduction.html index f4c54ba..1f62a05 100644 --- a/en/docs/about/introduction.html +++ b/en/docs/about/introduction.html @@ -1,4 +1,4 @@ -Introduction | SqlParserX +Introduction | SqlParserX \ No newline at end of file +
    \ No newline at end of file diff --git a/en/docs/contributing.html b/en/docs/contributing.html index 56a6f27..e73320e 100644 --- a/en/docs/contributing.html +++ b/en/docs/contributing.html @@ -1,4 +1,4 @@ -Contributing | SqlParserX +Contributing | SqlParserX
    Version: Next 🚧

    Contributing

    @@ -27,4 +27,4 @@

    Documentation<
    • Docs are maintained in the project root docs/ and synced to this site
    • Update the relevant capability docs when adding parsing capabilities
    • -

    \ No newline at end of file + \ No newline at end of file diff --git a/en/docs/core/field-lineage.html b/en/docs/core/field-lineage.html index 01736db..389293f 100644 --- a/en/docs/core/field-lineage.html +++ b/en/docs/core/field-lineage.html @@ -1,4 +1,4 @@ -Field Lineage | SqlParserX +Field Lineage | SqlParserX
    Version: Next 🚧

    Field Lineage

    @@ -19,4 +19,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseColumnLineages(sql, tableColumnsMap)
    Default implBaseSqlParser.parseColumnLineages → ColumnLineageClient
    Return typeColumnLineageResult (getColumnRelations() + getColumnLineages())
    ApplicableSQLInsertStatement, SQLCreateTableStatement (AS SELECT)
    Metadata inputMap<String, List<Column>> tableColumnsMap

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    catalog.db.table.columnSupported ✅Multi-catalog scenarios such as Hive/Trino/StarRocks
    db.table.columnSupported ✅Standard MySQL/PostgreSQL usage
    Column expressions (SQLBinaryOpExpr)Supported ✅e.g. t5.level + 1, recursively collect columns
    * / xx.* expansionSupported ✅Read from metadata tableColumnsMap; keep * without metadata
    \ No newline at end of file +
    CapabilityStatusNotes
    catalog.db.table.columnSupported ✅Multi-catalog scenarios such as Hive/Trino/StarRocks
    db.table.columnSupported ✅Standard MySQL/PostgreSQL usage
    Column expressions (SQLBinaryOpExpr)Supported ✅e.g. t5.level + 1, recursively collect columns
    * / xx.* expansionSupported ✅Read from metadata tableColumnsMap; keep * without metadata
    \ No newline at end of file diff --git a/en/docs/core/function-parse.html b/en/docs/core/function-parse.html index 2b5dbf0..255f198 100644 --- a/en/docs/core/function-parse.html +++ b/en/docs/core/function-parse.html @@ -1,4 +1,4 @@ -Function Parsing | SqlParserX +Function Parsing | SqlParserX
    Version: Next 🚧

    Function Parsing

    @@ -18,4 +18,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseFunction(sql)
    Default implBaseSqlParser.parseFunction
    Return typeSet<String> (function names, lower-cased)
    Coveragebuilt-in, aggregate, window, custom functions

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    Regular function callsSupported ✅e.g. substr(name, 1, 3)
    Aggregate functionsSupported ✅e.g. sum, count, max
    Window functionsSupported ✅e.g. row_number() over(...)
    Nested functionsSupported ✅Recursively collect inner and outer functions
    \ No newline at end of file +
    CapabilityStatusNotes
    Regular function callsSupported ✅e.g. substr(name, 1, 3)
    Aggregate functionsSupported ✅e.g. sum, count, max
    Window functionsSupported ✅e.g. row_number() over(...)
    Nested functionsSupported ✅Recursively collect inner and outer functions
    \ No newline at end of file diff --git a/en/docs/core/parameter-compile.html b/en/docs/core/parameter-compile.html index 22edf4a..c2dc5fd 100644 --- a/en/docs/core/parameter-compile.html +++ b/en/docs/core/parameter-compile.html @@ -1,8 +1,8 @@ -Parameter Extraction and Prepared SQL | SqlParserX +Parameter Extraction and Prepared SQL | SqlParserX
    Version: Next 🚧

    Parameter Extraction and Prepared SQL

    SqlParserX extracts ${variable} expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ? placeholders and an ordered binding list.

    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);
    String sql = "SELECT id, name FROM users "
    + "WHERE dt = '${bizdate}' AND region = '${region}'";

    ParseParameterResult parsed = parser.parseParameterSql(
    sql, false, Collections.emptyMap());

    Map<String, Object> values = new HashMap<>();
    values.put("bizdate", "20261014");
    values.put("region", "hangzhou");

    PrepareCompileResult compiled = parser.buildSqlByPrepareCompile(
    sql, values, Collections.emptyMap());
    System.out.println(compiled.getBeautifulSql());
    System.out.println(compiled.getInputFields());
    SELECT id, name FROM users WHERE dt = ? AND region = ?
    [20261014, hangzhou]
    -

    The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined.

    \ No newline at end of file +

    The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined.

    \ No newline at end of file diff --git a/en/docs/core/sql-type.html b/en/docs/core/sql-type.html index db9675e..f14077f 100644 --- a/en/docs/core/sql-type.html +++ b/en/docs/core/sql-type.html @@ -1,7 +1,7 @@ -SQL Type Detection | SqlParserX +SQL Type Detection | SqlParserX
    Version: Next 🚧

    SQL Type Detection

    parseSqlType parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified SqlType. It can drive statement routing, audit classification, and execution policies.

    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);

    SqlType queryType = parser.parseSqlType("SELECT id FROM users");
    SqlType insertType = parser.parseSqlType(
    "INSERT INTO target_table SELECT id FROM source_table");

    System.out.println(queryType); // QUERY
    System.out.println(insertType); // INSERT
    -

    The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns OTHER; syntax support still depends on the selected dialect.

    \ No newline at end of file +

    The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns OTHER; syntax support still depends on the selected dialect.

    \ No newline at end of file diff --git a/en/docs/core/table-lineage.html b/en/docs/core/table-lineage.html index 0c6372f..4ee6f96 100644 --- a/en/docs/core/table-lineage.html +++ b/en/docs/core/table-lineage.html @@ -1,4 +1,4 @@ -Table Lineage | SqlParserX +Table Lineage | SqlParserX
    Version: Next 🚧

    Table Lineage

    @@ -18,4 +18,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseTableLineages(sql)
    Default implBaseSqlParser.parseTableLineages → TableLineageClient
    Return typeTableLineageResult (getTargetTable() + getSourceTables() + getTableLineages())
    CoverageJOIN, UNION, subquery, aggregate, CTE

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    Single/multi-table JOINSupported ✅All participating tables
    UNION / UNION ALLSupported ✅Merge branches
    Subquery / derived tableSupported ✅Recursively collect real tables
    CTE (WITH)Supported ✅Recognize CTE and real sources
    INSERT INTO ... SELECTSupported ✅Output target and source tables
    \ No newline at end of file +
    CapabilityStatusNotes
    Single/multi-table JOINSupported ✅All participating tables
    UNION / UNION ALLSupported ✅Merge branches
    Subquery / derived tableSupported ✅Recursively collect real tables
    CTE (WITH)Supported ✅Recognize CTE and real sources
    INSERT INTO ... SELECTSupported ✅Output target and source tables
    \ No newline at end of file diff --git a/en/docs/core/table-parse.html b/en/docs/core/table-parse.html index 2636fc3..6c74869 100644 --- a/en/docs/core/table-parse.html +++ b/en/docs/core/table-parse.html @@ -1,4 +1,4 @@ -Table Parsing | SqlParserX +Table Parsing | SqlParserX
    Version: Next 🚧

    Table Parsing

    @@ -18,4 +18,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseTables(sql), ISqlParser.parseCreateTable(sql)
    Default implBaseSqlParser.parseTables → ParseTableClient
    Return typeParseTableResult, ParseCreateTableResult
    Coveragequery tables, CTE, CREATE TABLE, partitions, properties

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    Query table detectionSupported ✅SELECT / INSERT / UPDATE / DELETE
    CTE detectionSupported ✅WITH-defined temporary tables
    CREATE TABLE DDLSupported ✅Table name, columns, types, comments
    Partitions & propertiesSupported ✅Dialect differences internalized in syntax layer
    catalog.db.tableSupported ✅Multi-catalog scenarios
    \ No newline at end of file +
    CapabilityStatusNotes
    Query table detectionSupported ✅SELECT / INSERT / UPDATE / DELETE
    CTE detectionSupported ✅WITH-defined temporary tables
    CREATE TABLE DDLSupported ✅Table name, columns, types, comments
    Partitions & propertiesSupported ✅Dialect differences internalized in syntax layer
    catalog.db.tableSupported ✅Multi-catalog scenarios
    \ No newline at end of file diff --git a/en/docs/intro.html b/en/docs/intro.html index 46e1eb5..896625a 100644 --- a/en/docs/intro.html +++ b/en/docs/intro.html @@ -1,4 +1,4 @@ -SqlParserX Docs | SqlParserX +SqlParserX Docs | SqlParserX
    Version: Next 🚧

    Welcome to SqlParserX

    @@ -19,4 +19,4 @@

    Documentat

    :::tip Tip Use the navbar to switch version (1.0 / Next) and language (简体中文 / English). -:::

    \ No newline at end of file +::: \ No newline at end of file diff --git a/en/docs/next/about/architecture.html b/en/docs/next/about/architecture.html index e65e76e..b2aa869 100644 --- a/en/docs/next/about/architecture.html +++ b/en/docs/next/about/architecture.html @@ -1,4 +1,4 @@ -Architecture | SqlParserX +Architecture | SqlParserX
    Version: Next 🚧

    Two-Layer Unified Extension Architecture

    @@ -13,4 +13,4 @@

    Overall

    Module Dependencies​

    Access: sqlparserx-web (REST) / sqlparserx-ui
    │ unified ISqlParser contract
    Business layer: sqlparserx-core
    │ SQL + DbType / SQLStatement AST
    Syntax layer: sqlparserx-syntax (Druid 1.2.28)
    -

    Business extensions follow SqlParserFactory → ISqlParser → BaseSqlParser → dialect implementations.

    \ No newline at end of file +

    Business extensions follow SqlParserFactory → ISqlParser → BaseSqlParser → dialect implementations.

    \ No newline at end of file diff --git a/en/docs/next/about/introduction.html b/en/docs/next/about/introduction.html index d9ba409..200ead9 100644 --- a/en/docs/next/about/introduction.html +++ b/en/docs/next/about/introduction.html @@ -1,4 +1,4 @@ -Introduction | SqlParserX +Introduction | SqlParserX
    \ No newline at end of file + \ No newline at end of file diff --git a/en/docs/next/contributing.html b/en/docs/next/contributing.html index 29eea25..c063534 100644 --- a/en/docs/next/contributing.html +++ b/en/docs/next/contributing.html @@ -1,4 +1,4 @@ -Contributing | SqlParserX +Contributing | SqlParserX
    Version: Next 🚧

    Contributing

    @@ -27,4 +27,4 @@

    Documentation<
    • Docs are maintained in the project root docs/ and synced to this site
    • Update the relevant capability docs when adding parsing capabilities
    • -

    \ No newline at end of file + \ No newline at end of file diff --git a/en/docs/next/core/field-lineage.html b/en/docs/next/core/field-lineage.html index a0047e0..4cc1c3c 100644 --- a/en/docs/next/core/field-lineage.html +++ b/en/docs/next/core/field-lineage.html @@ -1,4 +1,4 @@ -Field Lineage | SqlParserX +Field Lineage | SqlParserX
    Version: Next 🚧

    Field Lineage

    @@ -19,4 +19,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseColumnLineages(sql, tableColumnsMap)
    Default implBaseSqlParser.parseColumnLineages → ColumnLineageClient
    Return typeColumnLineageResult (getColumnRelations() + getColumnLineages())
    ApplicableSQLInsertStatement, SQLCreateTableStatement (AS SELECT)
    Metadata inputMap<String, List<Column>> tableColumnsMap

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    catalog.db.table.columnSupported ✅Multi-catalog scenarios such as Hive/Trino/StarRocks
    db.table.columnSupported ✅Standard MySQL/PostgreSQL usage
    Column expressions (SQLBinaryOpExpr)Supported ✅e.g. t5.level + 1, recursively collect columns
    * / xx.* expansionSupported ✅Read from metadata tableColumnsMap; keep * without metadata
    \ No newline at end of file +
    CapabilityStatusNotes
    catalog.db.table.columnSupported ✅Multi-catalog scenarios such as Hive/Trino/StarRocks
    db.table.columnSupported ✅Standard MySQL/PostgreSQL usage
    Column expressions (SQLBinaryOpExpr)Supported ✅e.g. t5.level + 1, recursively collect columns
    * / xx.* expansionSupported ✅Read from metadata tableColumnsMap; keep * without metadata
    \ No newline at end of file diff --git a/en/docs/next/core/function-parse.html b/en/docs/next/core/function-parse.html index a73df86..b58ca8d 100644 --- a/en/docs/next/core/function-parse.html +++ b/en/docs/next/core/function-parse.html @@ -1,4 +1,4 @@ -Function Parsing | SqlParserX +Function Parsing | SqlParserX
    Version: Next 🚧

    Function Parsing

    @@ -18,4 +18,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseFunction(sql)
    Default implBaseSqlParser.parseFunction
    Return typeSet<String> (function names, lower-cased)
    Coveragebuilt-in, aggregate, window, custom functions

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    Regular function callsSupported ✅e.g. substr(name, 1, 3)
    Aggregate functionsSupported ✅e.g. sum, count, max
    Window functionsSupported ✅e.g. row_number() over(...)
    Nested functionsSupported ✅Recursively collect inner and outer functions
    \ No newline at end of file +
    CapabilityStatusNotes
    Regular function callsSupported ✅e.g. substr(name, 1, 3)
    Aggregate functionsSupported ✅e.g. sum, count, max
    Window functionsSupported ✅e.g. row_number() over(...)
    Nested functionsSupported ✅Recursively collect inner and outer functions
    \ No newline at end of file diff --git a/en/docs/next/core/parameter-compile.html b/en/docs/next/core/parameter-compile.html index 114bed4..f2e16d5 100644 --- a/en/docs/next/core/parameter-compile.html +++ b/en/docs/next/core/parameter-compile.html @@ -1,8 +1,8 @@ -Parameter Extraction and Prepared SQL | SqlParserX +Parameter Extraction and Prepared SQL | SqlParserX
    Version: Next 🚧

    Parameter Extraction and Prepared SQL

    SqlParserX extracts ${variable} expressions and output fields from SELECT statements. Given parameter values, it produces JDBC ? placeholders and an ordered binding list.

    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);
    String sql = "SELECT id, name FROM users "
    + "WHERE dt = '${bizdate}' AND region = '${region}'";

    ParseParameterResult parsed = parser.parseParameterSql(
    sql, false, Collections.emptyMap());

    Map<String, Object> values = new HashMap<>();
    values.put("bizdate", "20261014");
    values.put("region", "hangzhou");

    PrepareCompileResult compiled = parser.buildSqlByPrepareCompile(
    sql, values, Collections.emptyMap());
    System.out.println(compiled.getBeautifulSql());
    System.out.println(compiled.getInputFields());
    SELECT id, name FROM users WHERE dt = ? AND region = ?
    [20261014, hangzhou]
    -

    The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined.

    \ No newline at end of file +

    The common implementation currently targets SELECT statements. Variables used as identifiers in sorting or grouping clauses are inlined.

    \ No newline at end of file diff --git a/en/docs/next/core/sql-type.html b/en/docs/next/core/sql-type.html index 4bd74a9..6a8e168 100644 --- a/en/docs/next/core/sql-type.html +++ b/en/docs/next/core/sql-type.html @@ -1,7 +1,7 @@ -SQL Type Detection | SqlParserX +SQL Type Detection | SqlParserX
    Version: Next 🚧

    SQL Type Detection

    parseSqlType parses SQL with the selected datasource dialect and maps the resulting Druid AST to a unified SqlType. It can drive statement routing, audit classification, and execution policies.

    ISqlParser parser = SqlParserFactory.getSqlParser(SqlParserDataSourceType.MYSQL);

    SqlType queryType = parser.parseSqlType("SELECT id FROM users");
    SqlType insertType = parser.parseSqlType(
    "INSERT INTO target_table SELECT id FROM source_table");

    System.out.println(queryType); // QUERY
    System.out.println(insertType); // INSERT
    -

    The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns OTHER; syntax support still depends on the selected dialect.

    \ No newline at end of file +

    The common implementation recognizes query, DML, DDL, SHOW, DESCRIBE, and EXPLAIN statements. An unclassified AST returns OTHER; syntax support still depends on the selected dialect.

    \ No newline at end of file diff --git a/en/docs/next/core/table-lineage.html b/en/docs/next/core/table-lineage.html index 71408cf..1f0f297 100644 --- a/en/docs/next/core/table-lineage.html +++ b/en/docs/next/core/table-lineage.html @@ -1,4 +1,4 @@ -Table Lineage | SqlParserX +Table Lineage | SqlParserX
    Version: Next 🚧

    Table Lineage

    @@ -18,4 +18,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseTableLineages(sql)
    Default implBaseSqlParser.parseTableLineages → TableLineageClient
    Return typeTableLineageResult (getTargetTable() + getSourceTables() + getTableLineages())
    CoverageJOIN, UNION, subquery, aggregate, CTE

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    Single/multi-table JOINSupported ✅All participating tables
    UNION / UNION ALLSupported ✅Merge branches
    Subquery / derived tableSupported ✅Recursively collect real tables
    CTE (WITH)Supported ✅Recognize CTE and real sources
    INSERT INTO ... SELECTSupported ✅Output target and source tables
    \ No newline at end of file +
    CapabilityStatusNotes
    Single/multi-table JOINSupported ✅All participating tables
    UNION / UNION ALLSupported ✅Merge branches
    Subquery / derived tableSupported ✅Recursively collect real tables
    CTE (WITH)Supported ✅Recognize CTE and real sources
    INSERT INTO ... SELECTSupported ✅Output target and source tables
    \ No newline at end of file diff --git a/en/docs/next/core/table-parse.html b/en/docs/next/core/table-parse.html index 534f93b..85acb1a 100644 --- a/en/docs/next/core/table-parse.html +++ b/en/docs/next/core/table-parse.html @@ -1,4 +1,4 @@ -Table Parsing | SqlParserX +Table Parsing | SqlParserX
    Version: Next 🚧

    Table Parsing

    @@ -18,4 +18,4 @@

    3. Goal4. Entry & Implementation​

    ItemContent
    Core entryISqlParser.parseTables(sql), ISqlParser.parseCreateTable(sql)
    Default implBaseSqlParser.parseTables → ParseTableClient
    Return typeParseTableResult, ParseCreateTableResult
    Coveragequery tables, CTE, CREATE TABLE, partitions, properties

    5. Supported Scenarios​

    -
    CapabilityStatusNotes
    Query table detectionSupported ✅SELECT / INSERT / UPDATE / DELETE
    CTE detectionSupported ✅WITH-defined temporary tables
    CREATE TABLE DDLSupported ✅Table name, columns, types, comments
    Partitions & propertiesSupported ✅Dialect differences internalized in syntax layer
    catalog.db.tableSupported ✅Multi-catalog scenarios
    \ No newline at end of file +
    CapabilityStatusNotes
    Query table detectionSupported ✅SELECT / INSERT / UPDATE / DELETE
    CTE detectionSupported ✅WITH-defined temporary tables
    CREATE TABLE DDLSupported ✅Table name, columns, types, comments
    Partitions & propertiesSupported ✅Dialect differences internalized in syntax layer
    catalog.db.tableSupported ✅Multi-catalog scenarios
    \ No newline at end of file diff --git a/en/docs/next/intro.html b/en/docs/next/intro.html index 20d1188..c492f56 100644 --- a/en/docs/next/intro.html +++ b/en/docs/next/intro.html @@ -1,4 +1,4 @@ -SqlParserX Docs | SqlParserX +SqlParserX Docs | SqlParserX
    Version: Next 🚧

    Welcome to SqlParserX

    @@ -19,4 +19,4 @@

    Documentat

    :::tip Tip Use the navbar to switch version (1.0 / Next) and language (简体中文 / English). -:::

    \ No newline at end of file +::: \ No newline at end of file diff --git a/en/docs/next/quickstart/setup.html b/en/docs/next/quickstart/setup.html index 24dea2a..e61d7cc 100644 --- a/en/docs/next/quickstart/setup.html +++ b/en/docs/next/quickstart/setup.html @@ -1,4 +1,4 @@ -Quick Start | SqlParserX +Quick Start | SqlParserX \ No newline at end of file + \ No newline at end of file diff --git a/en/docs/quickstart/setup.html b/en/docs/quickstart/setup.html index a558cbd..fe1fa6e 100644 --- a/en/docs/quickstart/setup.html +++ b/en/docs/quickstart/setup.html @@ -1,4 +1,4 @@ -Quick Start | SqlParserX +Quick Start | SqlParserX \ No newline at end of file + \ No newline at end of file diff --git a/en/index.html b/en/index.html index 5dfaae2..0627a76 100644 --- a/en/index.html +++ b/en/index.html @@ -1,4 +1,4 @@ -SqlParserX +SqlParserX
    Java 8 · Druid 1.2.28 · 15+ dialects

    SqlParserX

    A multi-dialect SQL parsing engine and toolkit

    SQL type detection · Table & column lineage · Table/DDL parsing · Function extraction · Parameter extraction and prepared SQL

    • 15Datasource dialects
    • 6Core capabilities
    • 2Unified layers
    • 100%Java 8 compatible
    LineagePreview
    SQL Input
    INSERT INTO dwd.order_di
    SELECT o.id, u.name, o.amount
    FROM ods.orders o
    JOIN ods.users u ON o.uid = u.id;
    Parse Result
    ✓Table lineageods.orders → dwd.order_di
    ✓表血缘ods.users → dwd.order_di
    ✓Field lineageods.orders.amount → dwd.order_di.amount

    15+ datasource dialects supported

    MySQL
    Hive
    Doris
    StarRocks
    ClickHouse
    Oracle
    PostgreSQL
    Spark
    Trino
    DM
    OceanBase
    OceanBase Oracle
    SQL Server
    Greenplum
    TiDB
    Capabilities

    One engine for the full SQL parsing pipeline

    From dialect syntax to business semantics — unified contract, unified result, ready to use.

    SQL type detection

    Detect query, DML, DDL, SHOW and EXPLAIN statement types.

    Table & DDL parsing

    Resolve real tables through JOINs, CTEs and subqueries, then parse fields, keys, partitions and buckets.

    Table lineage

    Trace data flow from source tables to targets in INSERT and CTAS statements.

    Column lineage

    Map source columns to targets across expressions, functions and CASE clauses.

    Function parsing

    Extract and deduplicate regular, aggregate and window function names across multiple statements.

    Parameter extraction & prepared SQL

    Extract dynamic SELECT parameters and produce JDBC placeholder SQL with ordered bindings.

    Architecture

    Two-layer unified extension architecture

    The syntax layer extends dialect Lexer/Parser/AST on Druid; the business layer extends parsing, lineage and rewriting via the ISqlParser contract, aligned by DbType and AST.

    1. 1Feed SQL + DbType
    2. 2Syntax layer parses into Druid AST
    3. 3Business layer unified parsing
    4. 4Table / lineage / function / parameter results
    SqlParserX 两层架构
    Documentation

    Version / i18n coexistence

    Switch version (1.0 / Next) and language (简体中文 / English) from the navbar.

    version

    Ready to parse your SQL?

    Get started in minutes with multi-dialect parsing, lineage tracing and prepared SQL.

    \ No newline at end of file diff --git a/index.html b/index.html index 8101853..79603b6 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -SqlParserX +SqlParserX
    Java 8 · Druid 1.2.28 · 15+ 方言

    SqlParserX

    多方言 SQL 解析引擎与工具包

    SQL 类型识别 · 表与字段血缘 · 表/DDL 解析 · 函数提取 · 参数提取与预编译

    • 15数据源方言
    • 6核心解析能力
    • 2层统一架构
    • 100%Java 8 兼容
    LineagePreview
    SQL 输入
    INSERT INTO dwd.order_di
    SELECT o.id, u.name, o.amount
    FROM ods.orders o
    JOIN ods.users u ON o.uid = u.id;
    解析结果
    ✓表血缘ods.orders → dwd.order_di
    ✓表血缘ods.users → dwd.order_di
    ✓字段血缘ods.orders.amount → dwd.order_di.amount

    已适配 15+ 数据源方言

    MySQL
    Hive
    Doris
    StarRocks
    ClickHouse
    Oracle
    PostgreSQL
    Spark
    Trino
    DM
    OceanBase
    OceanBase Oracle
    SQL Server
    Greenplum
    TiDB
    核心能力

    一个引擎,覆盖 SQL 解析全链路

    从方言语法到业务语义,统一契约、统一结果,开箱即用。

    SQL 类型识别

    识别查询、写入、建表、SHOW 与 EXPLAIN 等语句类型。

    真实表与建表结构

    穿透 JOIN、CTE 与子查询,解析字段、键、分区及分桶结构。

    表级血缘

    从 INSERT 与 CTAS 追溯来源表到目标表的数据流转关系。

    字段级血缘

    分析表达式、函数与 CASE 中来源字段到目标字段的映射。

    函数名提取

    提取普通、聚合与窗口函数名称,支持多语句解析与去重。

    参数提取与预编译

    提取 SELECT 动态参数,生成 JDBC 占位符 SQL 与有序绑定值。

    架构设计

    两层统一扩展架构

    语法层基于 Druid 扩展方言 Lexer / Parser / AST,业务层通过 ISqlParser 契约扩展表解析、血缘与改写逻辑,两层由 DbType 与 AST 对齐。

    1. 1接入 SQL + DbType
    2. 2语法层解析为 Druid AST
    3. 3业务层统一解析
    4. 4表 / 血缘 / 函数 / 参数解析结果
    SqlParserX 两层架构
    文档站

    版本 / 多语言共存

    右侧导航栏即可切换版本(1.0 / Next)与语言(简体中文 / English),互不干扰。

    version

    准备好开始解析你的 SQL 了吗?

    几分钟完成接入,体验多方言解析、血缘追溯与参数预编译能力。

    \ No newline at end of file

    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

    NVqK|$&*QvR*TX3CyzB+RL& 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 z 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

    k-wC8UCnq7L5{~RBg`iCO9(5TK5 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